python-2.7 – TypeError:预期序列或类似数组,得到估算器

python-2.7 – TypeError:预期序列或类似数组,得到估算器,第1张

概述我正在开发一个对产品进行用户评论的项目.我使用TfidfVectorizer从我的数据集中提取功能,除了我手动提取的一些其他功能. df = pd.read_csv('reviews.csv', header=0)FEATURES = ['feature1', 'feature2']reviews = df['review']reviews = reviews.values.flatten 我正在开发一个对产品进行用户评论的项目.我使用TfIDfVectorizer从我的数据集中提取功能,除了我手动提取的一些其他功能.
df = pd.read_csv('revIEws.csv',header=0)FEATURES = ['feature1','feature2']revIEws = df['revIEw']revIEws = revIEws.values.flatten()vectorizer = TfIDfVectorizer(min_df=1,decode_error='ignore',ngram_range=(1,3),stop_words='english',max_features=45)X = vectorizer.fit_transform(revIEws)IDf = vectorizer.IDf_features = vectorizer.get_feature_names()FEATURES += featuresinverse =  vectorizer.inverse_transform(X)for i,row in df.iterrows():    for f in features:        df.set_value(i,f,False)    for inv in inverse[i]:        df.set_value(i,inv,True)train_df,test_df = train_test_split(df,test_size = 0.2,random_state=700)

上面的代码工作正常.但是当我将max_features从45更改为更高的值时,我在tran_test_split行上出现错误.

错误是:

Traceback(最近一次调用最后一次):
文件“analysis.py”,第120行,< module>
train_df,random_state = 700)
在train_test_split中输入文件“/Users/user/Tools/anaconda/lib/python2.7/site-packages/sklearn/cross_valIDation.py”,第1906行
arrays = indexable(* arrays)
文件“/Users/user/Tools/anaconda/lib/python2.7/site-packages/sklearn/utils/valIDation.py”,第201行,可转位
check_consistent_length(*结果)
在check_consistent_length中输入文件“/Users/user/Tools/anaconda/lib/python2.7/site-packages/sklearn/utils/valIDation.py”,第173行
uniques = np.unique(如果X不是None,则数组中X为[_ num_samples(X)])
在_num_samples中输入文件“/Users/user/Tools/anaconda/lib/python2.7/site-packages/sklearn/utils/valIDation.py”,第112行
‘estimator%s’%x)
TypeError:预期序列或类似数组,得到估计量

当我改变增加max_features大小时,我不确定究竟发生了什么变化.

如果您需要更多数据或者我错过了什么,请告诉我

解决方法 我知道这是旧的,但我有同样的问题,虽然@shahins的答案有效,但我想要保留数据帧对象的东西,以便我可以在train / test splits中进行索引.

解:

将数据框列重命名为适合的东西(其他):

df = df.rename(columns = {'fit': 'fit_feature'})

为什么会这样:

实际上并不是问题的特征数量,特别是导致问题的一个特征.我猜你正在将“fit”这个词作为你的一个文本特征(并且它没有显示出较低的max_features阈值).

查看sklearn源代码,它会检查以确保您没有通过测试查看任何对象是否具有“适合”属性来传递sklearn估算器.代码正在检查sklearn估计器的拟合方法,但是当你有一个数据框的拟合列时也会引发异常(记住df.fit和df [‘fit’]都选择“fit”列).

总结

以上是内存溢出为你收集整理的python-2.7 – TypeError:预期序列或类似数组,得到估算器全部内容,希望文章能够帮你解决python-2.7 – TypeError:预期序列或类似数组,得到估算器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1206762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存