(作业)监督学习

import numpy as np

x = np.array([[2,3],[4,6],[7,8],[12,15]])
t = np.array([5,8,14,17])
alpha = 0.1

theta0 = np.random.random()
theta1 = np.random.random()
theta2 = np.random.random()
theta = np.array([theta0,theta1,theta2])

td0 = 100
td1 = 100
td2 = 100
e = 1e-4

while td0 >= e or td1 >= e or td2 >= e:
    for i in range(len(x)):
        if td0 >= e or td1 >= e or td2 >= e:
            td0 = (np.sum((theta[i] *x[:,i])) - t[i])
            td1 = td0 * x[1,i]
            td2 = td0 * x[2,i]
            theta[0] = theta[0] - alpha* td0
            theta[1] = theta[1] - alpha* td1 * x[1,i]
            theta[2] = theta[2] - alpha* td2 * x[2,i]


print(theta0,theta1,theta2)
0.28116242108834644 0.17477893002810274 0.31939755214251564
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值