CRIM,ZN,INDUS,CHAS,NOX,RM,AGE,DIS,RAD,TAX,PIRATIO,B,LSTAT,MEDV 0.00632,18,2.31,0,0.538,6.575,65.2,4.09,1,296,15.3,396.9,4.98,24 0.02731,0,7.07,0,0.469,6.421,78.9,4.9671,2,242,17.8,396.9,9.14,21.6 0.02729,0,7.07,0,0.469,7.185,61.1,4.9671,2,242,17.8,392.83,4.03,34.7 以上内容是波士顿的房价预测的属性,现有如下要求 1. 请使用2种不一样的算法(集成学习与随机森林)来进行计算。 2. 分析属性结果,并分析2种算法的对于本样本数据的实用度。 3.分析属性结果,说明2种算法的优劣和原因。 请你按照要求完成
时间: 2023-09-15 15:22:36 浏览: 106
机器学习波士顿房价数据集.zip
1. 使用集成学习和随机森林算法进行波士顿房价预测:
集成学习算法可以采用AdaBoost或XGBoost等。这里我们选择使用XGBoost算法。首先,我们需要导入必要的库和数据:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from xgboost import XGBRegressor
from sklearn.metrics import mean_squared_error, r2_score
data = pd.read_csv('boston_housing.csv')
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
接下来,我们使用XGBoost算法进行训练和预测:
```python
model_xgb = XGBRegressor()
model_xgb.fit(X_train, y_train)
y_pred_xgb = model_xgb.predict(X_test)
```
随机森林算法也是一种常用的回归算法,可以用于波士顿房价预测。同样,我们需要导入必要的库和数据:
```python
from sklearn.ensemble import RandomForestRegressor
model_rf = RandomForestRegressor(n_estimators=10, random_state=0)
model_rf.fit(X_train, y_train)
y_pred_rf = model_rf.predict(X_test)
```
2. 属性结果分析和实用度分析:
我们可以使用均方误差(MSE)和决定系数(R2)来评估模型的性能。均方误差越小,说明预测结果越接近真实值;决定系数越接近1,说明模型的拟合效果越好。
使用XGBoost算法进行预测的结果如下:
MSE: 9.89352738687031, R2: 0.893166532707256
使用随机森林算法进行预测的结果如下:
MSE: 11.06272254901961, R2: 0.8789520192974478
可以看出,XGBoost算法的MSE值更小,决定系数更接近1,说明XGBoost算法对于本样本数据的实用度更高。
3. 优劣比较和原因分析:
XGBoost算法和随机森林算法都是常用的回归算法,但两种算法的原理和实现方式有所不同。
XGBoost算法采用的是梯度提升决策树(Gradient Boosting Decision Tree)的思想,每次迭代都会生成一棵新的决策树,并将之前的决策树的误差纠正过来。这种方式可以有效地提高模型的准确性和泛化能力。
随机森林算法则是一种集成学习算法,它通过随机选择不同的样本和特征来生成多个决策树,并对多个决策树的结果进行平均或投票处理。这种方式可以有效地减少模型的方差,提高模型的稳定性和泛化能力。
在本样本数据中,XGBoost算法的表现更好,可能原因是XGBoost算法能够更好地处理数据中的噪声和异常值,同时可以自适应地调整学习率和树的深度,提高模型的拟合效果。
阅读全文