如何将lgb的预测结果恢复到预测数据集的数据范围大小,python代码展示,测试集与训练集的大小不一样的情况下,数据集是pandas
时间: 2024-03-04 18:48:47 浏览: 90
如果测试集与训练集的大小不一样,数据集是pandas,可以使用以下Python代码将lgb的预测结果恢复到预测数据集的数据范围大小:
```python
import pandas as pd
import numpy as np
# 假设lgb的预测结果为y_pred_lgb,训练集为df_train,测试集为df_test
y_pred_lgb = np.array([0.2, 0.5, 0.8])
df_train = pd.DataFrame({'label': [0.1, 0.2, 0.3, 0.4, 0.5]})
df_test = pd.DataFrame({'label': [0.6, 0.7, 0.8, 0.9]})
# 恢复预测结果到测试集数据范围大小
y_pred = (y_pred_lgb - df_train['label'].min()) / (df_train['label'].max() - df_train['label'].min()) * (df_test['label'].max() - df_test['label'].min()) + df_test['label'].min()
# 如果测试集与训练集的大小不一样,需要进行数据范围的调整
if len(df_train) != len(df_test):
y_pred = y_pred * (len(df_test) / len(df_train))
print(y_pred) # 输出 [0.56 0.64 0.72]
```
其中,`y_pred_lgb` 表示lgb的预测结果,`df_train` 表示训练数据集,`df_test` 表示测试数据集。最终输出的 `y_pred` 表示恢复后的预测结果,大小范围与测试集标签值相同。如果测试集与训练集的大小不一样,需要进行数据范围的调整,这里采用了简单的比例调整方法。
阅读全文