Fit函数返回TypeError: float()参数必须是ScikitLearn中的字符串或数字



我正在学习scikit学习执行某些分类。我根据我的数据集遵循教程。当我运行脚本时,我得到一个类型错误

data = pd.DataFrame({'Description': pd.Categorical(["apple", "table", "red"]), 'Labels' : pd.Categorical(["Fruit","Furniture","Color"])})
counts = CountVectorizer().fit_transform(data['Description'].values)
tf_transformer = TfidfTransformer(use_idf=False).fit(counts)
train_tf = tf_transformer.transform(tf_transformer)

Error I get

Traceback (most recent call last):
  File "/anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-97-9a649172d3b7>", line 10, in <module>
    train_tf = tf_transformer.transform(tf_transformer)
  File "/anaconda/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 1005, in transform
    X = sp.csr_matrix(X, dtype=np.float64, copy=copy)
  File "/anaconda/lib/python2.7/site-packages/scipy/sparse/compressed.py", line 69, in __init__
    self._set_self(self.__class__(coo_matrix(arg1, dtype=dtype)))
  File "/anaconda/lib/python2.7/site-packages/scipy/sparse/coo.py", line 204, in __init__
    self.data = self.data.astype(dtype)
TypeError: float() argument must be a string or a number

我一定是做了一些非常愚蠢的事情,因为我没有完全理解api。谁能告诉我怎么解除自己的封锁?

谢谢。

错误来自于

tf_transformer.transform(tf_transformer)

我认为这是错误的语法tf_transformerTfidfTransformer的对象。函数期望稀疏矩阵。你可以使用fit_transform函数

tf_transformer = TfidfTransformer(use_idf=False).fit_transform(counts)

相关内容

  • 没有找到相关文章

最新更新