一、报错显示
ValueError: Supported target types are: ('binary', 'multiclass'). Got 'unknown' instead.
二、报错原因
-
原因:
target(即输入的标签)类型不正确
-
错误定位:
-
涉及知识点:
python中type(), dtype(),astype()
(1)type():返回的是数据结构的类型(list, dict, numpy.ndarry),是python的内置函数
(2)dtype():返回的是数据元素的类型(int, float)
(3)astype():改变np.array中所有数据元素的数据类型。
三、问题解决
-
方法一:
(1)将for fold_num, (train_index, test_index) in enumerate(skf.split(X, y)):
中的y
,使用astype()
函数改变数据类型。即:加入一行代码:y = y.astype(float)
,则原来的dtype=object变成dtype=float,报错解决!!^ _ ^
(2)对应到自己的代码中可以使用print(y.dtype)
语句输出查看
-
方法二:
(1)加入三行代码:
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
interactions = label_encoder.fit_transform(interactions)
四、参考博文:
- 链接: type和dtype