首页 > 解决方案 > 错误:“ValueError:在密集数据训练的‘SVR’中不能使用稀疏输入”?

问题描述

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
vector = vectorizer.fit_transform(X_train).toarray()
print(vector.shape)
print(type(vector))
print(vector)    
vector

这给出了形状为 (97, 370) 的类 'numpy.ndarray'

from sklearn.svm import SVR
from sklearn.model_selection import cross_val_score
clf = SVR(gamma='auto',cache_size=12000,max_iter=-1)
print("Training the data set...")
clf = clf.fit(vector, y_train)
print("Training Completed")
test_vectors = vectorizer.transform(X_test)
test_vectors

这给出了 <108x370 类型的稀疏矩阵,具有 1212 个压缩稀疏行格式的存储元素>

clf.predict(test_vectors)

这给出了错误“ValueError:不能在'SVR'中使用稀疏输入训练密集数据”

这里有什么问题?我该如何解决?谢谢!

标签: pythonscikit-learnsparse-matrixcountvectorizer

解决方案


您应该.toarray()像对火车数据所做的那样调用:

test_vectors = vectorizer.transform(X_test).toarray()


推荐阅读