我的python代码:
y_train = y_train.astype(float)
X_train = X_train.astype(float)
kernel = gbdt()
kernel = gbdt()
kernel.fit(X_train,y_train)错误是ValueError: Unknown label type: array([ 0.0206, -0.006 , 0.0008, ..., 0.0245, 0.0166, -0.022 ], dtype=float32).
在sklearn gbdt文档中,它说:目标值(分类中的整数,回归中的实数)用于分类,标签必须对应于类。
有人知道发生了什么吗?
发布于 2018-09-21 06:07:14
在sklearn集成中有两种GBDT算法,ensemble.GradientBoostingClassifier和ensemble.GradientBoostingRegressor,您需要指定哪一种算法最适合您的任务。
回归用GradientBoostingRegressor、GradientBoostingClassifier进行分类。例如,
gbdt=GradientBoostingRegressor(
loss='ls'
, learning_rate=0.1
, n_estimators=100
, subsample=1
, min_samples_split=2
, min_samples_leaf=1
, max_depth=3
, init=None
, random_state=None
, max_features=None
, alpha=0.9
, verbose=0
, max_leaf_nodes=None
, warm_start=False
)
gbdt.fit(X, y)似乎您正在进行回归,因为您的响应不喜欢分类值,因此您可以尝试GradientBoostingRegressor()
https://stackoverflow.com/questions/41755643
复制相似问题