一.mooc实例介绍
1.线性回归
·线性回归(Linear Regression)是利用数理统计中回归分析,确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
·线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
线性回归有很多实际的用途,分为以下两类:
1.如果目标是预测或者映射,线性回归可以用来对观测数据集的y和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的x值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。
2.给定一个变量y和一些变量X1,...,Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与X;之间相关性的强度,评估出与y不相关的X;,并识别出哪些x,的子集包含了关于y的穴余信息。
2.背景:
与房价密切相关的除了单位的房价,还有房屋的尺寸。我们可以根据已知的房屋成交价和房屋的尺寸进行线性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行成交价格的预测。
目标:对房屋成交信息建立回归方程,并依据回归方程对房屋价格进行预测
技术路线:sklearn.linear_model.LinearRegression
3.可行性分析
·简单而直观的方式是通过数据的可视化直接观察房屋成交价格与房屋尺寸间是否存在线性关系。
对于本实验的数据来说,散点图就可以很好地将其在二维平面中进行可视化表示。
线性回归fit函数用于拟合输入输出数据,调用形式为linear.fit(X,y,sample_weight=None):
·X:X为训练向量;
·y:y为相对于X的目标向量;
·sample_weight:分配给各个样本的权重数组,一般不需要使用,可省略。
·如果有需要,可以通过两个属性查看回归方程的系数及截距。
·具体的代码如下:
#查看回归方程系数
print('Coefficients:', linear. coef_)
#查看回归方程截距
print('intercept:',linear.intercept_)
调用sklearn.linear_model.LinearRegression()所需参数:
·fit_intercept:布尔型参数,表示是否计算该模型截距。可选参数。
·normalize:布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。
·copy_X:布尔型参数,若为True,则X将被复制;否则将被覆盖。可选参数。默认值为True。
·njobs:整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数。默认值为1。
二.代码
from sklearn import linear_model
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
#切分读取数据分类保存在list
datasets_X=[]
datasets_Y=[]
fr=open('./prices.txt',
'r')
lines=fr.readlines()
for line in lines:
items = line.strip().split(',')
datasets_X.append(int(items[0]))
datasets_Y.append(int(items[1]))
length=len(datasets_X)
datasets_X=np.array(datasets_X).reshape([length,1])
datasets_Y=np.array(datasets_Y)
# print(datasets_X)
maxX=np.max(datasets_X)
minX=np.min(datasets_X)
X=np.arange(minX,maxX).reshape([-1,1])
#调用算法
linear=linear_model.LinearRegression()
linear.fit(datasets_X,datasets_Y)
#绘散点图和直线
plt.scatter(datasets_X,datasets_Y,edgecolors='r',color='y')
plt.plot(X,linear.predict(X),color='blue')
plt.title('房屋面积与价格的线性回归')
plt.xlabel('Area')
plt.ylabel('price')
plt.show()
(1)结果
三.如果想再进一步了解,这里推荐一篇文章
https://blog.csdn.net/hubingshabi/article/details/80172608