【发布时间】:2015-01-07 11:34:52
【问题描述】:
我正在尝试对产品进行分类,以便根据产品标题和基本价格预测它们的类别。
一个例子(产品名称、价格、类别):
['notebook sony vaio vgn-z770td dockstation', 3000.0, u'MLA54559']
以前我只将产品标题用于预测任务,但我想包括价格以查看准确性是否提高。
我的代码的问题是我无法合并文本/数字特征,我一直在 SO 中阅读一些问题,这是我的代码摘录:
#extracting features from text
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform([e[0] for e in training_set])
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
#extracting numerical features
X_train_price = np.array([e[1] for e in training_set])
X = sparse.hstack([X_train_tfidf, X_train_price]) #this is where the problem begins
clf = svm.LinearSVC().fit(X, [e[2] for e in training_set])
我尝试将数据类型与 sparse.hstack 合并,但出现以下错误:
ValueError: blocks[0,:] has incompatible row dimensions
我猜问题在于 X_train_price(价格列表),但我不知道如何格式化它以使稀疏函数成功工作。
这是两个数组的形状:
>>> X_train_tfidf.shape
(65845, 23136)
>>>X_train_price.shape
(65845,)
【问题讨论】:
-
在此处查看我对相关问题的回答stackoverflow.com/questions/26712080/…
标签: python machine-learning scipy scikit-learn