1

我是 scikit learn 的新手,我刚刚看到文档和其他几个 stackoverflow 帖子来构建决策树。我有一个包含 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列是带有是/否标签的目标列。

4

1 回答 1

1

问题是TfidfVectorizer不能直接对数据帧进行操作。它只能对一系列字符串进行操作。因为您正在传递一个数据框,所以它会将其视为一系列列,并尝试分别对每一列进行矢量化。

尝试使用:

X = vect.fit_transform(data['my_column_name']) 

您可能希望在调用之前预处理数据框以连接不同的列vect.fit_transform

于 2016-01-29T05:47:21.417 回答