情况:我正在尝试使用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)