文章目录
*
– 线性学习
– 多元线性回归模型
– 多元线性回归模型的python实现
线性学习
回归分析是研究自变量x与因变量y的关系的方法。
上一节我们介绍了一元线性回归,经验公式为:
$ \hat{y}=\hat{\beta}1 x+\hat{\beta}0 $
在实际生活中,我们要研究的因变量y可以同时受多个自变量的影响,比如一个地区的用电量y,同时与人口数x1,天气文档x2有关;股票价格y,与成交量x1、股东数量x2、市值x3等多个变量有关。
多元线性回归模型
如果涉及多个自变量的关系,可以用多元线性方程来表示:
y = a x 1 + b x 2 + . . . + z y=ax1+bx2+…+z y =a x 1 +b x 2 +…+z
经过统计学估计后,同样可以得到经验回归方程:
$ \hat{y}=\hat{\beta}1 x1+\hat{\beta}2 x2+\hat{\beta}3 x3+…+\hat{\beta}0 $
为了方便书写,通常用矩阵$ \hat{\beta}$的转置与变量X矩阵的相乘去表示:
$ \hat{y}=\hat{\beta}^T X$
借用一个手写图片:
; 多元线性回归模型的python实现
我们以方程y=x1+0.5×2+0.5为依据,加入噪声,生成了100个随机样本,经过估计得到多元线性回归模型参数如下
- 回归方程的斜率为: [[0.99915343 0.49771742]]
- 回归方程的截距为: [0.50248829]
- 回归方程为:y = 0.9991534305437673 _x1 +0.4977174222422542_x1 + 0.5024882887129338
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
np.random.seed(1)
count=100
data=[]
for i in range(count):
x1=np.random.normal(0.00,0.55)
x2=np.random.normal(0.00,0.55)
y1=x1+x2*0.5+0.5+np.random.normal(0.00,0.02)
data.append([x1,x2,y1])
data =pd.DataFrame(data)
x_data=np.array(data.iloc[:,:2])
x1_data=np.array(data[0])
x2_data=np.array(data[1])
y_data=np.array(data[2])
fig = plt.figure()
ax = fig.gca(projection="3d")
ax.scatter(x1_data,x2_data, zs=y_data, zdir="z", c="#00DDAA", marker="o", s=40)
ax.set(xlabel="X", ylabel="Y", zlabel="Z")
plt.show()
from sklearn.linear_model import LinearRegression
regr = LinearRegression()
x_data=x_data
y_data=y_data.reshape(-1,1)
regr.fit(x_data,y_data)
t =regr.coef_
print('回归方程的斜率为:', regr.coef_)
print('回归方程的截距为:', regr.intercept_)
print('回归方程为:y = {}*x1 +{}*x2 + {}'.format(t[0][0],t[0][1],regr.intercept_[0]))
Original: https://blog.csdn.net/zzh1464501547/article/details/126735150
Author: 人工智能学术前沿(真)
Title: 回归分析:多元线性回归模型 白话解析与案例实现
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/634631/
转载文章受原作者版权保护。转载请注明原作者出处!