监督学习
算法是许多 机器学习
(ML
)应用的基石,可使系统从标记数据中学习并做出准确预测。在监督学习中,每个数据点都与已知结果或标签相关联。可以把它想象成一组已经提供了正确答案的示例。
该算法旨在学习一个映射函数,以预测未见过的新数据的标签。这一过程包括识别特征(输入变量)和相应标签(输出变量)之间的模式和关系,使算法能够将其知识推广到新的实例中。
监督学习如何运转
想象一下,你正在教孩子识别不同的水果。你给他们看一个苹果,然后说 "这是苹果"。然后给他们看一个橘子,说 "这是橘子"。通过反复展示带有标签的例子,孩子学会了根据水果的颜色、形状和大小等特征来区分它们。
监督学习算法的工作原理与此类似,它们被输入一个包含大量标注示例的数据集,并利用这些数据来训练一个模型,该模型可以预测新的、未见过的示例的标签。训练过程包括调整模型参数,使其预测结果与实际标签之间的差异最小。(例如很早之前的tensoflow,图像识别模型)
有监督的学习问题大致可分为两大类:
分类
:在分类问题中,目标是预测一个分类标签。例如,将电子邮件分类为垃圾邮件与否,或识别猫、狗或鸟的图像。
回归
:在回归问题中,目标是预测一个连续值。例如,可以根据房屋的大小、位置和其他特征预测房屋的价格,或者预测股票市场。
监督学习的核心概念
理解监督学习的核心概念对于有效掌握监督学习至关重要。这些概念构成了理解算法如何从标记数据中学习并做出准确预测的基石。
训练数据
训练数据
是 监督学习
的基础。它是用于训练 ML
模型的标记数据集。该数据集由输入特征及其相应的输出标签组成。训练数据
的质量和数量对模型的准确性和泛化到新的陌生数据的能力有重大影响。
将 训练数据
视为一组带有正确解决方案的示例问题。算法会从这些示例中学习,从而开发出一个能在未来解决类似问题的模型。
简单举例,比如:在渗透测试过程中,爆破密码经常会遇到验证码拦截,这时候,一个训练的很棒的识别模型就很棒了,当然近年来的验证码的形式也越来越复杂,这是矛与盾的持续升级的对抗过程。
特征
特征
是作为模型输入的数据的可测量属性或特征。它们是算法用于学习和预测的变量。选择相关的 特征
对于建立有效的模型至关重要。
例如,在预测房价时,特征可能包括
标签
标签
是与训练集中每个数据点相关联的已知结果或目标变量。它们代表了模型旨在预测的 "正确答案"。
在房价预测示例模型中,标签
将是房屋的实际价格。
模型
模型
是特征和标签之间关系的数学表示。它从训练数据中学习,并用于预测新的、陌生的数据。模型
可以被视为一个函数,它将特征作为输入,并输出对标签的预测。
预测
一旦模型训练完成,就可以用它来预测新的、陌生的数据。这涉及到向模型提供新数据点的特征,然后模型将输出对标签的预测。预测是推理的特定应用,专注于生成可操作的输出,例如将电子邮件分类为垃圾邮件或预测股价(缅A除外)。
推理
推理是一个更广泛的概念,不仅包括预测,还包括理解数据中的潜在结构和模式。它涉及使用训练有素的 模型
来得出见解、估计参数和理解变量之间的关系。
例如,推理可能涉及确定决策树中最重要的特征,估计线性回归模型中的系数,或分析不同的输入如何影响模型的预测。预测强调可操作的输出结果,而推理通常侧重于解释和诠释结果。
评估
评估
是 监督学习
中的一个关键步骤。它涉及评估模型的性能,以确定其准确性和对新数据的泛化能力。常见的评估指标包括
准确度:
模型预测的正确率。
精度:
真阳性预测在所有阳性预测中所占的比例。
- 召回率:在所有实际阳性实例中,真阳性预测的比例。
- F1-分数(F1-score):精确率和召回率的调和平均值,提供了一个平衡的模型性能度量。
泛化
泛化
指的是模型对训练过程中未使用过的新数据进行准确预测的能力。泛化能力强的模型可以有效地将所学知识应用到现实世界的场景中。
过拟合
当模型对训练数据(包括噪声和异常值)的学习效果太好时,就会出现过拟合
。这可能导致对新数据的泛化效果不佳,因为模型记住了训练集,而不是学习基本模式。
欠拟合
欠拟合
是指模型过于简单,无法捕捉数据中的基本模式。这会导致在训练数据和未见过的新数据上都表现不佳。
交叉验证
交叉验证
是一种用于评估模型对独立数据集的泛化程度的技术。它包括将数据分成多个子集(折叠),并在这些折叠的不同组合上训练模型,同时在剩余的折叠上验证模型。这有助于减少过拟合,并对模型的性能做出更可靠的估计。
正则化
正则化(Regularization)在机器学习中是一种用于防止模型过拟合的技术,它通过在损失函数中添加惩罚项,这种惩罚会阻止模型学习过于复杂的模式,来限制模型的学习能力,从而使模型具有更好的泛化能力,常见的正则化技术包括:
L2 正则化:
添加等于系数平方的惩罚。
L1 正则化:
添加等于系数绝对值的惩罚。
总结一下:
欠拟合:泛化能力差,训练样本集准确率低,测试样本集准确率低。
过拟合:泛化能力差,训练样本集准确率高,测试样本集准确率低。
合适的拟合程度:泛化能力强,训练样本集准确率高,测试样本集准确率高
欠拟合原因:
训练样本数量少
模型复杂度过低
参数还未收敛就停止循环
欠拟合的解决办法:
增加样本数量
增加模型参数,提高模型复杂度
增加循环次数
查看是否是学习率过高导致模型无法收敛
过拟合原因:
数据噪声太大
特征太多
模型太复杂
过拟合的解决办法:
清洗数据
减少模型参数,降低模型复杂度
增加惩罚因子(正则化),保留所有的特征,但是减少参数的大小(magnitude)。
关于过拟合一点经验:在基于知识库微调大模型时(俗称炼丹),经常会出现过拟合