Python Scikit学习分类变量的dictVectorier

Python Scikit学习分类变量的dictVectorier,python,csv,machine-learning,scikit-learn,Python,Csv,Machine Learning,Scikit Learn,我有一个.csv文件,其条目如下所示: b0002,0,>0.00,3,6.00,>16.00,>21.00,>9.00,>11.00,>20.00,>7.00,>4.00,>9.00,>9.00,>9.00,>13.00,>8.00,>14.00,>3.00,”,>10.00,>9.00,>183.00,1 我想用GaussianNB()来分类。到目前为止,我设法用另一个带有数字数据的csv来分类,现在我想用这个,但我被卡住了 为分类器转换分类数据的最佳方法是什么 这: 请给出以下错误: Tr

我有一个.csv文件,其条目如下所示:

b0002,0,>0.00,3,6.00,>16.00,>21.00,>9.00,>11.00,>20.00,>7.00,>4.00,>9.00,>9.00,>9.00,>13.00,>8.00,>14.00,>3.00,”,>10.00,>9.00,>183.00,1

我想用GaussianNB()来分类。到目前为止,我设法用另一个带有数字数据的csv来分类,现在我想用这个,但我被卡住了

为分类器转换分类数据的最佳方法是什么

这:

请给出以下错误:

Traceback (most recent call last):
  File "\prova.py", line 23, in <module>
vec.fit_transform(dic)
File "\dict_vectorizer.py", line 142, in fit_transform
return self.transform(X)
File "\\dict_vectorizer.py", line 230, in transform
values.append(dtype(v))
TypeError: float() argument must be a string or a number
回溯(最近一次呼叫最后一次):
文件“\prova.py”,第23行,在
向量拟合变换(dic)
文件“\dict\u vectorizer.py”,第142行,在fit\u变换中
返回自转换(X)
文件“\\dict\u vectorizer.py”,第230行,在转换中
值。追加(数据类型(v))
TypeError:float()参数必须是字符串或数字

为分类器转换分类数据的最佳方法是什么?

问题在于,当调用
.to_dict()
时,转置的“dataframe”返回嵌套的
dict

#create a dummy frame
df = pd.DataFrame({'factor':['a','a','a','b','c','c','c'], 'factor1':['d','a','d','b','c','d','c'], 'num':range(1,8)})

#transpose the dataframe and get the inner dict from to_dict()
feats =df.T().to_dict().values()

from sklearn.feature_extraction import DictVectorizer
Dvec = DictVectorizer()
Dvec.fit_transform(feats).toarray()
解决方案是在
dict
上调用
.values()
,以获取内部
dict

Dvec
获取新功能名称:

Dvec.get_feature_names()

你能分享一个可复制的输入数据的例子吗?
Dvec.get_feature_names()