ValueError 将 sklearn 和 pandas 用于决策树?
Posted
技术标签:
【中文标题】ValueError 将 sklearn 和 pandas 用于决策树?【英文标题】:ValueError using sklearn and pandas for decision trees? 【发布时间】:2016-05-06 13:20:54 【问题描述】:我是 scikit learn 的新手,我刚刚看到文档和其他几个 *** 帖子来构建决策树。 我有一个包含 16 个属性和 1 个目标标签的 CSV 数据集。我应该如何将它传递给决策树分类器? 我当前的代码如下所示:
import pandas
import sklearn
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import tree
data = pandas.read_csv("yelp_atlanta_data_labelled.csv", sep=',')
vect = TfidfVectorizer()
X = vect.fit_transform(data)
Y = data['go']
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
当我运行代码时,它给了我以下错误:
ValueError: Number of labels=501 does not match number of samples=17
为了提供一些背景信息,我的数据集有 501 个数据点和 17 列。 go
列是带有是/否标签的目标列。
【问题讨论】:
【参考方案1】:问题是TfidfVectorizer
不能直接对数据帧进行操作。它只能对一系列字符串进行操作。因为您正在传递一个数据框,所以它会将其视为一系列列,并尝试分别对每一列进行矢量化。
尝试改用:
X = vect.fit_transform(data['my_column_name'])
您可能希望在调用 vect.fit_transform
之前预处理数据框以连接不同的列。
【讨论】:
以上是关于ValueError 将 sklearn 和 pandas 用于决策树?的主要内容,如果未能解决你的问题,请参考以下文章
Sklearn Pipeline ValueError:无法将字符串转换为浮点数
将二维数组传递给 sklearn.metrics.recall_score 时,为啥会出现 ValueError?
ValueError:在 defaultdict 上使用 sklearn 时样本数不一致
使用 sklearn 时出现错误:ValueError:无法将字符串转换为浮点数: