机器学习的笔记

机器学习的基本方法

模型评估与模型参数选择

数据集

任何机器学习项目的基石都是数据集。通常我们将数据集分为三部分:训练集、验证集和测试集。训练集用于模型学习基础概念;验证集则用于优化模型参数;而测试集,则是评估模型最终性能的“期末考试”。

验证集

验证集对于调整模型参数至关重要。它帮助我们找到最优的超参数组合,以确保模型在未知数据上的性能。一旦我们对模型的超参数满意,我们便可以在测试集上进行最终评估。

误差与损失函数

模型评估的第一步是理解误差的概念。当我们的模型预测值 y_hat 与真实目标值 y 不一致时,就产生了误差。这种偏差通过损失函数来量化,它是预测值与真实值之间的差额的数学表达。

训练误差 vs 泛化误差

模型在训练数据上的平均误差被称为训练误差,而在未见的新数据上的误差称为泛化误差。一个好的模型应确保低泛化误差,这是因为我们的终极目标是让模型能处理之前未见过的数据。

过拟合与欠拟合

过拟合:

将训练样本自身的一些特点当作所 有样本潜在的泛化特点

表现:在训练集上表现很好,在测试集上表 现不好。
过拟合的原因: 训练数据太少(比如只有几百组) 模型的复杂度太高(比如隐藏层层数设置的过多,神 经元的数量设置的过大)、数据不纯
欠拟合

还没训练好

欠拟合的原因: 数据未做归一化处理、 神经网络拟合能力不足、 数据的特征项不够 
解决方法: 寻找最优的权重初始化方案、 增加网络层数、 epoch、 使用适当的激活函数、优化器和学习率、 减少正则化参数、 增加特征

在模型构建过程中,我们常常遇到两个问题:过拟合和欠拟合。过拟合发生在模型太复杂、拟合了训练数据中的噪声时,此时模型在训练集上表现优异,在测试集上却大失水准。而欠拟合则是当模型过于简单,无法捕捉数据的真实分布。

为了防范这些情况,我们可以采取多种策略,比如减少模型复杂度、增加数据量、数据增强或正则化等。

测试集——最终的检验场

评估模型效果,为了调整超参数而服务,调整超参数,使得模型在验证集上的效果最好

测试集就像是对模型能力的最终考核。它从未在模型训练或验证阶段使用过,因此提供了一个无偏的评估标准。准确率、精确率、召回率和F1分数等指标通常是我们在这个阶段关注的。

数据集划分的实践

超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集

在实践中,小规模数据集常见的划分比例为60%训练集、20%验证集和20%测试集。而对于大规模数据集,验证集和测试集的比例可以更小,因为更多的数据将提供足够的信息来训练模型。

监督学习

监督学习与非监督学习

如果数据集中样本点只包含了模型 的输入𝒙,那么就需要采用非监督学习的算法。
如果这些样本点以〈𝒙,𝒚〉这样的输入-输 出二元组的形式出现(有数据标签),那么就可以采用监督学习的算法。
模型与最优化算法的选择,很大程度上 取决于能得到什么样的数据。
监督学习:
在监督学习中,我们根据 训练集中的观测样本点来优化模型,使得给定测试样例𝒙′作为模型输
入,其输出尽可能接近正确输出。回归问题的输出是连续值,分类问题的输出是离散值。
回归
回归问题在生活中非常常见,其最简单的形式是一个连续函数的拟合。
一个购物网站想要计算出其在某个时期的 期收益 ,研究人员会将 相关因素如广告投放量、网站流量、优惠力度等纳入自变量,根 据现有数据拟合函数,得到在未来某一时刻的预测值。
回归问题中通常使用均方损失函数来作为度量模型效果的指标,最简 单的求解例子是最小二乘法。
简单线性回归:
自变量 x 和因变量 y之间存在一条线性关系
多元线性回归:
假设自变量 和因变量 y之间存在一条线性关系
回归的用途

1.预测房价:假设我们想要预测某个城市的房价。我们可以收集到该城市过去几年的房价数据,以一相关的因素,比如房屋的面积、房龄、所处区域、楼层等。我们可以使用这些数据建立一条最佳拟合直线,从而对未来的房价进行预测。自变量可以包括面积、房龄、所处区域等,因变量是房价我们可以通过最小二乘法来估计截距和斜率的值,从而得到一条最佳拟合直线。这条直线可以用来预测未来的房价,也可以用来分析不同因素对房价的影响。

2.预测销售额:假设我们想要预测某家公司未来一年的销售额。
我们可以收集到该公司 过去几年的销售额数据,以及一些相关的因素,比如广告投入、促销活动、季节性因素等。我们可以使用这些数据建立一条最佳拟合直线,从而对未来的销售额进行预测。自变量可以包括广告投入、促销活动、季节性因素等,因变量是销售额。我们可以通过最小二乘法来估计截距和斜率的值,从而得到一条最佳拟合直线。这条直线可以用 来预测未来的销售额,也可以用来分析不同因素对销售额的影响。
分类
想要预 测(检测)的目标是猫,那么在数据集中猫为正样本, 其 他 狗 、 兔 子 、 狮 子 这 些 数 据 为 负 样 本。
将这只猫预测(分类)为狗、兔子、其他预测结果为错;将这只猫预测为猫,预测结果为对。
虽然准确率可以判断总的正确率,但是在 样本不平衡的情况下,并不能作为很好的指标来衡量结果
举个简单的例子,比如在一个总样本中,正样本占 90%,负样本占 10%,样本是严重不平衡的。 对于这种情况,我们只需要将全部样本预测为正样本即可得到 90% 的高准确率,但实际上我们并没有很用心的分类,只是随便无脑一分而已。
这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。
精确率(查准率)- Precision:所有被预测为正样本中实际为正样本的概率
精准率代表对正样本结果中的预测准确程度。准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
召回率(查全率)- Recall:实际为正样本中被预测为正样本的概率
召回率越高,也代表网络可以改进的空间越大。
F- 度量则是在召回率与精确率之间去调和平均数;有时候在实际问题上,若我们更加看
重其中某一个度量,还可以给它加上一个权值 α ,称为 F_ α - 度量:
F1 分数( F1-score )是分类问题的一个衡量指标。

线性回归模型

线性回归:

线性模型作为模型进行预测,线性模型是最简单的模型

线性回归 模型是指 𝑓(⋅) 采用线性组合形式的回归模型,在线性回归问题中,因变量和自变量之间是线性关系的。对于第𝑖 个因变量 𝑥 𝑖 ,我们乘以权重系数𝑤 𝑖 ,取 𝑦 为因变量的线性组合:
𝒚 = 𝒇 𝒙 = 𝒘𝟏 𝒙 𝟏 + ⋯ + 𝒘 𝒏 𝒙 𝒏 + 𝒃
其中 𝑏 为常数项。若令 𝒘 = (𝑤 1 , ⋯ , 𝑤 𝑛 ) ,则上式可以写成向量形式:𝐲 = 𝒇 𝒙 = 𝒘⊤ 𝒙 + 𝒃
可以看到 𝒘 𝑏 决定了回归模型 𝑓(⋅) 的行为。由数据样本得到 𝒘和𝒃 有许多方法,例如最小二乘法(书上)、梯度下降法。
最开始 𝜔 是选取一个随机值,然后通过训练想要找到一个𝜔 的取值使得生成的预测函数与真实值的差异尽可能小,即损失尽可能小。
我们采用损失函数来衡量真实值与预测值之间的差异。目标:找到一个 𝜔 使得损失函数的值最小。
采用真实值与预测值的平方作为损失函数,假设𝜔 =3 4 0… ,计算出每个样本的损失,之后求平均损失。目标就是找到一个 𝜔使得这个平均损失最小。
注意:训练损失 loss :是针对具体某一个样本的; 将整个训练集的损失函数( 平方的差值)求平均( MSE )是最常用的损失函数cost 之一:
Pytorch画图:

matplotlib库、如果没有安装matplotlib库需要安装:pip install matplotlib、plt.plot() 、plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主要函数之一。它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。

x:表示X轴上的数据点,通常是一个列表、数组或一维序列,用于指定数据点的水平位置。
y:表示Y轴上的数据点,通常也是一个列表、数组或一维序列,用于指定数据点的垂直位置。
fmt:是一个可选的格式字符 串,用于指定线条的样式、标记和颜色。例如,‘ro-’ 表示红色圆点
线条。
**kwargs :是一系列可选参数,用于进一步自定义线条的属性,如线宽、标记大小、标签等。
常用参数和用法:
样式参数 : 格式字符串可以包含一个字符来指定颜色,一个字符来指定标记样式,以及一
个字符来指定线条样式。例如,‘ r-’ 表示红色实线,‘ bo–’ 表示蓝色圆点虚线。
线条样式 : 使用 linestyle 参数可以指定线条的样式,如实线 、虚线 、点划线 等。
标记样式 : 使用 marker 参数可以指定数据点的标记样式,如圆点 、星号 等。
线条颜色 : 使用 color 参数可以指定线条的颜色,可以使用颜色名称 、缩 或十六进制颜色码
线宽 : 使用 linewidth 参数可以指定线条的宽度,以数字表示。
标记大小 : 使用 markersize 参数可以指定标记的大小,以数字表示。
图例标签 : 使用 label 参数可以为线条指定标签,用于创建图例。
其他属性: 还有许多其他属性可用于自定义线图,如透明度、渐变、线型、阴影等。
plt.plot():
不仅可以绘制简单的线图,还可以用于绘制多条线,添加图例、标签、标题,设置坐标轴范围和刻度等。
它是 Matplotlib 中最常用的绘图函数之一,适用于可视化数据集的趋势和关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值