IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 波士顿房价数据集——回归分析 -> 正文阅读

[人工智能]波士顿房价数据集——回归分析

分别使用线性回归、二次多项式回归、三次多项式回归对数据集Boston进行回归分析,并比较这三种回归的结果。

一、加载数据

# Boston数据集
# 使用load_boston()方法,从sklearn.datasets模块导入波士顿房价数据集
from sklearn.linear_model import LinearRegression 
from sklearn.datasets import load_boston
boston=load_boston()
X=boston.data
y=boston.target

二、模型训练

1、线性回归?

LinearRegression()是sklearn.linear_model的一个类,使用它进行线性回归分析,先生成一个LinearRegression类的实例,使用实例调用fit(X,y)方法来拟合数组自变量X和目标集y,拟合好回归方程后,可使用predict()方法预测新样本的回归值。

# 线性回归部分
clf_lin_reg=LinearRegression().fit(X,y)  # 生成一个线性回归模型的实例并调用模型
y_lin_reg_pred=clf_lin_reg.predict(X)    # 预测值
import matplotlib.pyplot as plt  
# 可视化部分
plt.rcParams['font.sans-serif']='SimHei' # 设置字体,显示中文
plt.rcParams['axes.unicode_minus']=False # 坐标轴刻度显示负号
plt.rc('font',size=14)                   # 设置图中字号大小
plt.figure(figsize=(15,4))
plt.plot(y,marker='o')
plt.plot(y_lin_reg_pred,marker='*')
plt.legend(['真实值','预测值'])
plt.title('Boston房价线性回归预测值与真实值的对比')
plt.show()                               # 显示图形

?3、多项式回归(例:二项式和三项式)

对具有高次项的非线性问题,需使用多项式回归,scikit-learn对多项式回归没有直接的方法,而是在数据预处理模块sklearn.preprocessing提供了PolynomialFeatures()类,该类将数据集变换为具有高次项特征的新数据集,将原始问题转化为线性回归问题,再使用线性回归方法对转化后的数据集进行训练,从而间接地进行多项式回归分析。

特征与目标之间是飞线性关系,需要使用PolynomialFeatures()类增加高次项特征,将其转化为线性关系,然后使用fit()方法拟合数据集,使用transform()方法将原始数据集变换为线性形式。

(1)二次多项式回归:

# 2次多项式回归
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
boston_poly=PolynomialFeatures(2)  # 参数为2,也就是原始方程的最高次数是2
boston_poly.fit(X)                 # 拟合多项式模型
X2=boston_poly.transform(X)        # 使用拟合模型变换X
print('原始数据集X的形状为:',X.shape)
print('X转换为X2后的形状为:',X2.shape)

对一个原有13个特征的数据集,经二次多项式线性变换后,特征增加到了105个,然后使用线性回归方法,对新的数据集训练回归模型,使用训练好的多项式特征模型和线性回归模型分别转换原始数据集、预测转换后的数据集,获取目标值,并比较分析预测值与真实值。

# 新数据集的回归模型
lin_reg=LinearRegression()
lin_reg.fit(X2,y)
y_poly2_predict=lin_reg.predict(X2)
# 可视化部分
plt.figure(figsize=(15,4))
plt.plot(y,marker='o')
plt.plot(y_poly2_predict,marker='*')
plt.legend(['真实值','预测值'])
plt.title('Boston房价二次多项式回归预测值与真实值的对比')
plt.show() 

(2)三次多项式回归

# 三次多项式回归
boston_poly3=PolynomialFeatures(3) # 参数为3,也就是原方程的最高次数为3
boston_poly3.fit(X)                # 拟合多项式模型
X3=boston_poly3.transform(X)       # 使用拟合模型变换X
print('原始数据集X的形状为:',X.shape)
print('X转换为X3后的形状为:',X3.shape)

原始数据集的13个特征经三次多项式变换后,增加到了560个特征,这个变换比较大,原始特征数和多项式变换的项最高次数的增加,使线性变换后的特征数急剧增加。

# 线性回归部分
lin_reg=LinearRegression() # 生成线性回归模型实例
lin_reg.fit(X3,y)          # 调用
y_poly3_predict=lin_reg.predict(X3)
# 可视化部分
plt.figure(figsize=(15,4))
plt.plot(y,marker='o')
plt.plot(y_poly3_predict,marker='*')
plt.legend(['真实值','预测值'])
plt.title('Boston房价三次多项式回归预测值与真实值的对比')
plt.show() 

三、对比分析

为了进一步的对比这3个估计器的性能,分别计算预测值与真实值的相对误差,绘制相对误差曲线,并进行对比分析。

# 计算三种回归模型预处值与真实值的相对误差
error_linear=(y_lin_reg_pred-y)/y
error_poly2=(y_poly2_predict-y)/y
error_poly3=(y_poly3_predict-y)/y
# 可视化,绘制相对误差
plt.figure(figsize=(15,4))
plt.plot(error_linear,c='r')
plt.plot(error_poly2,c='y')
plt.plot(error_poly3,c='b')
plt.legend(['linear','poly2','poly3'])
plt.title('3个估计器对Boston房价预测值与真实值的相对误差')
plt.show() 

从这个图中,我们可以看出,线性回归模型的相对误差最大,二次多项式回归次之,三次多项式回归模型的相对误差最小,且拟合和预测效果最好。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:02:40  更:2021-12-03 13:03:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/26 2:30:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码