基本概念

简单线性回归指的是只有一个x和一个y

用来描述自变量和因变量及偏差之间关系的模型叫做回归模型

简单线性回归的模型是:

b0是截距,b1是斜率,e是偏差。

关于偏差

  • 他是一个随机变量,均值是0
  • 它的方差对于所有自变量x是相同的
  • 它的值是独立的
  • 它满足正太分布

线性回归方程就是少了偏差,其他和基本模型是相同的。

我们现在给若干x和y,要解决的问题是找出最好的截距和斜率。

线性回归的求解

我们要找最能代表趋势的直线,实际上就是要找距离所有点最近的直线。

我们就是要找一条直线使得这个值最小,其中y^i是用这条直线求出来的估计值,yi是这个点的值。

求解这个问题的数学公式

多元线性回归

它与一元线性回归的区别就是有多个自变量

具体模型求解过程涉及线代高数等内容,这里不再详解。

使用:

from numpy import genfromtxt
from sklearn import linear_model

dataPath = r"Delivery.csv"
deliveryData = genfromtxt(dataPath,delimiter=',')

print "data"
print deliveryData

x= deliveryData[:,:-1]
y = deliveryData[:,-1]

print x
print y

lr = linear_model.LinearRegression() # 模型
lr.fit(x, y)

print lr

print("coefficients:")
print lr.coef_ # 估计参数 b1,...

print("intercept:")
print lr.intercept_ # b0

xPredict = [102,6]
yPredict = lr.predict(xPredict)
print("predict:")
print yPredict

如果是分类型变量,我们需要转化成01再来运算。

例如男女就是分类型变量。假设一个人是男的,那么可以让它的自变量变成10。如果是女则是01,这样把一个自变量变成多个自变量从而当成数据型变量进行计算。