机器学习-简单线性回归(Simple Linear Regression)算法

Posted YEN_csdn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习-简单线性回归(Simple Linear Regression)算法相关的知识,希望对你有一定的参考价值。

学习彭亮《深度学习基础介绍:机器学习》课程


准备

需要用到一些统计量:

  • 平均值(mean)
  • 中位数(median)
  • 众数(mode)
  • 方差(variance)
  • 标准差(standard deviation)

概念

  • 回归:(regression) Y变量为连续数值型(continuous numerical variable) 如:房价,人数,降雨量
  • 分类:(Classification): Y变量为类别型(categorical variable) 如:颜色类别,电脑品牌,有无信誉

简单线性回归(Simple Linear Regression)

  • 很多做决定过过程通常是根据两个或者多个变量之间的关系
  • 回归分析(regression analysis)用来建立方程模拟两个或者多个变量之间如何关联
  • 被预测的变量叫做:因变量(dependent variable), y, 输出(output)
  • 被用来进行预测的变量叫做: 自变量(independent variable), x, 输入(input)

  • 简单线性回归包含一个自变量(x)和一个因变量(y)
  • 以上两个变量的关系用一条直线来模拟
  • 如果包含两个以上的自变量,则称作多元回归分析(multiple regression)

简单线性回归模型

被用来描述因变量(y)和自变量(X)以及偏差(error)之间关系的方程叫做回归模型
简单线性回归的模型是:

简单线性回归方程

F(y) = β0+β1x
这个方程对应的图像是一条直线,称作回归线
其中,β0是回归线的截距
β1是回归线的斜率
F(y)是在一个给定x值下y的期望值(均值)


  • 正向线性相关
  • 负向线性相关
  • 无关

关于偏差ε的假定

  • 是一个随机的变量,均值为0
  • ε的方差(variance)对于所有的自变量x是一样的
  • ε的值是独立的
  • ε满足正态分布

销量预测实例

预测广告数量与汽车销量的关系

分子 = (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-20)+(3-2)(27-20)
      = 6 + 4 + 0 + 3 + 7
      = 20

分母 = (1-2)^2 + (3-2)^2 + (2-2)^2 + (1-2)^2 + (3-2)^2
       = 1 + 1 + 0 + 1 + 1
       4

b1 = 20/4  =5

b0 = 20 - 5*2 = 20 - 10 = 10

代码

#coding=utf-8
# @Author: yangenneng
# @Time: 2018-01-16 15:32
# @Abstract:简单线性回归(Simple Linear Regression)算法预测汽车销量
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

    print("numerator:" + str(numerator))
    print("dinominator:" + str(dinominator))

    b1 = numerator / float(dinominator)
    b0 = np.mean(y) / float(np.mean(x))

    return b0, b1

# y= b0+x*b1
def prefict(x, b0, b1):
    return b0 + x * b1

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

b0, b1 = fitSLR(x, y)
y_predict = prefict(6, b0, b1)
print("y_predict:" + str(y_predict))


以上是关于机器学习-简单线性回归(Simple Linear Regression)算法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习---线性回归(Machine Learning Linear Regression)

R语言plotly可视化:使用plotly可视化简单线性回归模型的回归线(simple regression model linear regression plots)

机器学习基石:09 Linear Regression

机器学习------- 线性回归(Linear regression )

机器学习:局部加权线性回归(Locally Weighted Linear Regression)

机器学习基础 --- 线性回归(Linear Regression)