由于知道在回归问题中,训练集的所得到的模型是优于测试集和验证集的,那么我们如何是现在在python中对测试集的结果画出最拟合的图像,请以lightgbm将数据分为训练集测试集和验证集为例
时间: 2024-05-16 19:16:07 浏览: 140
python 划分数据集为训练集和测试集的方法
可以使用matplotlib库将模型在测试集上的表现可视化,以下是使用LightGBM在Python中进行训练和测试,并将测试结果可视化的示例代码:
```python
import lightgbm as lgb
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# 加载数据
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)
# 转换成LightGBM数据集格式
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test)
# 参数设置
params = {
'boosting_type': 'gbdt',
'objective': 'regression',
'metric': 'rmse',
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9
}
# 模型训练
model = lgb.train(params, train_data, valid_sets=[test_data], num_boost_round=100, early_stopping_rounds=10)
# 测试集预测
y_pred = model.predict(X_test)
# 可视化拟合程度
plt.scatter(y_test, y_pred, alpha=0.8)
plt.plot(np.arange(0, 55), np.arange(0, 55), c='red')
plt.xlabel('True values')
plt.ylabel('Predicted values')
plt.title('Predicted vs True values')
plt.show()
```
这段代码首先加载了波士顿房价数据集,将其分割为训练集和测试集。然后使用LightGBM的数据集格式将其转换为LightGBM可以处理的格式。接着设置模型参数,训练模型,并在测试集上进行预测。最后,使用matplotlib将预测值和真实值可视化,以检查模型在测试集上的表现。
阅读全文