Я пытаюсь классифицировать товарные позиции, чтобы предсказать их категорию в зависимости от названия продукта и его базовой цены.Объединить числовые и текстовые функции для классификации категорий
Пример (название продукта, цена, категория):
['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,)
взглянуть на мой ответ здесь для связанного с этим вопроса http://stackoverflow.com/ вопросы/26712080/питон-решение-дерево-классификация-оф-комплексообразователей объектов –