3、线性代数实战--底层算法应用

本文介绍了线性代数在机器学习中的实际应用,包括数据预处理、矩阵乘法以及模型调整。通过Python实现,讨论了如何添加截距列、计算代价函数、梯度下降以及模型优化。同时,利用图形展示了模型预测效果和代价值随迭代次数的变化,以验证模型的优化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

底层算法应用:

​ 1、预处理:

​ 先进行数据预处理

​ x=np.array([8,7,6,2,7,6,7,6,3,1,4,8,5,2,7])

​ y=np.array([8,4,8,5,7,6,2,7,6,7,6,3,1,2,7])

​ 获取样本的数量

​ n=len(x)

​ 给x增加一列1做准备,目的为了给作为截距的权重有位置可嵌入

​ x=np.c_[np.ones([n,1]),x]

​ 为了后续维度对应,y也要进行维度的变化

​ y=y.reshape(15,1)

​ 2、随机创建的θ值:

​ theta = np.zeros([2, 1])

​ 3、模型调整:

​ 每次调整都是设定模型函数,计算代价cost mse均方误差,计算梯度下降过程,计算θ的导数,然后更新θ的值

​ 调整过程:

​ alpha = 0.01(超参数,又叫学习率或步长)

​ m_iter = 1000 #迭代次数
​ cost = np.zeros([m_iter]) #定义一个数组,存储所有的代价数据
​ for i in range(m_iter):
​ y_hat = x.dot(theta)#求预测值
​ error = y_hat - y #误差值
cost_val = 1 / 2 * m *error.T.dot(error)#代价值(矩阵的转置乘以自身就是自身的平方)
cost[i] = cost_val#记录代价值(代价值就是代价函数的J值)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

T o r

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

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

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

打赏作者

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

抵扣说明:

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

余额充值