简单线性回归

来源:互联网 发布:淘宝培训课程列表 编辑:程序博客网 时间:2024/05/17 00:08
 一.理论篇
1.监督学习:回归问题
2.简单线性回归
3.统计量:
描述数据特征
1)集中趋势衡量:

均值(平均数)mean


中位数(median):将数据中的各个数值按照大小顺序排序,局域中间位置的变量;
众数(mode):数据中出现次数最多的数
2)离散程度衡量

方差:(variance)


标准差:(standard deviation)


4.常见的两类问题区别
回归:Y变量为连续型数值
分类:Y变量为类别型
5.简单线性回归(Simple Linear Regression)
1)很多做决定过程通常是根据两个或者多个变量之间的关系;
2)回归分析:建立方程模拟两个或者多个变量之间的关联关系
3)因变量、自变量
6.简单线性回归介绍:
1)包含一个自变量和一个因变量
2)关系可以使用直线模拟
3)如果包含两个以上的自变量,则称为多元回归分析
7.简单线性回归模型
1)用来描述因变量和自变量以及偏差之间关系的方程

2)简单线性回归模型:


8.简单线性回归方程


9.估计的简单线性回归方程


10.线性回归分析流程


11.偏差的假定
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)
原创粉丝点击