Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列车上应用XGBoost&;测试数据_Python_Pandas_Machine Learning_Xgboost - Fatal编程技术网

Python 在列车上应用XGBoost&;测试数据

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 =

我有两个数据,一个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 = 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列中分离出来?