机器学习笔记一

摘要

本周回顾了线性模型的基本概念以及训练方法,并进行代码实操。从设立模型开始并进行optimization,经过50轮的运行得到最终结果。

abstract

This week, we reviewed the basic concepts of linear models and training methods, and conducted hands-on coding practice. We started by setting up the model and performing optimization, and after 50 rounds of running, we obtained the final results.

一、线性模型

线性模型是一种假设输出与输入特征之间存在线性关系的机器学习模型。就是用一条直线来拟合数据。模型的训练方法如下图所示

本次的数据集为学习时长1, 2, 3, 4, 5, 6, 7, 8, 9, 10与考试分数50, 55, 60, 68, 72, 75, 80, 85, 88, 95

python 复制代码
# X:学习时长
X = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# y:考试分数
y = np.array([50, 55, 60, 68, 72, 75, 80, 85, 88, 95])

二、训练

二.1 、初始化参数

根据数据集的数据分布情况可以初步推断学习时长与考试分数之间存在线性关系因此设:**y=wX+b。**初始斜率以及截距为0,每次更新的步幅为0.1,训练50次停止。选择MSE用于计算loss

python 复制代码
w = 0.0    # 斜率:初始=0
b = 0.0    # 截距:初始=0
lr = 0.1   # 学习率:每次更新的步长
epochs = 50  # 训练 50 次

二.2、训练

1step,将X带入到模型中得到预测值y_pred

python 复制代码
y_pred = w * X_norm + b

2step,计算loss =

python 复制代码
loss = np.mean((y_pred - y_norm) ** 2)

3step,optimization

首先求解loss对w的偏微分及及对(y-y_pred)^2进行求导,其中y视为常数。同理可得db

python 复制代码
dw = np.mean(2 * X_norm * (y_pred - y_norm))
db = np.mean(2 * (y_pred - y_norm))

进行更新

python 复制代码
w = w - lr * dw
b = b - lr * db

三,实验结果

经过50轮的更新得到:y = 4.85 × X + 46.13

相关推荐
HZZD_HZZD13 小时前
智能电表选CoAP还是MQTT?合众致达万表实测:CoAP省流17.3%、续航提升38%,附报文拆解与选型矩阵
算法
宇宙第一小趴菜13 小时前
七、机器学习建模流程
人工智能·机器学习
linux-hzh13 小时前
百日算法修炼 · Day 05
java·算法
paopaokaka_luck13 小时前
基于springboot3+vue3的云南本土影视文旅推荐平台(协同过滤算法、Echarts图形化分析)
前端·spring boot·学习·算法·echarts·mybatis
Ivanqhz14 小时前
泰勒展开(Taylor Expansion)
算法·决策树·机器学习·集成学习
zander25815 小时前
34. 在排序数组中查找元素的第一个和最后一个位置:用两个边界定位区间
数据结构·算法·leetcode
郑州光合科技余经理20 小时前
代驾系统架构拆解:订单链路、权限组织与私有化源码交付
开发语言·后端·算法·架构·系统架构·uni-app·php
To_OC1 天前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS1 天前
二叉树的直径
开发语言·javascript·算法
V哥AI增长1 天前
小红书笔记在生成式AI引擎中的可见性机制解析:从抓取原理到GEO工程化实践
大数据·人工智能·笔记