已有数据为工作地点、工作经验、学历,关于薪资预测模型的一元线性回归模型和随机森林模型的模型评估代码,以选择哪个模型更好
时间: 2024-06-11 11:07:48 浏览: 82
基于随机森林RF的数据回归预测,RF回归预测,多变量输入模型 评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码
由于没有提供数据集,我将提供一些可能的模型评估指标和代码示例,以供参考。
1. 一元线性回归模型评估指标:
- 均方误差(Mean Squared Error,MSE):表示预测值与实际值的平均差异程度,值越小越好。
- 决定系数(Coefficient of Determination,R²):表示模型能够解释因变量方差的百分比,值越接近1越好。
- 可视化预测结果:通过绘制预测值和实际值的散点图,可以直观地观察模型的拟合效果。
示例代码:
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 假设X是工作经验,Y是薪资
reg = LinearRegression().fit(X, Y)
Y_pred = reg.predict(X)
mse = mean_squared_error(Y, Y_pred)
r2 = r2_score(Y, Y_pred)
print("MSE: ", mse)
print("R²: ", r2)
plt.scatter(X, Y, color='black')
plt.plot(X, Y_pred, color='blue', linewidth=3)
plt.xlabel('Experience')
plt.ylabel('Salary')
plt.show()
```
2. 随机森林模型评估指标:
- 均方误差(Mean Squared Error,MSE):同上。
- 决定系数(Coefficient of Determination,R²):同上。
- 特征重要性(Feature Importance):表示每个特征对于模型预测结果的重要程度,可以用于特征选择和解释模型。
示例代码:
```python
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score
# 假设X是工作经验、工作地点和学历,Y是薪资
rf = RandomForestRegressor().fit(X, Y)
Y_pred = rf.predict(X)
mse = mean_squared_error(Y, Y_pred)
r2 = r2_score(Y, Y_pred)
feat_imp = rf.feature_importances_
print("MSE: ", mse)
print("R²: ", r2)
print("Feature Importance: ", feat_imp)
plt.scatter(X[:,0], Y, color='black')
plt.plot(X[:,0], Y_pred, color='blue', linewidth=3)
plt.xlabel('Experience')
plt.ylabel('Salary')
plt.show()
```
根据以上评估指标和可视化结果,可以综合考虑选择哪个模型更好。通常来说,随机森林模型更适合处理多个特征之间的非线性关系和复杂模型,但需要考虑模型解释性和计算复杂度。一元线性回归模型则更简单直观,但可能无法捕捉到更复杂的模式。
阅读全文