Python 在列车上应用XGBoost&;测试数据
我有两个数据,一个csv文件中的train&test,它有超过385个功能,分别作为Python 在列车上应用XGBoost&;测试数据,python,pandas,machine-learning,xgboost,Python,Pandas,Machine Learning,Xgboost,我有两个数据,一个csv文件中的train&test,它有超过385个功能,分别作为df_train和df_test加载 我已将目标功能(目标列)标识为“y”,y列在提供的测试数据集中不可用,即在df\u测试中 在应用XGB之前,我已经应用了PCA,如下所示 from sklearn.decomposition import PCA pca = PCA(n_components = 0.95) df_train = pca.fit_transform(df_train) df_test =
df_train
和df_test
加载
我已将目标功能(目标列)标识为“y”,y列在提供的测试数据集中不可用,即在df\u测试中
在应用XGB之前,我已经应用了PCA,如下所示
from sklearn.decomposition import PCA
pca = PCA(n_components = 0.95)
df_train = pca.fit_transform(df_train)
df_test = pca.fit_transform(df_test)
之后,我尝试应用XGBoost,如下所示:
import xgboost as xgb
params = {'ntrees':520,'eta':0.0045,"booster":"gblinear", "objective":"reg:linear"}
x_train = df_train.drop('y',axis = 0)
y_train = df_train['y']
dtrain = xgb.DMatrix(x_train,y_train)
dtest = xgb.DMatrix(df_test)
xg_reg = xgb.train(params = params,dtrain=df_train,num_boost_round=5)
preds = xg_reg.predict(df_test)
#to find the accuracy
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
输出
AttributeError:'numpy.ndarray'对象没有属性'drop'
如果能指引我的错误方向,我将不胜感激
需求-->。由于numpy数组没有方法drop
,因此返回错误。在将df\u train=pca.fit\u transform(df\u train)
转换为具有df\u train=pca.fit\u transform(df\u train)
的numpy数组后,您尝试使用df\u train.drop('y',轴=0)
删除列。因此,为了克服这个错误,我需要在对x\U列和df\U测试执行PCA和应用PCA之前,将x\U列和y\U列从df\u列中分离出来?