具有稀疏训练数据的 ExtraTreesClassifier


根据

文档,我正在尝试使用具有稀疏数据的ExtraTreesClassifier,但是在请求密集数据TypeError,我确实得到了一个运行时。这是在scikit-learn 0.17.1上,下面我引用了文档:

Parameters: X : array-like or sparse matrix of shape = [n_samples, n_features]

代码非常简单:

import pandas as pd
from scipy.sparse import coo_matrix, csr_matrix, hstack
from sklearn.ensemble import ExtraTreesClassifier
import numpy as np
from scipy import *
features = array([[1, 0], [0, 1], [3, 4]])
sparse_features = csr_matrix(features)
labels = array([0, 1, 0])
classifier = ExtraTreesClassifier()
classifier.fit(sparse_features, labels)

这里有例外:TypeError: A sparse matrix was passed, but dense data is required. Use X.toarray() to convert to a dense numpy array..这在传入features时工作正常。

看起来文档已过时或上面的代码有问题?

任何帮助将不胜感激。谢谢。

引用文档:

在内部,它将被转换为 dtype=np.float32,如果向稀疏csc_matrix提供稀疏矩阵。

所以我希望通过csc_matrix应该会有所帮助。

在我的设置中,两个版本都可以正常工作(csc 和 csr,sklearn 0.17.1),我认为问题可能与旧版本的 scipy 有关。

相关内容

  • 没有找到相关文章

最新更新