【机器学习】(一)概述

📅 2026/8/13 10:25:06
【机器学习】(一)概述
一、机器学习概述1. 什么是学习算法传统的算法是“硬编码”的而机器学习算法是“自动”的。对于某类任务 $ T $ 和性能度量 $ P $如果一个计算机程序在任务 $ T $ 上的性能以 $ P $ 衡量随着经验 $ E $ 的增加而提升那么该程序就被称为一个学习算法。简单来说学习算法的核心不是“我们告诉计算机怎么做”而是“计算机通过看数据经验 $ E $自己学会怎么做并且越做越好”。2. 学习算法的三大要素为了让上述定义具体化5.1节详细拆解了任何机器学习算法都必须明确的三个基本组成部分A. 任务 $ T $机器学习算法需要完成的任务。机器学习任务不是“在数据上训练”的过程而是我们希望模型在“部署时”能解决的实际问题例如识别图像、翻译语言、玩游戏。常见的任务类型包括分类输入一个向量输出几个类别中的某一个。回归输入一个向量输出一个实数或连续值。聚类将输入的数据自动分成若干组无监督学习。密度估计找出输入数据的概率分布。转录将非结构化数据转为文本如语音识别、OCR。降维将高维数据压缩保留主要信息。B. 经验 $ E $根据训练数据是否包含标记信息机器学习任务可划分为监督学习与无监督学习两大范式。无监督学习经验 $ E $ 仅仅是数据本身只有特征 $ x $。算法试图从数据中挖掘隐含的结构如聚类、关联规则。监督学习经验 $ E $ 包含数据及其对应的标签特征 $ x $目标 $ y $。算法试图学习从 $ x $ 到 $ y $ 的映射关系。其中分类与回归隶属于监督学习其核心在于通过已标注样本推断输入与输出之间的映射关系聚类则隶属于无监督学习其核心在于无先验指导的条件下揭示数据内在的聚集结构。三者的方法论差异本质上取决于输出变量的测度水平Measurement Level。比较维度分类算法回归算法聚类算法学习范式监督学习Supervised监督学习Supervised无监督学习Unsupervised输出类型离散型类别Categorical 例0/1红/绿/蓝连续型数值Continuous 例3.14-5℃伪标签簇Pseudo-clusters 无先验语义需后验解释训练目标最小化分类误差如交叉熵最小化拟合残差如均方误差 MSE最大化簇内相似度 / 最小化簇间相似度核心数学任务寻找决策边界Decision Boundary拟合函数曲线Function Fitting求解距离度量下的最优化分组Distance Optimization评价指标准确率Accuracy 精确率与召回率Precision/Recall均方根误差RMSE 决定系数R²轮廓系数Silhouette Coefficient 误差平方和SSE书中也提到了强化学习作为另一种经验形式其中算法通过与环境的交互获得奖励或惩罚来学习。C. 性能度量 $ P $用来衡量算法在任务 $ T $ 上的表现。算法的目标就是最大化/最小化 $ P $。不同的任务对应不同的度量准确率/错误率分类任务中最常见的度量。均方误差MSE回归任务中常用的度量。对数似然概率模型常用的度量。3. 机器学习开发流程4. 线性回归线性回归本身通常不被认为是“深度学习”模型但它是最简单的、用于阐释机器学习核心概念的模型。书中通过线性回归解释了上述三要素任务 $ T $给定一组房屋特征面积、房间数等预测房价回归任务。性能度量 $ P $通常使用均方误差MSE。我们期望模型预测的房价与实际房价之间的均方误差越小越好。经验 $ E $一组包含特征和对应真实房价的历史数据这是监督学习。二、数据集1. 分类表格型像Excel一样行是“样本”如一个用户、一件商品列是“特征”如年龄、价格。这是最常见的格式。图像/视频型由大量的图片或视频帧组成通常配有标签例如“这张图里有猫”。文本型由新闻文章、社交媒体帖子、代码等组成。序列型如股票价格随时间变化的序列或传感器传回的实时数据。2. 数据集通常用来做什么训练与验证在人工智能AI领域数据是模型的“燃料”。我们使用训练集让模型学习规律使用验证集调整参数最后用测试集来评判模型的准确率例如用10000张猫狗图片训练出一个能识别猫狗的AI。数据分析企业分析用户消费数据集寻找商业洞察或趋势。基准测试科研界会发布标准数据集如ImageNet让不同算法在同一个“考场”上比较谁的效果更好。3. 特征值和目标值特征值定义特征值是输入变量也就是用来进行预测的依据。通俗理解可以把它看作是**“因”**。比如你要预测房价特征值就是房屋的面积、卧室数量、地理位置、房龄等。格式通常是一个多维度的向量或矩阵x。模型通过学习这些特征来寻找规律。目标值定义目标值是输出变量也就是我们想要预测的结果。通俗理解可以把它看作是果。还是以房价预测为例目标值就是房屋的最终成交价格。格式通常是一个向量y。在有监督学习中它是用来纠正模型预测结果的“标准答案”。举例假设我们有一个经典的数据集——鸢尾花数据集特征值花萼长度、花萼宽度、花瓣长度、花瓣宽度4个数值。目标值花的品种Setosa、Versicolour、Virginica。4. 数据集的划分在机器学习项目中一个完整的数据集通常会被划分为三个子集训练集用来让模型“做练习题”学习规律。测试集完全“封印”起来直到模型最终确定才使用。它是“高考”用来客观评估模型真正的泛化能力面对没见过的新数据表现如何。5. 关键注意事项质量如果输入的是“垃圾数据”输出的结果也会是“垃圾结果”。数据集的清洗、去重、标注准确性至关重要。偏差如果数据集缺乏多样性例如人脸识别数据集里全是白人男性训练出的模型在其他人种或性别上表现就会很差可能导致算法歧视。如果你是在寻找某个特定领域比如医疗影像、自然语言处理的数据集或者想了解如何创建自己的数据集我可以为你提供更具体的指引。6. SK Learn 加载数据集Scikit Learn 数据集接口分为三大类对应三种不同的函数函数类型前缀加载小型数据集load_*下载大型数据集fetch_*生成人工数据集make_*这些函数直接返回Bunch对象具有以下属性fromsklearn.datasetsimportload_irisif__name____main__:# 加载数据集iris_dataload_iris()print(数据集完整描述:,iris_data[DESCR])print(*30)print(形状:,iris_data.data.shape)print(特征名x:,iris_data.feature_names)print(特征数据:,iris_data.data)print(标签名y:,iris_data.target_names)print(标签数据 :,iris_data.target)# 划分数据集x_train,x_test,y_train,y_testtrain_test_split(iris_data.data,iris_data.target,test_size0.2)print(训练集特征值:,x_train.shape,x_train)print(训练集目标值:,y_train.shape,y_train)print(测试集特征值:,x_test.shape,x_test)print(测试集目标值,y_test.shape,y_test)三、容量 过拟合 欠拟合1. 核心概念泛化 vs 记忆机器学习的目的是利用经验 ( E )训练数据来提升在任务 ( T )上的表现。但这里有一个关键问题模型在训练数据上表现好不等于在未见过的数据上表现好。概念含义表现欠拟合模型没有很好地学习到训练数据中的规律训练误差高测试误差也高过拟合模型“死记硬背”了训练数据包括其中的噪声训练误差很低但测试误差很高适当拟合模型学到了数据中的真实规律训练误差和测试误差都较低且接近想象你要拟合一组点。欠拟合就像用一条直线去拟合曲线状的数据过拟合就像用一个极高次的多项式穿过每一个点但剧烈震荡适当拟合则是用一个合适复杂度的曲线抓住数据的整体趋势。2. 决定欠拟合/过拟合的关键容量容量是模型拟合各种函数的能力。容量的表现形式低容量模型只能表达简单的函数关系如线性回归。容易欠拟合。高容量模型能表达复杂的函数关系如深层神经网络。容易过拟合但如果数据足够多也能很好地泛化。如何控制容量表示容量模型理论上能够表达的函数集合例如一个多项式可以设定为最高10次方它就“能表达”10次以内的所有函数。有效容量在实际训练中由于优化算法、数据量、正则化等因素模型“实际学习到”的函数范围。通常有效容量小于表示容量。奥卡姆剃刀原则在能解释数据的前提下选择最简单的模型3. 泛化误差的分解为了精确理解欠拟合和过拟合花书将测试误差分解为三个部分成分含义与容量的关系偏差模型预测的平均值与真实值的差距。反映模型“假设”是否偏离真相容量低 → 偏差高欠拟合方差模型在不同训练集上预测结果的波动程度。反映模型对训练数据的“敏感度”容量高 → 方差高过拟合噪声数据本身的不可约误差如测量误差与模型无关是数据本身的下限偏差-方差权衡这是机器学习中最经典的权衡之一增加容量 →偏差下降模型更灵活能更好地拟合真实规律但方差上升更容易被训练数据的随机波动影响减少容量 →方差下降模型更稳定但偏差上升可能无法捕捉真实规律最优的模型容量是在偏差和方差之间找到平衡点使得总测试误差最小。4. 数据量对过拟合的影响过拟合不仅是模型容量的问题也是数据量的问题。即使模型容量很高只要训练数据足够多过拟合仍然可以避免。当训练数据量增加时模型能够学习到更真实的规律而不是记住噪声。机器学习的一个重要洞察是随着训练数据量趋于无穷任意容量模型的测试误差都会趋近于最优水平前提是容量是有限的或适当正则化。这也是为什么深度学习在“大数据时代”崛起的原因——高容量模型深度网络在数据充足的情况下既能达到低偏差又能通过海量数据平滑方差。5. 正则化控制过拟合的核心工具为了在不牺牲太多容量的前提下控制过拟合花书引入了正则化的概念。正则化是“对学习算法进行修改旨在减少泛化误差而非训练误差”的任何方法。正则化方法核心思想参数范数惩罚如L2正则化/权重衰减在损失函数中加入对模型参数大小的惩罚限制模型的复杂度早停法在验证集误差不再下降时提前停止训练防止模型在训练集上过度优化数据增强通过人为扩充训练数据如旋转、裁剪图像让模型看到更多变体噪声注入在输入或权重中添加噪声提高鲁棒性集成方法训练多个模型并平均它们的预测降低方差正则化可以理解为在容量控制的基础上为模型引入“偏好”——告诉模型在多个能拟合数据的方案中选择“更简单”的那一个。