线性回归LR
2018-05-22 本文已影响16人
闫_锋
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
线性回归:
使用形如y=wTx+b的线性模型拟合数据输入和输出之间的映射关系。
1>如果目标是预测或者映射,线性回归可以用来观测数据集的y和X的值拟合出一个预测模型。当完成这样一个模型之后,对于一个新增的X值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。
2>给定一个变量y和一些变量X1, ... , Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与Xj之间相关性的强度,评估出与y不相关的Xj,并识别出哪些Xj的子集包含了关于y的冗余信息。
可行性分析
- 简单而直观的方式是通过数据的可视化直接观察房屋成交价格与房屋尺寸间是否存在线性关系。
- 对于本实验的数据来说,散点图就可以很好的将其在二维平面中进行可视化表示。
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
# 读取数据集
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)
print(len(datasets_X))
datasets_X = np.array(datasets_X).reshape([length, 1])
datasets_Y = np.array(datasets_Y)
minX = min(datasets_X)
maxX = max(datasets_X)
print(minX)
print(maxX)
X = np.arange(minX, maxX).reshape([-1, 1])
print(X.shape)
print(X[0:5])
Y = np.arange(minX, maxX)
print(Y.shape)
print(Y[0:5])
linear = linear_model.LinearRegression()
linear.fit(datasets_X, datasets_Y)
# 图像中显示
plt.scatter(datasets_X, datasets_Y, color='green')
plt.plot(X, linear.predict(X), color='black')
#plt.plot(Y, linear.predict(X), color='black')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()