代码如下,我正在尝试使用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)
答案 0 :(得分:4)
我遇到了同样的问题,试图使用GradientBoostingClassifier
加载的数据训练load_svmlight_files
。通过将稀疏矩阵转换为numpy数组来解决。
X_train.todense()
答案 1 :(得分:2)
因为 sklearn 请求中的 GBRT X(培训数据)是array-like
而不是sparse matrix
:{{3 }}
我希望这可以帮到你!
答案 2 :(得分:0)
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)