机器学习系列一:基础概念理解,意义,算法分类、相关专业术语以及算法的应用场景

第一部分 机器学习基础

1、何谓机器学习?

在了解一个新的知识领域的时候,我们往往需要先从认识到该领域的基本概念开始。

何谓机器学习?先说结论:


  • 机器学习(Machine Learning,ML) 是计算机科学的一个分支,旨在通过数据驱动的方法,让计算机系统能够自动从数据中学习规律(模型),并利用这些规律对未知数据进行预测或决策。其核心在于通过算法优化模型的性能,使其具备泛化能力,从而解决实际问题。

这个理解是站在计算机科学的角度,从算法和模型的角度来定义机器学习。

那用一个简单的例子来加以解释:就好比正在处于读书生涯的你,通过在校的学习,掌握了数学、英语、计算机相关等知识,具备了扎实的专业基础,已经具备了一些处理问题的思维方式。【计算机系统从数据中学习规律(模型)】

在毕业以后,你需要将所学到的思维方式运用到工作、科研、工程、管理等工作中。【利用学习到的规律对未知数据进行预测或决策】

在工作中解决你本专业领域内问题的时候,是否能够游刃有余还是拖泥带水,更多地取决于你的知识背景和思维方式。也就是“泛化能力”【通过算法优化模型的性能,使其具备更好的泛化能力】

总的来说,机器学习使用计算机来彰显数据背后的真实含义,把无序的数据转换成有用的信息,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

2、机器学习有何意义?

机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。 “机器学习是对能通过经验自动改进的计算机算法的研究”。

目前,很多企业均开始使用机器学习的相关技术于大部分行业中,以此获得更为强大的洞察力,也为企业的日常生活和企业运营带来了很大的帮助,从而提高了整个产品的服务质量。

机器学习的典型应用领域有:搜索引擎、自动驾驶、量化投资、计算机视觉、信用卡欺诈检测、游戏、数据挖掘、电子商务、图像识别、自然语言处理、医学诊断、证券金融市场分析以及机器人等相关领域。

3、机器学习算法分类

(1). 监督学习(Supervised Learning)

监督学习是指算法在带有“标签”的数据上进行训练,学习输入到输出的映射关系。目标是找到一个函数,使其能对新数据进行准确预测。

特点:

  • 训练数据包含特征(输入)和对应的标签(输出)。
  • 目标是最小化预测值和真实值之间的误差。
  • 常用于分类和回归任务。

常见算法:

算法 说明 示例应用
线性回归(Linear Regression) 适用于连续数值预测,通过找到数据间的线性关系进行预测 房价预测、销售额预测
逻辑回归(Logistic Regression) 适用于二分类问题,使用 sigmoid 函数输出概率值 疾病预测(如糖尿病预测)、垃圾邮件检测
支持向量机(SVM, Support Vector Machine) 通过最大化分类边界(超平面)进行分类 人脸识别、文本分类
决策树(Decision Tree) 通过树状结构进行决策,适用于分类和回归 信贷评分、疾病诊断
随机森林(Random Forest) 由多个决策树组成的集成学习方法,减少过拟合 产品推荐、欺诈检测
神经网络(Neural Networks) 模拟人脑神经元的连接结构,适用于复杂任务 图像分类(如手写数字识别)、语音识别

(2). 无监督学习(Unsupervised Learning)

无监督学习是指数据没有明确的标签,算法需要自行发现数据的结构或模式。

特点

  • 训练数据没有标签,算法通过模式识别学习数据的内在结构。
  • 适用于数据降维、聚类、密度估计等任务。
  • 目标是找出数据的隐藏模式或特征。

常见算法

算法 说明 示例应用
K 均值聚类(K-Means Clustering) 通过迭代划分数据,使数据点在聚类中心周围 客户群体划分、图像分割
层次聚类(Hierarchical Clustering) 通过构建层次结构的方式对数据进行分层聚类 基因序列分析、社交网络分析
高斯混合模型(GMM, Gaussian Mixture Model) 假设数据点来自多个高斯分布,并估计其概率密度 图像分割、异常检测
主成分分析(PCA, Principal Component Analysis) 进行降维处理,保留数据的主要信息 人脸识别、特征降维
自编码器(Autoencoder) 一种神经网络结构,通过压缩和重建数据学习特征 异常检测、图像降噪

(3). 半监督学习(Semi-Supervised Learning)

半监督学习介于监督学习和无监督学习之间,它利用少量有标签数据和大量无标签数据进行训练。

特点

  • 适用于标注成本高但有大量无标签数据的情况。
  • 结合监督和无监督方法,提高模型的泛化能力。

常见算法

算法 说明 示例应用
伪标签方法(Pseudo-Labeling) 先用有标签数据训练模型,再预测无标签数据,并将高置信度预测值作为新标签 图像分类、文本分类
自训练(Self-Training) 通过迭代方式,不断用高置信度样本更新模型 医学影像识别、语音识别
图神经网络(GNN, Graph Neural Network) 适用于图数据的学习,如社交网络、知识图谱 推荐系统、社交网络分析

(4). 强化学习(Reinforcement Learning, RL)

强化学习是一种基于试错和奖励机制的学习方式,智能体(Agent)在环境中采取行动以获得最大化的奖励。

特点

  • 通过“状态-行动-奖励-新状态”的交互方式进行学习。
  • 适用于动态决策问题,如机器人控制、游戏 AI。

常见算法

算法 说明 示例应用
Q 学习(Q-Learning) 通过学习状态-动作值(Q 值)来决策 机器人导航、自动驾驶
深度 Q 网络(DQN, Deep Q-Network) 用神经网络逼近 Q 值,提高在高维环境的学习能力 游戏 AI(如 AlphaGo)
策略梯度(Policy Gradient) 直接优化策略函数,提高策略的表现 股票交易、广告投放
近端策略优化(PPO, Proximal Policy Optimization) 兼顾样本效率和稳定性,常用于强化学习 机器人控制、无人机导航

(5). 生成式学习(Generative Learning)

生成式学习是指算法学习数据的概率分布,并能生成与训练数据相似的新数据。

特点

  • 主要用于图像生成、文本生成等任务。
  • 目标是建模数据的真实分布,并生成新样本。

常见算法

算法 说明 示例应用
生成对抗网络(GAN, Generative Adversarial Network) 通过生成器和判别器对抗训练生成新数据 AI 画图、DeepFake 技术
变分自编码器(VAE, Variational Autoencoder) 通过学习数据分布生成新样本 手写数字生成、图像修复
Transformer(如 GPT) 通过自回归或掩码机制生成文本 ChatGPT、机器翻译

算法分类总结:

类别 主要特点 典型任务 代表算法
监督学习 训练数据有标签 分类、回归 逻辑回归、SVM、决策树、神经网络
无监督学习 训练数据无标签 聚类、降维 K-Means、PCA、自编码器
半监督学习 少量有标签+大量无标签数据 适用于标注成本高的场景 伪标签、自训练、GNN
强化学习 通过试错和奖励学习 游戏 AI、机器人控制 Q-Learning、DQN、PPO
生成式学习 生成与训练数据相似的新数据 文本、图像生成 GAN、VAE、Transformer

4、机器学习算法模型训练过程

机器学习基础训练过程

5、如何根据应用场景选择合适的算法?

在实际应用中,选择最适合问题的机器学习算法通常取决于多个因素,如数据类型、任务目标、计算资源、可解释性等。

机器学习基础-如何选择算法

(1)明确问题类型

首先,确定要解决的问题属于以下哪种类别:

  • 监督学习(Supervised Learning):数据有明确的输入(特征)和对应的输出(标签)。
    • 分类(Classification):目标变量是离散的类别,如垃圾邮件检测(是否是垃圾邮件)、图像识别(狗/猫)。
    • 回归(Regression):目标变量是连续的数值,如房价预测、股票价格预测。
  • 无监督学习(Unsupervised Learning):数据没有明确的标签,目的是发现数据中的模式。
    • 聚类(Clustering):如用户分群、市场细分。
    • 降维(Dimensionality Reduction):如PCA用于降维可视化或加速计算。
  • 强化学习(Reinforcement Learning):基于环境反馈优化策略,如机器人学习、游戏AI。

(2)选择合适的算法

根据数据的特点和目标任务,选择合适的算法:

分类任务(Classification)

如果你的目标是将输入数据分类到不同的类别(如猫狗分类、垃圾邮件检测等),可以考虑:

  • 逻辑回归(Logistic Regression):适用于简单的二分类问题,易解释。
  • K 近邻(K-Nearest Neighbors, KNN):适用于小数据集,但计算成本高。
  • 决策树(Decision Tree):适用于解释性强的分类任务。
  • 随机森林(Random Forest):比决策树更强大,能够处理高维数据,防止过拟合。
  • 支持向量机(SVM):适用于高维数据,尤其是小样本集,适合二分类任务。
  • 神经网络(Neural Networks):适用于深度学习任务,如图像分类(CNN)、文本分类(RNN、Transformer)。

🔹 如何选择?

  • 数据量小?→ KNN、决策树、SVM
  • 数据维度高?→ SVM、随机森林、神经网络
  • 需要可解释性?→ 决策树、逻辑回归
  • 复杂任务(如图像、NLP)?→ 深度学习

回归任务(Regression)

如果你的目标是预测一个连续数值(如房价、销售额),可以考虑:

  • 线性回归(Linear Regression):适用于简单线性关系的数据。
  • 多项式回归(Polynomial Regression):适用于非线性关系的数据。
  • 决策树回归(Decision Tree Regression):适用于非线性回归任务。
  • 随机森林回归(Random Forest Regression):更强大的集成方法,可减少过拟合。
  • 支持向量回归(SVR):适用于小数据集的回归问题。
  • 神经网络(Neural Networks):适用于复杂的回归任务,如时间序列预测。

🔹 如何选择?

  • 数据量小,线性关系?→ 线性回归
  • 复杂非线性关系?→ 随机森林、神经网络
  • 小数据集,但复杂?→ SVR

聚类任务(Clustering)

如果你需要发现数据中的隐藏模式,而没有标签,可以考虑:

  • K 均值(K-Means):适用于清晰的、球状分布的簇。
  • 层次聚类(Hierarchical Clustering):适用于层级结构的数据。
  • DBSCAN:适用于任意形状的聚类,并能检测异常值。
  • 高斯混合模型(GMM):适用于数据分布符合高斯分布的情况。

🔹 如何选择?

  • 事先知道簇的数量?→ K-Means
  • 需要层级结构?→ 层次聚类
  • 数据分布复杂?→ GMM、DBSCAN

维度降维(Dimensionality Reduction)

如果你的数据维度过高,可以考虑降维方法:

  • PCA(主成分分析):用于减少特征数量,同时保持最大的信息量。
  • t-SNE:用于数据可视化,适用于高维数据。
  • LDA(线性判别分析):适用于有类别标签的数据降维。

🔹 如何选择?

  • 需要降维但保留信息量?→ PCA
  • 需要数据可视化?→ t-SNE
  • 分类任务的降维?→ LDA

强化学习(Reinforcement Learning)

如果你的任务需要基于环境反馈不断优化决策(如游戏AI、自动驾驶),可以考虑:

  • Q-learning:简单的值迭代方法,适用于低维环境。
  • 深度Q网络(DQN):用于复杂环境的深度学习强化方法。
  • 策略梯度方法(Policy Gradient):适用于连续决策问题,如机器人控制。

🔹 如何选择?

  • 低维离散动作空间?→ Q-learning
  • 复杂任务,如游戏AI?→ DQN
  • 机器人或自动驾驶?→ 策略梯度方法

其他影响选择的因素

除了任务本身,还有一些实际因素会影响算法的选择:

因素 影响选择
数据量大小 大数据→ 深度学习、小数据 → 逻辑回归、KNN
计算资源 低资源→ 逻辑回归、KNN,高资源→ 深度学习
可解释性 高可解释性→ 决策树、逻辑回归,低可解释性→ 神经网络
训练时间 快速→ 逻辑回归、KNN,慢速→ 深度学习
数据特性 线性关系→ 线性模型,非线性→ 树模型、神经网络

算法选择总结

  1. 分类任务 → 逻辑回归、SVM、决策树、随机森林、神经网络
  2. 回归任务 → 线性回归、SVR、随机森林回归、神经网络
  3. 聚类任务 → K-Means、DBSCAN、GMM
  4. 降维任务 → PCA、t-SNE、LDA
  5. 强化学习 → Q-learning、DQN、策略梯度

6、机器学习模型开发流程

  1. 收集数据: 收集样本数据
  2. 准备数据: 注意数据的格式
  3. 分析数据: 为了确保数据集中没有垃圾数据;
    • 如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤;
    • 另外该步骤需要人工干预,会降低自动化系统的价值。
  4. 训练算法: [机器学习算法核心]如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤
  5. 测试算法: [机器学习算法核心]评估算法效果
  6. 使用算法: 将机器学习算法转为应用程序

7、机器学习工具

Python语言

  1. 可执行伪代码
  2. Python比较流行: 使用广泛、代码范例多、丰富模块库,开发周期短
  3. Python语言的特色: 清晰简练、易于理解
  4. Python语言的缺点: 唯一不足的是性能问题
  5. Python相关的库
    • 机器学习库: TensorFlowKerasPyTorch、、、
    • 科学函数库: SciPyNumPy(底层语言: C和Fortran)
    • 绘图工具库: Matplotlib
    • 数据挖掘库: Scikit-learn
    • 自然语言处理库: NLTK
    • 数据可视化库: Pandas

8、机器学习相关的专业术语

基本术语:

  • 模型(model): 机器学习的核心,它是用来做预测或决策的“数学公式”或“程序”,通过学习数据得到的。可以理解为一个聪明的工具,能帮助计算机解决特定问题,比如判断一封邮件是否是垃圾邮件。

  • 学习算法(learning algorithm): 让计算机自动从数据中总结规律、训练模型的方法。就像一个老师教学生如何解题,算法决定了“学习”方式。

  • 数据集(data set): 机器学习所用的数据的集合,类似于考试题库,包含了许多用于学习或测试的样本。

  • 示例(instance): 具体的一个数据记录,代表一个对象。例如,在一个学生数据集中,每个学生的信息(年龄、成绩、身高等)就是一个示例。

  • 样本(sample): 另一种对示例的称呼,通常指训练或测试时使用的数据点。

  • 属性(attribute): 反映示例的某个特征,比如学生的年龄、性别、身高等。

  • 特征(feature): 和属性是同义词,表示用于机器学习的输入变量,影响模型的决策能力。例如,人脸识别中的眼睛大小、鼻子形状等。

  • 属性值(attribute value): 某个属性的具体数值,例如“年龄”这个属性可能取值 18、22、25 等。

  • 属性空间(attribute space): 所有属性组合成的空间,可以看作是“所有可能的数据点的集合”。

  • 样本空间/输入空间(sample space): 和属性空间类似,表示所有可能的数据点所在的范围。

  • 特征向量(feature vector): 用数学向量(列表)表示一个示例的所有特征。例如,一个人的信息可以表示为 (20岁, 1.75米, 70公斤)。

  • 维数(dimensionality): 特征的个数,例如如果一个样本有 10 个属性,则它的维数就是 10。

  • 学习(learning)/训练(training): 让机器学习模型从数据中找到规律的过程,类似于学生复习考试题。

  • 训练数据(training data): 用于训练机器学习模型的数据,类似于学生做的练习题。

  • 训练样本(training sample): 训练数据中的单个样本,类似于单道练习题。

  • 训练集(training set): 训练数据的集合,包含多个训练样本。

  • 假设(hypothesis): 机器学习模型对数据潜在规律的猜测,可能是对的,也可能是错的。

  • 真相(ground-truth): 现实世界中真实存在的规律,模型要努力去接近它。

  • 学习器(learner): 运行学习算法并生成模型的系统,类似于“学生”学习知识的过程。

  • 预测(prediction): 机器学习模型对未知数据进行的判断,例如预测天气、预测房价等。

  • 标记(label): 一个示例的正确答案,例如一封邮件的标记可能是“垃圾邮件”或“正常邮件”。

  • 样例(example): 具有正确答案(标记)的示例数据,常用于监督学习。

  • 标记空间/输出空间(label space): 所有可能的标记集合,例如垃圾邮件分类问题的标记空间是 {垃圾邮件, 正常邮件}。

  • 分类(classification): 预测离散类别的任务,例如区分“猫”和“狗”的模型。

  • 回归(regression): 预测连续数值的任务,例如预测房价或温度。

  • 二分类(binary classification): 只有两个类别的分类任务,如“病人是否患病(是/否)”。

  • 正类(positive class): 在二分类问题中,被关注的类别,如“患病”通常是正类。

  • 反类(negative class): 在二分类问题中,另一个类别,如“未患病”通常是反类。

  • 多分类(multi-class classification): 预测多个类别的分类任务,例如识别数字 0-9。

  • 测试(testing): 在训练好的模型上进行评估,看它的预测能力如何。

  • 测试样本(testing sample): 用于测试模型的数据样本。

  • 聚类(clustering): 把数据自动分组的过程,例如把人群按消费习惯分成不同类型。

  • 簇(cluster): 聚类结果中的每一组,例如按兴趣把用户分成“科技爱好者”、“体育迷”等。

  • 监督学习(supervised learning): 训练数据带有正确答案,类似于老师教学生做题。

  • 无监督学习(unsupervised learning): 训练数据没有正确答案,模型需要自己找出数据模式,例如自动分类用户群体。

  • 未见示例(unseen instance): 模型训练时没有见过的新数据。

  • 泛化(generalization)能力: 训练好的模型在新数据上仍然表现良好的能力。

  • 分布(distribution): 数据的统计特性,例如数据的均值、方差等。

  • 独立同分布(independent and identically distributed, i.i.d.): 训练数据是相互独立并且来自相同的分布,类似于从一个大池子里随机抽取数据。

  • 目标函数(objective function): 机器学习模型试图最小化或最大化的数学表达式,例如损失函数或奖励函数。

  • 损失函数(loss function): 衡量模型预测值与真实值之间误差的函数,常见的有均方误差(MSE)、交叉熵损失等。

  • 代价函数(cost function): 损失函数的另一种叫法,通常是多个样本损失的平均值,用于衡量整体模型的表现。

  • 优化(optimization): 通过调整模型参数来使损失函数达到最小值的过程。

  • 梯度(gradient): 目标函数对参数的偏导数,表示在参数空间中损失函数上升最快的方向。

  • 梯度下降(gradient descent): 通过沿着梯度的反方向调整参数,使损失函数最小化的优化算法。

  • 学习率(learning rate): 控制梯度下降更新步长的超参数,学习率过大可能跳过最优解,过小可能收敛太慢。

模型泛化

  • 过拟合(overfitting): 模型在训练数据上表现很好,但在新数据上效果差,说明模型学习了训练数据的噪声。

  • 欠拟合(underfitting): 模型过于简单,无法捕捉数据的复杂模式,导致训练和测试数据上的表现都很差。

  • 正则化(regularization): 通过增加约束来防止过拟合的技术,常见的有 L1 和 L2 正则化。

  • L1 正则化(Lasso Regression): 通过增加参数绝对值的惩罚项来减少不重要的特征,使权重稀疏。

  • L2 正则化(Ridge Regression): 通过增加参数平方值的惩罚项来防止参数过大,提高模型的稳定性。

梯度下降变种:

  • 批量梯度下降(Batch Gradient Descent, BGD): 使用整个训练集计算梯度,更新参数,收敛稳定但计算量大。

  • 随机梯度下降(Stochastic Gradient Descent, SGD): 每次只使用一个样本计算梯度,更新参数,计算快但收敛不稳定。

  • 小批量梯度下降(Mini-batch Gradient Descent): 介于 BGD 和 SGD 之间,每次使用一个小批量数据计算梯度,兼顾效率与稳定性。

神经网络相关:

  • 权重(weight): 神经网络中的参数,决定输入对输出的影响程度。

  • 偏置(bias): 一个额外的参数,帮助神经网络学习数据中的偏移量。

  • 激活函数(activation function): 给神经元加上非线性变换,使模型能够学习复杂模式,如 ReLU、Sigmoid、Tanh。

  • 隐层(hidden layer): 神经网络中介于输入层和输出层之间的层,负责提取数据的深层特征。

  • 深度学习(deep learning): 由多层神经网络构成的学习方法,擅长处理图像、语音、自然语言等复杂任务。

深度学习架构:

  • 卷积神经网络(Convolutional Neural Network, CNN): 适用于图像处理的神经网络,利用卷积操作提取特征。

  • 循环神经网络(Recurrent Neural Network, RNN): 适用于序列数据的神经网络,能够捕捉时间依赖关系。

  • 长短时记忆网络(Long Short-Term Memory, LSTM): 一种改进的 RNN,能够更好地处理长期依赖问题。

  • 注意力机制(Attention Mechanism): 让模型在处理序列数据时关注重要信息,提高翻译、语音识别等任务的效果。

  • Transformer: 一种基于注意力机制的深度学习模型,替代 RNN,在 NLP 任务中表现优异,如 BERT、GPT。

  • 批量归一化(Batch Normalization): 通过标准化每个 mini-batch 的数据来加速训练并提高稳定性。

  • 自编码器(Autoencoder): 一种无监督学习模型,用于数据降维、去噪或生成新数据。

  • 生成对抗网络(Generative Adversarial Network, GAN): 由生成器和判别器组成的深度学习模型,擅长图像生成。

统计与概率:

  • 贝叶斯定理(Bayes’ Theorem): 计算某个事件发生的条件概率的公式,常用于贝叶斯分类器。

  • 马尔可夫假设(Markov Assumption): 认为某个状态的概率仅依赖于它的前一个状态,而不依赖更早的状态。

  • 隐马尔可夫模型(Hidden Markov Model, HMM): 用于建模序列数据的概率模型,应用于语音识别、自然语言处理等。

实验与数据处理:

  • A/B 测试(A/B Testing): 用于比较两个不同方案的效果,常用于产品优化和广告测试。

  • 特征工程(Feature Engineering): 通过数据转换、选择、组合等方式提高模型性能。

  • 数据清洗(Data Cleaning): 处理缺失值、异常值等,以保证数据质量。

  • 数据增强(Data Augmentation): 通过数据变换(如旋转、裁剪)生成更多训练样本,提高模型泛化能力。

  • 数据归一化(Normalization): 将数据缩放到 [0,1] 或 [-1,1] 之间,防止不同量纲影响模型训练。

  • 数据标准化(Standardization): 将数据转换为均值为 0、标准差为 1 的分布,以提高梯度下降的稳定性。

决策树与评估指标:

  • 熵(Entropy): 衡量数据纯度的不确定性指标,熵越小数据越纯。

  • 信息增益(Information Gain): 通过划分数据减少熵的程度,用于选择决策树的最佳分裂点。

  • Gini 系数(Gini Index): 衡量数据不纯度的指标,常用于决策树分类。

  • AUC-ROC 曲线(Area Under Curve - Receiver Operating Characteristic): 衡量二分类模型性能的指标,曲线下面积越大,模型性能越好。

  • 精确率(Precision): 预测为正类的样本中实际为正类的比例。

  • 召回率(Recall): 实际为正类的样本中被正确预测为正类的比例。

  • F1 分数(F1-score): 精确率和召回率的调和平均值,用于综合评估模型性能。

模型评估与迁移

  • 交叉验证(Cross Validation): 将数据分成多个子集进行多轮训练和测试,以提高模型的稳定性。

  • K 折交叉验证(K-Fold Cross Validation): 交叉验证的一种,每次用 K-1 份训练,1 份测试,循环 K 次。

  • 留一交叉验证(Leave-One-Out Cross Validation, LOOCV): K=样本数的极端情况,每次用一个样本测试,其余样本训练。

  • 迁移学习(Transfer Learning): 利用在一个任务中训练好的模型,迁移到另一个相似任务。

  • 联邦学习(Federated Learning): 分布式机器学习方法,在多个设备上训练模型,而无需共享数据。

强化学习:

  • 强化学习(Reinforcement Learning): 通过奖励和惩罚让智能体学习最佳策略。

  • Q-Learning: 经典的无模型强化学习算法。

  • 策略梯度(Policy Gradient): 通过优化策略函数直接学习最佳策略。

  • Actor-Critic: 结合策略梯度和 Q-learning 的强化学习算法。

  • 遗传算法(Genetic Algorithm, GA): 模拟生物进化过程进行优化。

  • 贝叶斯优化(Bayesian Optimization): 用于优化复杂函数的黑盒优化方法。

  • AutoML(自动化机器学习): 让机器自动完成模型选择、超参数调优等任务。

  • Explainable AI(可解释性 AI): 让 AI 预测结果更具可解释性和透明性。

9、机器学习基础补充

数据集的划分

  • 训练集(Training set) —— 学习样本数据集,通过匹配一些参数来建立一个模型,主要用来训练模型。类比考研前做的解题大全。

  • 验证集(validation set) —— 对学习出来的模型,调整模型的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。类比 考研之前做的模拟考试。

  • 测试集(Test set) —— 测试训练好的模型的分辨能力。类比 考研。这次真的是一考定终身。

模型拟合程度

  • 欠拟合(Underfitting): 模型没有很好地捕捉到数据特征,不能够很好地拟合数据,对训练样本的一般性质尚未学好。类比,光看书不做题觉得自己什么都会了,上了考场才知道自己啥都不会。

  • 过拟合(Overfitting): 模型把训练样本学习“太好了”,可能把一些训练样本自身的特性当做了所有潜在样本都有的一般性质,导致泛化能力下降。类比,做课后题全都做对了,超纲题也都认为是考试必考题目,上了考场还是啥都不会。

通俗来说,欠拟合和过拟合都可以用一句话来说,欠拟合就是: “你太天真了!”,过拟合就是: “你想太多了!”。

常见的模型指标

  • 正确率 —— 提取出的正确信息条数 / 提取出的信息条数

  • 召回率 —— 提取出的正确信息条数 / 样本中的信息条数

  • F 值 —— 正确率 * 召回率 * 2 / (正确率 + 召回率)(F值即为正确率和召回率的调和平均值)

举个例子如下:

某池塘有 1400 条鲤鱼,300 只虾,300 只乌龟。现在以捕鲤鱼为目的。撒了一张网,逮住了 700 条鲤鱼,200 只
虾, 100 只乌龟。那么这些指标分别如下:

正确率 = 700 / (700 + 200 + 100) = 70%

召回率 = 700 / 1400 = 50%

F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3%