代码如下,我试图使用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 (训练数据)中的GBRT是array-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