我有两个数据,分别在csv文件中进行训练和测试,该文件具有超过385个功能,分别加载为df_train
和df_test
。
我已将目标特征(目标列)标识为“ y”,在提供的测试数据集中,即df_test
中,列y不可用。
在应用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'
很高兴能指导我哪里出了问题。
需求->分解df_train
进行训练和测试,并建立模型并在df_test
上进行预测并计算其准确性。