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

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)#回归拟合

运行图像

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值