【Python】一元线性回归(数据挖掘)

题目

公式推导:
在这里插入图片描述

方法一:

def calT(data):#矩阵转置
    b = []
    for i in range(len(data[0])):#len(A[0])矩阵列数
        temp = []
        for j in range(len(data)):#len(A)矩阵行数
            temp.append(data[j][i])
        b.append(temp)
    return b

def oneLine(data):
    D=calT(data)
    xa=sum(D[0])/len(data)
    ya=sum(D[1])/len(data)
    s1=0
    s2=0
    for i in range(len(data)):
        s1+=(data[i][0]-xa)*(data[i][1]-ya)#data[i][0]:每个样本的第一个数(下标为0)
        s2+=(data[i][0]-xa)**2
    w=s1/s2
    b=ya-w*xa
    return  w,b
data=[[67,50],[76,55],[86,61],[93,70],[102,78],[123,90],[135,100],[145,107]]
w,b=oneLine(data)
x=145
y=w*x+b
y

方法二:

def oneLine(data):
    x=[]
    y=[]
    for e in data:
        x.append(e[0])#取出样本的第一列
        y.append(e[1])#取出样本的第二列
    xa=sum(x)/len(x)
    ya=sum(y)/len(y)
    s1=s2=0
    for i in range(len(x)):
        s1+=(x[i]-xa)*(y[i]-ya)
        s2+=(x[i]-xa)**2
    w=s1/s2
    b=ya-w*xa
    return w,b
data=[[67,50],[76,55],[86,61],[93,70],[102,78],[123,90],[135,100],[145,107]]
w,b=oneLine(data)
x=145
y=w*x+b
y
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linda .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值