一.线性回归
(1)线性回归
线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分
析方法。
线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归
线性回归:使用形如y=w T x+b的线性模型拟合数据输入和输出之间的映射关系的。
线性回归有很多实际的用途,分为以下两类:
1.如果目标是预测或者映射,线性回归可以用来对观测数据集的y和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。
2.给定一个变量y和一些变量X1...Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与X 𝑗 之间相关性的强度,评估出与y不相关的X 𝑗 ,并识别出哪些X 𝑗 的子集包含了关于y的冗余信息。
(2)实例背景
背景:与房价密切相关的除了单位的房价,还有房屋的尺寸。我们可以根据已知的房屋成交价和房屋的尺寸进行线性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行成交价格的预测。
目标:对房屋成交信息建立回归方程,并依据回归方程对房屋价格进行预测
技术路线:sklearn.linear_model.LinearRegression
为了方便展示,成交信息只使用了房屋的面积以及对应的成交价格。其中
• 房屋面积单位为平方英尺(ft 2 )房
• 屋成交价格单位为万
可行性分析
• 简单而直观的方式是通过数据的可视化直接观察房屋成交价格与房屋尺寸间是否存在线性关系。
• 对于本实验的数据来说,散点图就可以很好的将其在二维平面中进行可视化表示。
(3)实验过程
使用算法:线性回归
实现步骤:
1.建立工程并导入sklearn包
2.加载训练数据,建立回归方程
3.可视化处理
关于一些相关包的介绍:
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函
数库。
matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。
(1)建立工程并导入sklearn包
• 创建house.py文件
• 导入sklearn相关包
• import matplotlib.pyplot as plt #表示,matplotlib的pyplot子库,它提供了和matlab类似的绘图API。
• from sklearn import linear_model #表示,可以调用sklearn中的linear_model模块进行线性回归。
(2)加载训练数据,建立回归方程
调用sklearn.linear_model.LinearRegression()所需参数:
• fit_intercept : 布尔型参数,表示是否计算该模型截距。可选参数。
• normalize : 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。
• copy_X : 布尔型参数,若为True,则X将被复制;否则将被覆盖。可选参数。默认值为True。
• n_jobs : 整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数。默认值为1。
线性回归fit函数用于拟合输入输出数据,调用形式为linear.fit(X,y, sample_weight=None):
• X : X为训练向量;
• y : y为相对于X的目标向量;
• sample_weight : 分配给各个样本的权重数组,一般不需要使用,可省略。
• 如果有需要,可以通过两个属性查看回归方程的系数及截距。
• 具体的代码如下:
#查看回归方程系数
print('Coefficients:', linear.coef_)
#查看回归方程截距
print('intercept:', linear.intercept_)
(3)可视化处理
(4)结果展示
二.多项式回归
(1)多项式回归
(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。
一元m次多项式回归方程为:
二元二次多项式回归方程为:
在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。
多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。
事实上,多项式回归可以处理相当一类非线性问题,它在回归分析中占有重要的地位,因为任一函数都可以分段用多项式来逼近。
应用背景:我们在前面已经根据已知的房屋成交价和房屋的尺寸进行了线性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行了成交价格的预测,但是在实际的应用中这样的拟合往往不够好,因此我们在此对该数据集进行多项式回归。
目标:对房屋成交信息建立多项式回归方程,并依据回归方程对房屋价格进行预测
技术路线:sklearn.preprocessing.PolynomialFeatures
(2)实验过程
1)建立工程并导入sklearn包
sklearn中多项式回归:
这里的多项式回归实际上是先将变量X处理成多项式特征,然后使用线性模型学
习多项式特征的参数,以达到多项式回归的目的。
例如:X = [x 1 , x 2 ]
1.使用PolynomialFeatures构造X的二次多项式特征X_Poly:
X_Poly = [x 1 , x 2 , x 1 x 2 , x 12 , x 2 ]
2.使用linear_model学习X_Poly和y之间的映射关系,即参数:
2)加载训练数据,建立回归方程
3)可视化处理
4)结果展示