背景
在使用sklearn库进行模型训练的时候,报了这么一个告警
UserWarning: X has feature names, but RandomForestClassifier was fitted without feature names
其大致代码如下:
data = pd.read_csv("../data.csv")
...
model.fit(data, label)
y_pred = model.predict(x_test)
其中报错位置为第3行和第4行
原因
发生报错的主要原因是data
是一个带有特征名称(feature names)的DataFrame
,由于带有名称,模型在拟合和预测的时候只需要输入数值,因此才会报这个错误
解决方案
可以使用DataFrame.values
,其只包含值,不包含特征名称(feature names),因此代码可改为
data = pd.read_csv("../data.csv")
...
model.fit(data.values, label)
y_pred = model.predict(x_test.values)
即可解决问题