简单线性回归
一.理论篇
1.监督学习:回归问题
2.简单线性回归
3.统计量:
描述数据特征
1)集中趋势衡量:
众数(mode):数据中出现次数最多的数
2)离散程度衡量
回归:Y变量为连续型数值
分类:Y变量为类别型
5.简单线性回归(Simple Linear Regression)
1)很多做决定过程通常是根据两个或者多个变量之间的关系;
2)回归分析:建立方程模拟两个或者多个变量之间的关联关系
3)因变量、自变量
6.简单线性回归介绍:
1)包含一个自变量和一个因变量
2)关系可以使用直线模拟
3)如果包含两个以上的自变量,则称为多元回归分析
7.简单线性回归模型
1)用来描述因变量和自变量以及偏差之间关系的方程
1)随机的变量,均值为0;
2)对所有自变量都是一样的;
3)独立的
4)服从正态分布
二.简单应用
1.举例计算回归方程
1)初级版
# -*- coding: utf-8 -*-
import numpy as np
#使用函数定义的方式实现简单线性回归方程的拟合
#线性方程中两个参数的计算
def LinearPara(x,y):
sum1 = 0
sum2 = 0
avg1 = np.sum(x)/len(x)
avg2 = np.sum(y)/len(y)
for i in range(len(x)):
sum1+= (x[i]-avg1)*(y[i]-avg2)
sum2+=(x[i]-avg1)**2
b1 = sum1/sum2
b0 = avg2-b1*avg1
return b1,b0
#给定方程,给出自变量,求因变量
def predict(x,b1,b0):
return b0+b1*x
x = [1,3,2,1,3]#2
y = [14,24,18,17,27]#20
b1,b0 = LinearPara(x,y)
print(b1,b0)
y = predict(6,b1,b0)
print(y)
'''结果:
5.0 10.0
40.0
# -*- coding: utf-8 -*-
import numpy as np
#使用函数定义的方式实现简单线性回归方程的拟合
#线性方程中两个参数的计算
def LinearPara(x,y):
sum1 = 0
sum2 = 0
for i in range(len(x)):
sum1+= (x[i]-np.mean(x))*(y[i]-np.mean(y))
sum2+=(x[i]-np.mean(x))**2
b1 = sum1/sum2
b0 = np.mean(y)-b1*np.mean(x)
return b1,b0
#给定方程,给出自变量,求因变量
def predict(x,b1,b0):
return b0+b1*x
x = [1,3,2,1,3]#2
y = [14,24,18,17,27]#20
b1,b0 = LinearPara(x,y)
print(b1,b0)
y = predict(6,b1,b0)
print(y)
1.监督学习:回归问题
2.简单线性回归
3.统计量:
描述数据特征
1)集中趋势衡量:
均值(平均数)mean
众数(mode):数据中出现次数最多的数
2)离散程度衡量
方差:(variance)
标准差:(standard deviation)
回归:Y变量为连续型数值
分类:Y变量为类别型
5.简单线性回归(Simple Linear Regression)
1)很多做决定过程通常是根据两个或者多个变量之间的关系;
2)回归分析:建立方程模拟两个或者多个变量之间的关联关系
3)因变量、自变量
6.简单线性回归介绍:
1)包含一个自变量和一个因变量
2)关系可以使用直线模拟
3)如果包含两个以上的自变量,则称为多元回归分析
7.简单线性回归模型
1)用来描述因变量和自变量以及偏差之间关系的方程
2)简单线性回归模型:
8.简单线性回归方程
9.估计的简单线性回归方程
10.线性回归分析流程
1)随机的变量,均值为0;
2)对所有自变量都是一样的;
3)独立的
4)服从正态分布
二.简单应用
1.举例计算回归方程
1)初级版
# -*- coding: utf-8 -*-
import numpy as np
#使用函数定义的方式实现简单线性回归方程的拟合
#线性方程中两个参数的计算
def LinearPara(x,y):
sum1 = 0
sum2 = 0
avg1 = np.sum(x)/len(x)
avg2 = np.sum(y)/len(y)
for i in range(len(x)):
sum1+= (x[i]-avg1)*(y[i]-avg2)
sum2+=(x[i]-avg1)**2
b1 = sum1/sum2
b0 = avg2-b1*avg1
return b1,b0
#给定方程,给出自变量,求因变量
def predict(x,b1,b0):
return b0+b1*x
x = [1,3,2,1,3]#2
y = [14,24,18,17,27]#20
b1,b0 = LinearPara(x,y)
print(b1,b0)
y = predict(6,b1,b0)
print(y)
'''结果:
5.0 10.0
40.0
'''
说明:分别为b1和b0以及当自变量为6时的预测值;
2)改进版# -*- coding: utf-8 -*-
import numpy as np
#使用函数定义的方式实现简单线性回归方程的拟合
#线性方程中两个参数的计算
def LinearPara(x,y):
sum1 = 0
sum2 = 0
for i in range(len(x)):
sum1+= (x[i]-np.mean(x))*(y[i]-np.mean(y))
sum2+=(x[i]-np.mean(x))**2
b1 = sum1/sum2
b0 = np.mean(y)-b1*np.mean(x)
return b1,b0
#给定方程,给出自变量,求因变量
def predict(x,b1,b0):
return b0+b1*x
x = [1,3,2,1,3]#2
y = [14,24,18,17,27]#20
b1,b0 = LinearPara(x,y)
print(b1,b0)
y = predict(6,b1,b0)
print(y)