机器学习1
机器学习简介
定义
Arthur Samuel(1959): Field of study that gives computers the ability to learn without being explicitly programmed.
将机器学习定义为 赋予计算机在没有明确编程的情况下进行学习的能力的研究领域。
om Mitchell(1998): Well-posed Learning Problem:A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
计算机程序从经验E中学习解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高。例如,在人机玩跳棋游戏中,经验E是程序与自己下几万次跳棋;任务T是玩跳棋;性能度量P是与新对手玩跳棋时赢的概率。
分类
监督学习:(使用最多) 监督学习利用训练数据集学习一个模型,再用模型对测试样本集进行预测。它的训练数据是有标签的,训练目标是能够给新数据(测试数据)以正确的标签。
监督学习算法:线性回归、Logistic回归、神经网络、支持向量机等。
无监督学习:让计算机自己进行学习。它的训练数据是无标签的,训练目标是能对观察值进行分类或者区分等。
无监督学习算法:聚类、降维、异常检测算法等。
线性回归模型
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.
回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
一元线性回归
假设函数
对于该函数,我们自然希望得到使误差尽可能小的w、bw,因此我们又引入了代价函数来计算fw,b(x)的误差
代价函数
单变量线性回归模型中,我们的目标是找到一条线性的hypothesisfw,b(x)函数来拟合数据集中的数据,这样输入一个变量就能得到估计的结果。将数据集作为样本,通过学习算法的训练,就可以得到w、bw,这样也就得到了目标函数。对于该函数,我们自然希望得到使误差尽可能小的w、bw,因此我们又引入了代价函数来计算fw,b(x)函数的误差。
yi是样本的实际值。m是样本的个数,成本函数亦被称之为平均均方误差,除以2是为了方便后面梯度下降算法的计算。
我们的目标是minimize J(θ0,θ1),得到θ0,θ1的值。
梯度下降
梯度下降算法实现线性回归模型代价函数的最小化: 通过对每个自变量求偏导数,通过让偏导数为零来求得目标函数最小化时的自变量。
目的:是找出梯度下降的方向,是自变量沿着梯度逐步减小,最终收敛到局部最小值。
注意:
- w,b的值是同步变换的
- α是学习速度,为正。表明以多大的幅度来收敛,若幅度太小,收敛步数增加,若幅度太大有可能越过收敛点导致收敛困难(直接越过了局部最小值)。
多变量线性回归
之前探讨的是单变量/特征的回归模型, 现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为:(x1,x2,......xn)
𝑛 代表特征的数量
回归模型表示为:
简化为:
θ 和 x 都是 n + 1维向量。
多变量梯度下降
假设函数:
代价函数:
然后更新所有的参数值,从θ0到 θn,直到收敛:
特征缩放
当多个特征的取值范围相差很大时,梯度下降算法运行的很慢,此时需要将多个特征值缩放到一个相近的范围内。
可以使用均值归一化的方法实现特征缩放。均值归一化:
其中μn是平均值, Sn是标准差。
学习率
梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们可以通过绘制迭代次数和代价 函数的图来观察算法在何时趋于收敛。
选择 α时, 可以尝试 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1 , … 等值。
特征和多项式回归
线性回归有时并不适用于所有数据,这时我们需要曲线来适应我们的数据,这就是多项式回归。
比如一个二次方模型:
或者三次方模型:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现