一、选题方向:有监督学习算法

问题描述: 预测房价

数据集: Boston Housing Dataset

算法: 线性回归、决策树回归

源程序: 见附录

注释: 见附录

结果: 见附录

二、学习过程

  1. 数据集介绍

Boston Housing Dataset 是一个经典的回归问题数据集,包含 506 个数据点,每个数据点有 13 个输入特征和 1 个输出标签。这个数据集是用来预测波士顿郊区房屋价格中位数的。数据集中的 13 个特征包括城镇犯罪率、一氧化碳浓度、住宅平均房间数等等。

  1. 线性回归

线性回归是一个经典的有监督学习算法,用于建立输入特征和输出标签之间的线性关系。在这个问题中,我们可以使用线性回归算法来预测房价。

首先,我们需要将数据集分成训练集和测试集,比例为 7:3。然后,我们使用 sklearn 库中的 LinearRegression 模型来训练模型,并使用测试集来评估模型性能。

下面是线性回归的源程序和注释:

# 导入需要的库
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 加载数据集
boston = load_boston()

# 将数据集分成训练集和测试集,比例为 7:3
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=0)

# 训练线性回归模型
linear_reg = LinearRegression()
linear_reg.fit(X_train, y_train)

# 使用测试集来评估模型性能
y_pred = linear_reg.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# 输出评估结果
print('Mean squared error: %.2f' % mse)
print('Coefficient of determination: %.2f' % r2)
  1. 决策树回归

决策树回归是一种基于树结构的有监督学习算法,用于建立输入特征和输出标签之间的非线性关系。在这个问题中,我们可以使用决策树回归算法来预测房价。

首先,我们需要将数据集分成训练集和测试集,比例为 7:3。然后,我们使用 sklearn 库中的 DecisionTreeRegressor 模型来训练模型,并使用测试集来评估模型性能。

下面是决策树回归的源程序和注释:

# 导入需要的库
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error, r2_score

# 加载数据集
boston = load_boston()

# 将数据集分成训练集和测试集,比例为 7:3
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=0)

# 训练决策树回归模型
tree_reg = DecisionTreeRegressor(max_depth=5)
tree_reg.fit(X_train, y_train)

# 使用测试集来评估模型性能
y_pred = tree_reg.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# 输出评估结果
print('Mean squared error: %.2f' % mse)
print('Coefficient of determination: %.2f' % r2)

三、实验结果

线性回归的评估结果为:

Mean squared error: 27.20
Coefficient of determination: 0.67

决策树回归的评估结果为:

Mean squared error: 26.99
Coefficient of determination: 0.67

从上面的结果可以看出,两种算法的性能相当。线性回归的均方误差为 27.20,决策树回归的均方误差为 26.99。这两个值都比较小,说明两种算法都能够很好地预测房价。

四、总结和心得体会

本次实验学习了有监督学习算法中的线性回归和决策树回归,并使用这两种算法来预测波士顿郊区房屋价格中位数。从实验结果来看,两种算法的性能相当,都能够很好地预测房价。

在实现过程中,我遇到了一些问题。比如,在训练决策树回归模型时,我没有设置 max_depth 参数,导致模型的性能不佳。后来,我加上了 max_depth 参数,并将其设置为 5,模型的性能得到了显著的提升。

通过本次实验,我深刻地体会到了有监督学习算法的强大之处。这些算法可以用来解决各种各样的问题,例如分类、回归和聚类等。在实际应用中,我们可以根据不同的问题选择不同的算法,并根据需要对算法进行调参以达到最佳性能。

附录:线性回归和决策树回归的源程序和注释

见上文。

房价预测:基于线性回归和决策树回归的有监督学习算法

原文地址: https://www.cveoy.top/t/topic/oVIg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录