原理理论部分
线性回归原理
线性回归概述
一元线性回归模型
多元回归模型
误差项分析
误差满足期望为0,方差相同的高斯分布概率密度函数
求解β的思路:真实值y和预测值y’(不含ε),总是存在误差ε=y-y’,将ε=y-y’代入到高斯分布的概率密度函数中,解方程就可以算出各个β。
在构造矩阵中,为了求β0,创造x0这一列,元素值都为1。并且将横向的β转置成列向量。如下图:
误差项满足高斯分布,代入高斯分布密度函数中。
含义是:什么样的β和x组合后使得y的概率最大
求解需要先了解极大似然估计思想
极大似然估计原理
根据观测到的数据结果,向前推测出事件的条件和结果。例如硬币抛1w次,如果正反都在5000次左右,那么硬币质地均匀,如果正面8000次,说明质地不均匀。
预测值y’ = β0+β1×x1
观测到1、2、3三个点,为什么在众多数据中被观测到,他们肯定概率最大的点,假设他们就是真相的结果。因此,从这三个往回溯源真相。
似然函数求解
对数运算可以化乘为加
A为常数,要求最大值,那么就要求B最小值
得到的目标函数就是最小二乘法
只保留1/2是因为后面计算时会把前面常数消掉,不影响单调性
求最小值,对目标函数求导,导数等于0有极值
假设检验原理
对于一元线性,R方和调整R方是同等的
代码部分
sklearn库实现线性回归
sklearn库种线性回归参数详解
fit_intercept:截距就是y=kx+b中的b,一般是默认有的
normalize:是否归一化就是消除量纲的影响,一般在数据清洗阶段进行,所以这里一般是false
copy_X:是否覆盖原来的x
n_job:
fit():输入xy
predict(X):根据x预测y
score():预测效果的评分
sklearn实现一元线性回归
"""
相关关系 包含因果关系和平行关系
因果关系:回归分析【原因引起结果,需要明确自变量和因变量】
平行关系:相关分析【无因果关系,不区分自变量和因变量】
"""
import pandas as pd
data = pd.read_csv(r'/Users/dx/Desktop/Python数据分析与机器学习/5.线性回归/线性回归/sklearn实现一元线性回归/data.csv')
#如果数据文件在当前的工作的工程目录下,可以使用pd.read_csv(./data.csv),不在工作目录下,使用上述绝对路径
from matplotlib import pyplot as plt
#绘制散点图,求x和y的相关系数
plt.scatter(data.广告投入,data.销售额)
data.corr() #得到的结果是中度相关以上的,r > 0.5可以构建线性回归模型
from sklearn.linear_model import LinearRegression
#实例化线性回归模型对象:建立回归模型,估计模型参数
lr = LinearRegression()
#将data中自变量和因变量分离
x = data[[</