代码如下,我尝试使用 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)
我在尝试使用
GradientBoostingClassifier
加载的数据来训练 load_svmlight_files
时遇到了同样的问题。通过将稀疏矩阵转换为 numpy 数组来解决。
X_train.todense()
问题在于你使用了sklearn的OneHotEncoder。
您需要使用以下内容:
从 sksurv.preprocessing 导入 OneHotEncoder
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).toarray()