【发布时间】:2014-09-17 15:11:36
【问题描述】:
这是一个非常基本的概念:我对训练有多个依赖项。我的数据都是文本,我有三个单独的字段。我能找到的每个示例都有这样的文本数据设置:
data = ['text1','text2',...]
我的样子:
data = [['text1','text2','text3'],[...],...]
但是当我尝试适应数据时,我得到以下回溯:
ValueError Traceback (most recent call last)
<ipython-input-25-e3356a0f62f8> in <module>()
----> 1 classifier.fit(X,y)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/svm/base.pyc in fit(self, X, y, sample_weight)
140 "by not using the ``sparse`` parameter")
141
--> 142 X = atleast2d_or_csr(X, dtype=np.float64, order='C')
143
144 if self.impl in ['c_svc', 'nu_svc']:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/utils/validation.pyc in atleast2d_or_csr(X, dtype, order, copy)
114 """
115 return _atleast2d_or_sparse(X, dtype, order, copy, sparse.csr_matrix,
--> 116 "tocsr")
117
118
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/utils/validation.pyc in _atleast2d_or_sparse(X, dtype, order, copy, sparse_class, convmethod)
94 _assert_all_finite(X.data)
95 else:
---> 96 X = array2d(X, dtype=dtype, order=order, copy=copy)
97 _assert_all_finite(X)
98 return X
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/utils/validation.pyc in array2d(X, dtype, order, copy)
78 raise TypeError('A sparse matrix was passed, but dense data '
79 'is required. Use X.toarray() to convert to dense.')
---> 80 X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
81 _assert_all_finite(X_2d)
82 if X is X_2d and copy:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
318
319 """
--> 320 return array(a, dtype, copy=False, order=order)
321
322 def asanyarray(a, dtype=None, order=None):
ValueError: setting an array element with a sequence.
我有什么特定的方法可以解决这个问题吗?谢谢!
注意事项:
我使用的所有文本数据都由HashingVectorizer矢量化
clf.fit(X,y) 其中X 是包含3 个矢量化文本的列表的列表,y 是X 的元素所属的各个类别的列表
【问题讨论】:
-
请澄清您的问题。你的模型是什么,或者换句话说,你想要分类什么?你到底适合classifier.fit(X,y)? X 必须是一个数值数组,而 y - 类标签数组。如果您的数据是文本,则需要将其转换为数字数据,例如通过计算词频。请添加更多详细信息,或显示一些代码,否则很难理解您要做什么。
-
我做了一个快速节点,它使用
HashVectorizer进行矢量化 -
我正在分类。所以本质上,每个项目都有标签、标题和描述。我想按特定类别的列表进行分类。
标签: python scikit-learn