数据挖掘之线性回归原理(附代码)

1.什么是线性回归

这里引用百度百科的解释:利用数理统计中的回归分析,来确定变量间相互依赖的定量关系的一种统计分析方法,其表达形式为 y ( i ) = w T x ( i ) + e ( i ) y^{(i)} = w^Tx^{(i)}+e^{(i)} y(i)=wTx(i)+e(i) e e e为误差(用来代替统计误差或者抽样误差),它服从均值为0的标准正态分布。例如成年人的月收入与月消费的关系,二者之间肯定存在某种关系。
在求解之前,通常会给定几个假设:

  • (1)自变量 ( X i , X j ) (X_i, X_j) (Xi,Xj) 之间应相互独立;
  • (2)误差项 ( e i , e j ) (e_i,e_j) (eiej) 之间应相互独立;
  • (3)模型线性可加。假设因变量为Y,自变量为X1,X2,则回归分析的默认假设为 Y = b + a 1 X 1 + a 2 X 2 + e Y=b+a1X1+a2X2+e Y=b+a1X1+a2X2+e
    线性性 :X1每变动一个单位,Y相应变动a1个单位,与X1的绝对数值大小无关。
    可加性:X1对Y的影响是独立于其他自变量(如X2)的。

使用python生成模拟数据,具体代码与注释如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

font = {
   'family': 'Microsoft YaHei',
        'weight': 'bold',
        'size': 10}
plt.rc('font', **font) 
# 设置字体

''' 1.模拟数据x, y'''
x1 = np.arange(1, 5, 0.1)  # 0.1为步长
y = x1 * 4 + 3 + 2 * np.random.randn(len(x1))

# 2.通过API实现参数估计
model_lr = LinearRegression()
model_lr.fit(x1.reshape(-1, 1), y.reshape(-1, 1))  # 转换为列向量形
# model_lr.coef_ (1,1), model_lr.intercept_(1,)都是ndarray类型
print('API模型求解的w={}, b={}'.format(round(model_lr.coef_[0][0], 4), round(model_lr.intercept_[0], 4)))

下图是通过python接口求解到的W和b,绘制出原始数据和拟合线。
在这里插入图片描述

2.最大似然估计(MLE)

假设 y = X ∗ W + e y = X*W+e y=XW+e,最后的 J ( w ) J(w) J(w)就是我们要优化的目标函数也称为损失函数。
y ( i ) = w ⋅ x ( i ) + e ( i ) y^{(i)} = w · x^{(i)} +e^{(i)} y(i)=wx(i)+e(i)

概 率 密 度 : p ( e ( i ) ) = 1 2 π σ ⋅ e x p ( − e ( i ) 2 2 σ 2 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值