ValueError:从"y"的唯一值推断出的类无效.应为:[0 1 2..1387 1388 13



情况:我正在尝试使用XGBoost分类器,但我会弹出此错误:"ValueError:从y的唯一值推断出的类无效。预期:[0 1 2…1387 1388 1389],得到[0 1 1 2…18609 24127 41850]">

与已解决的问题不同:从"y"的唯一值推断出的无效类。预期:[0 1 2 3 4 5],得到[1 2 3 4 5 6],我似乎有一个不同的场景,不是从0开始。

代码:

X = data_concat
y = data_concat[['forward_count','comment_count','like_count']]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=72)
#Train, test split
print ('Train set:', X_train.shape,  y_train.shape)     #Check the size after split
print ('Test set:', X_test.shape,  y_test.shape)
xgb = XGBClassifier()
clf = xgb.fit(X_train, y_train, eval_metric='auc')  #HERE IS WHERE GET THE ERROR

Datafrme和帧信息如下:DataFrame

DataFrame信息。

我采用了不同的y,这意味着当y有更少或更多的列时,列表"[0 12…1387 1388 1389]";将同时收缩或膨胀。

如果您需要更多信息,请告诉我。感谢您的帮助:)

需要转换y_train值以适应xgboost,它从0开始,但不是1。这是代码:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_train = le.fit_transform(y_train)

相关内容

  • 没有找到相关文章

最新更新