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



代码如下,我试图使用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)

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

X_train.todense()

因为sklearn请求X (训练数据)中的GBRTarray-like而不是sparse matrix: sklearn- GBRT

我希望这能帮助你!

OneHotEncoder不再支持最新版本的sklearn库。代码修改为用户ColumnTransformer

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([('town', OneHotEncoder(), [0])], remainder = 'passthrough')
X = ct.fit_transform(X)

问题是你使用的是sklearn的OneHotEncoder。

您需要使用以下命令:

从sksurv

。预处理导入OneHotEncoder

相关内容

  • 没有找到相关文章

最新更新