【机器学习】6.简单线性回归

0.统计量的作用:描述数据特征

    0.1集中趋势衡量

        0.1.1均值(平均数,平均值)(mean)

                                                                        

        0.1.2中位数:将数据中的各个数值按照大小顺序排列,居于中间位置的变量

                当n为奇数时,直接取处于中间的变量。当n为偶数时,取中间两个数的平均值。

        0.1.3众数:数据中出现次数最多的数

    0.2离散程度衡量

        0.2.1.1方差

                                                                    

        0.2.1.2标准差

                                                                            


1.介绍:

        回归(regression):Y变量为连续型数值。如房价、人数、降雨量

        分类(Classification):Y变量为类别型。如颜色类别,电脑品牌,有无信誉。


2.线性回归:

    很多做决定的过程通常是根据两个或多个变量之间的关系。

    回归分析用来建立方程模拟两个或多个变量之间如何关联。

    被预测的变量叫做因变量,y,输出

    被用来进行预测的变量叫做自变量,x,输入


3.简单线性回归介绍

    简单线性回归包含一个自变量(x)和一个因变量(y)

    以上两个变量的关系用一条直线来模拟

    如果包含两个以上的自变量,则称作多元回归分析


4.简单线性回归模

    回归模型:被用来描述因变量y和自变量x以及偏差之间关系的方程

    简单线性回归的模型是:

                                                            


5.简单线性回归方程

                                                                      E(y) = β 0 1

    这个方程对应的图像是一条直线,称作回归线

    其中,β0是回归线的截距    

              β1是回归线的斜率

              E(y)是在一个给定x值下y的期望值(均值)。因为误差的均值为0,所以消掉了。

             

6.正向线性关系:

                    


7.负向线性关系

                    


8.无关系

                    


9.估计的简单线性方程

                                                                ŷ=b0+b1x

    这个方程叫做估计线性方程,其中b0是估计线性方程的纵截距。b1是估计线性方程的斜率。 ŷ是在自变量x等于一个给定值的时候,y的估计值。


10.线性回归分析流程:



11.关于偏差的假定

        偏差是一个随机的变量,均值为0

        偏差的方差对于所有的自变量x是一样的

        偏差的值是独立的

        偏差满足正态分布


12.简单线性回归模型举例:

    汽车卖家做电视广告数量与卖出的汽车数量:

                                    

    然后需要训练出适合简单线性回归模型的最佳回归线,要求是使sum of squares最小:

                                                    

    图如下:

        

    计算出:

                                            

                                                            


13.程序实现

import numpy as np
def fitSLR(x,y):
    n=len(x)
    dinominator=0                                                    #分子
    numerator=0                                                      #分母
    for i in range(0,n):
        numerator+=(x[i]-np.mean(x))*(y[i]-np.mean(y))
        dinominator+=(x[i]-np.mean(x))**2
    b1=numerator/float(dinominator)
    b0=np.mean(y)/float(np.mean(x))
    return b0,b1
def predict(x,b0,b1):
    return b0+x*b1

x=[1,3,2,1,3]
y=[14,24,18,17,27]

b0,b1=fitSLR(x,y)
print"intercept:",b0,"slope:",b1
x_test=6
y_test=predict(6, b0, b1)
print"y_test:",y_test

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值