回归:最小二乘法求解回归模型代码

回归:最小二乘法求解回归模型代码,第1张

import numpy as np
import matplotlib.pyplot as plt
def least_square(X,Y):
    '''
    最小二乘法
    :param X:矩阵,样本特征矩阵
    :param Y: 矩阵,标签向量
    :return: 矩阵,回归系数
    '''

    W = (X * X.T).I * X * Y.T#教材公式
    return W

temperatures = [15,20,25,30,35,40]
flowers = [136,140,155,160,157,175]

X = np.mat([[1,1,1,1,1,1],temperatures])
print("X",X)

Y = np.mat(flowers)
print("Y",Y)

W =least_square(X,Y)
print("W",W)

plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False ##运行配置参数总的轴(axes)正常显示正负号(minus)
plt.scatter(temperatures, flowers, color="green", label="花朵数量", linewidth=2)#散点图
plt.plot(temperatures,flowers,linewidth=1)#折线图
x1=np.linspace(15, 40, 100)#来创建等差数列,x横坐标

y1 = W[1,0]*x1 + W[0,0] #创建x对应的纵坐标,W中存放权重和偏置,
plt.plot(x1, y1, color="red", label="拟合直线", linewidth=2,linestyle=':')
plt.legend(loc='lower right')#调整图例位置,右下
plt.show()

new_tempera = [18,22,33]
new_tempera = (np.mat(new_tempera)).T#矩阵转置
pro_num = W[1,0]*new_tempera+W[0,0]
print("pro_num",pro_num)#回归拟合

运行图像

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/869151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存