【机器学习算法】——线性回归

导入

假设学生用x小时学习机器学习,能够得要y分数:
在这里插入图片描述
在这里插入图片描述

原理实现

我们采用损失函数来衡量真实值与预测值之间的差异。
目标:找到一个𝜔使得损失函数的值最小
采用真实值与预测值的平方作为损失函数(loss)

  • 注意:训练损失loss:是针对具体某一个样本的;
  • 将整个训练集的损失函数(平方的差值)求平均(MSE)是最常用的损失函数cost之一:
    在这里插入图片描述

怎样才能找到最小的损失值呢?
假设损失值和w的关系如下图所示,我们可以采用穷举法将所有w取值的损失值都计算出来,就可以得到损失值的最小值是在w=3时取得的。
在这里插入图片描述
在这里插入图片描述

实现步骤:

  • 准备数据
  • 定义模型
  • 定义损失函数
  • 穷举法计算损失值cost

代码

import numpy as np
import matplotlib.pyplot as plt
#plt是常用的绘制图像的库
#训练集数据
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
#定义线性模型y=wx
def forward(x):## def:关键字 表示即将定义函数  def XXX:函数名  def forward(x):x是需要传入的函数参数
    y=x*w
    return y#返回的函数值y
#定义损失函数:𝑙𝑜𝑠𝑠=(y_predect−𝑦)2=(𝑥∗𝜔−𝑦)2
def loss(x,y):#计算预测值y_pred和真实值y之间的损失值loss_value
    y_pred = forward(x)#计算预测值 y_pred(y) =w*x=forward(x)
    loss_value=(y_pred-y)*(y_pred-y)#(y_pred-y)**2
    return loss_value
# #定义w_list、mse_list来保存w和对应mes loss的取值
w_list = []
mse_list = []
#穷举法计算损失值cost
for w in np.arange(0.0, 4.1, 0.1):
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值