python - 如何在使用 XGBoost 学习排名时保留 id 以供以后预测
问题描述
我正在使用 xgboost 进行排名,请考虑以下代码:
X_train = train_data.loc[:, ~train_data.columns.isin(['id','rank'])]
y_train = train_data.loc[:, train_data.columns.isin(['rank'])]
groups = train_data.groupby('id').size().to_frame('size')['size'].to_numpy()
X_test = test_data.loc[:, ~test_data.columns.isin(['rank'])]
y_test = test_data.loc[:, test_data.columns.isin(['rank'])]
因为需要保留 id 以供以后预测。下面的代码对吗?
def predict(model, df):
return model.predict(df.loc[:, ~df.columns.isin(['id'])])
predictions = (X_test.groupby('id')
.apply(lambda X_test: predict(model, X_test)))
价值越高越好吗?
解决方案
推荐阅读
- javascript - 如何在文本字段中显示基本验证消息
- asp.net - 更改后如何放弃会话
- 在 ASP.Net 中?
- react-native - 从服务器获取所有数据后停止活动指示器
- electron - 以编程方式控制 Chromium 实例的最可靠方法是什么?
- android - 如何在android studio中读取pdf文件
- c# - 如何使用 onvif ver20 ptz.wsdl 创建和设置 ONVIF PresetTour
- r - 订购 PCA 导致主成分高于 5
- quickfix - Quickfix 浮动字段
- c# - async Func 的 3 次调用有什么区别
> 在 C# 中? - c - 击中返回终止 2 scanf("%[^\n]%*c")