传递了一个稀疏矩阵,但需要密集数据。使用 X.toarray() 转换为密集的 numpy 数组

Dha*_*kar 12 python scikit-learn

代码如下,我正在尝试将训练数据用于 GBRT 回归树,相同的数据适用于其他分类器,但对于 GBRT 给出了上述错误。请帮忙 :

dataset = load_files('train')
vectorizer = TfidfVectorizer(encoding='latin1')
X_train = vectorizer.fit_transform((open(f).read() for f in dataset.filenames)) 
assert sp.issparse(X_train)     
print("n_samples: %d, n_features: %d" % X_train.shape)
y_train = dataset.target
def benchmark(clf_class, params, name):
    clf = clf_class(**params).fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

小智 12

我在尝试GradientBoostingClassifier使用加载的数据训练 a 时遇到了同样的问题load_svmlight_files。通过将稀疏矩阵转换为 numpy 数组来解决。

X_train.todense()
Run Code Online (Sandbox Code Playgroud)


Chu*_*ung 5

因为sklearn请求 X(训练数据)中的GBRT不是:sklearn-gbrtarray-likesparse matrix

我希望这可以帮助你!