【深度学习-Day 9】机器学习核心概念入门:监督、无监督与强化学习全解析
Langchain系列文章目录
01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
07-【深度解析】从GPT-1到GPT-4:ChatGPT背后的核心原理全揭秘
08-【万字长文】MCP深度解析:打通AI与世界的“USB-C”,模型上下文协议原理、实践与未来
Python系列文章目录
PyTorch系列文章目录
机器学习系列文章目录
深度学习系列文章目录
Java系列文章目录
JavaScript系列文章目录
深度学习系列文章目录
01-【深度学习-Day 1】为什么深度学习是未来?一探究竟AI、ML、DL关系与应用
02-【深度学习-Day 2】图解线性代数:从标量到张量,理解深度学习的数据表示与运算
03-【深度学习-Day 3】搞懂微积分关键:导数、偏导数、链式法则与梯度详解
04-【深度学习-Day 4】掌握深度学习的“概率”视角:基础概念与应用解析
05-【深度学习-Day 5】Python 快速入门:深度学习的“瑞士军刀”实战指南
06-【深度学习-Day 6】掌握 NumPy:ndarray 创建、索引、运算与性能优化指南
07-【深度学习-Day 7】精通Pandas:从Series、DataFrame入门到数据清洗实战
08-【深度学习-Day 8】让数据说话:Python 可视化双雄 Matplotlib 与 Seaborn 教程
09-【深度学习-Day 9】机器学习核心概念入门:监督、无监督与强化学习全解析
文章目录
- Langchain系列文章目录
- Python系列文章目录
- PyTorch系列文章目录
- 机器学习系列文章目录
- 深度学习系列文章目录
- Java系列文章目录
- JavaScript系列文章目录
- 深度学习系列文章目录
- 前言
- 一、机器学习概览
- 1.1 什么是机器学习?
- 1.1.1 从数据中学习
- 1.1.2 机器学习的定义
- 1.1.3 机器学习与人工智能、深度学习的关系
- 二、机器学习的主要类型
- 2.1 监督学习 (Supervised Learning)
- 2.1.1 核心思想:从“有标签”数据中学习
- 2.1.2 常见任务
- (1)分类 (Classification)
- (2)回归 (Regression)
- 2.1.3 关键要素:特征与标签
- 2.2 无监督学习 (Unsupervised Learning)
- 2.2.1 核心思想:从“无标签”数据中发现结构
- 2.2.2 常见任务
- (1)聚类 (Clustering)
- (2)降维 (Dimensionality Reduction)
- (3)关联规则挖掘 (Association Rule Mining)
- 2.3 强化学习 (Reinforcement Learning)
- 2.3.1 核心思想:通过“试错”与“奖励”学习
- 2.3.2 常见应用
- 2.3.3 与监督/无监督学习的区别
- 2.4 三种学习类型的比较
- 三、机器学习中的基本元素:特征与标签
- 3.1 什么是特征? (What are Features?)
- 3.1.1 定义与重要性
- 3.1.2 特征的类型
- (1)数值型特征 (Numerical Features)
- (2)类别型特征 (Categorical Features)
- 3.1.3 特征工程简介
- 3.2 什么是标签? (What are Labels?)
- 3.2.1 定义与作用
- 3.2.2 标签的类型
- 3.2.3 无标签数据
- 四、机器学习的数据集
- 4.1 数据的重要性
- 4.2 数据集的组成
- 4.3 数据集的划分:训练、验证与测试
- 4.3.1 为什么需要划分数据集?
- 4.3.2 训练集 (Training Set)
- 4.3.3 验证集 (Validation Set)
- 4.3.4 测试集 (Test Set)
- 4.3.5 划分策略与常见问题
- (1)随机划分 (Random Splitting)
- (2)分层划分 (Stratified Splitting)
- (3)时间序列数据划分 (Time Series Data Splitting)
- (4)常见陷阱:数据泄露 (Data Leakage)
- 五、总结
前言
欢迎来到深度学习系列的第九天!在正式踏入神经网络和深度学习的奇妙世界之前,我们必须先打下坚实的机器学习基础。机器学习(Machine Learning, ML)是人工智能的核心,也是深度学习的基石。理解机器学习的基本概念、主要类型以及数据处理方式,对于后续学习复杂的深度学习模型至关重要。
本文将系统地介绍机器学习的核心概念,包括它是什么、主要的学习范式(监督学习、无监督学习、强化学习)、数据中的基本元素(特征与标签),以及至关重要的数据集划分策略(训练集、验证集、测试集)。无论您是编程新手还是有一定经验的开发者,本文都将力求以专业精准且通俗易懂的方式,为您揭开机器学习的神秘面纱。
一、机器学习概览
在深入探讨各种机器学习算法之前,我们首先需要理解机器学习的本质及其在人工智能领域中的位置。
1.1 什么是机器学习?
机器学习,顾名思义,就是让机器具备学习的能力。但这里的“学习”与人类的学习既有相似之处,也有其独特性。
1.1.1 从数据中学习
机器学习的核心思想是让计算机系统能够从数据中自动分析并获得规律,然后利用这些规律对未知数据进行预测或决策,而无需针对每个特定任务进行显式编程。
- 类比:想象一下教小孩子识别猫。你不会告诉他猫的严格定义(例如,四条腿、有胡须、会喵喵叫的哺乳动物),而是会给他看很多猫的图片(数据)。通过观察这些图片,孩子会逐渐“学习”到猫的特征,最终能够识别出以前没见过的猫。机器学习的过程与此类似。
- 重要性:在许多复杂的问题中,例如人脸识别、自然语言理解等,我们很难甚至不可能编写出能够完美覆盖所有情况的显式规则。机器学习通过从数据中自动提取模式,为解决这些问题提供了强大的工具。
1.1.2 机器学习的定义
关于机器学习,有几个经典的定义:
- Arthur Samuel (1959):机器学习是“在不直接针对问题进行编程的情况下,赋予计算机学习能力的研究领域”。这是早期对机器学习较为宽泛的定义,强调了其“隐式学习”的特性。
- Tom Mitchell (1997):一个更形式化的定义是:“对于某类任务 T T T 和性能度量 P P P,如果一个计算机程序在 T T T 上以 P P P衡量的性能随着经验 E E E 而自我改进,那么我们称这个程序在从经验 E E E 中学习。”
- 任务 (Task, T T T):程序需要执行的具体工作,如分类、回归、聚类等。
- 经验 (Experience, E E E):通常指提供给程序的数据集。
- 性能度量 (Performance Measure, P P P):评估程序在任务 T T T 上表现好坏的指标,如准确率、错误率等。
简单来说,机器学习就是让计算机通过分析大量数据来“学习”如何完成特定任务,并在这个过程中不断提升其表现。
1.1.3 机器学习与人工智能、深度学习的关系
为了更好地理解机器学习,我们需要将其置于更广阔的领域中看待。
- 人工智能 (Artificial Intelligence, AI):是一个广泛的领域,旨在创造能够执行通常需要人类智能的任务的机器。这包括学习、推理、问题解决、感知、语言理解等。
- 机器学习 (Machine Learning, ML):是实现人工智能的一种方法,专注于开发能够从数据中学习的算法。它是AI的一个重要子领域。
- 深度学习 (Deep Learning, DL):是机器学习的一个分支,它使用一种称为人工神经网络(特别是深度神经网络)的特定类型的算法,从大量数据中学习复杂的模式。
可以理解为,人工智能是一个宏大的目标,机器学习是实现这个目标的一条重要途径,而深度学习则是机器学习领域中当前非常强大和流行的一套技术和方法。
二、机器学习的主要类型
机器学习算法种类繁多,但根据学习方式和数据类型的不同,可以主要划分为三大类:监督学习、无监督学习和强化学习。
2.1 监督学习 (Supervised Learning)
监督学习是目前应用最广泛、发展最成熟的机器学习类型。
2.1.1 核心思想:从“有标签”数据中学习
在监督学习中,我们提供给算法的数据集是“有标签”的(Labeled Data)。这意味着每条数据样本都包含两部分:输入特征(Input Features)和期望的输出标签(Output Label)或目标变量(Target Variable)。算法的目标是学习从输入特征到输出标签的映射关系。
- 类比:就像学生在老师的指导下学习。老师提供问题(输入特征)和正确答案(标签),学生通过学习这些问答对,掌握解题规律,以便将来能独立解答类似的问题。
2.1.2 常见任务
监督学习主要用于解决两类问题:分类和回归。
(1)分类 (Classification)
- 定义:当目标标签是离散的、预定义的类别时,这类任务称为分类。模型的目标是预测输入数据属于哪个类别。
- 示例:
- 垃圾邮件检测:判断一封邮件是“垃圾邮件”还是“非垃圾邮件”。
- 图像识别:识别一张图片中的物体是“猫”、“狗”还是“汽车”。
- 疾病诊断:根据病人的症状和检查结果判断其是否患有某种“疾病”或“无疾病”。
(2)回归 (Regression)
- 定义:当目标标签是连续的数值时,这类任务称为回归。模型的目标是预测一个具体的数值。
- 示例:
- 房价预测:根据房屋的面积、位置、房龄等特征预测其“价格”。
- 股票价格预测:根据历史股价、市场指数等信息预测未来某一时刻的“股票价格”。
- 气温预测:根据日期、地理位置、历史气象数据预测明天的“最高气温”。
2.1.3 关键要素:特征与标签
在监督学习中,我们始终围绕特征 (Features)(输入)和标签 (Labels)(期望输出)进行建模。我们将在第三部分详细讨论这两个概念。
2.2 无监督学习 (Unsupervised Learning)
与监督学习不同,无监督学习处理的是“无标签”数据。
2.2.1 核心思想:从“无标签”数据中发现结构
在无监督学习中,提供给算法的数据集只包含输入特征,没有预先定义的输出标签。算法的目标是直接从数据中学习其固有的结构、模式或关系,而不需要外部的“监督”信号。
- 类比:想象一位侦探面对一堆杂乱无章的线索(无标签数据),他需要自行分析这些线索,找出它们之间的联系,将相关的线索归类,或者发现隐藏的规律。
2.2.2 常见任务
无监督学习的常见任务包括聚类、降维和关联规则挖掘。
(1)聚类 (Clustering)
- 定义:将数据点根据其相似性划分为若干个组或簇(Cluster),使得同一簇内的数据点彼此相似,而不同簇之间的数据点差异较大。
- 示例:
- 客户细分:根据用户的购买行为、浏览历史等将客户划分为不同的群体,以便进行精准营销。
- 图像分割:将图像中具有相似颜色或纹理的像素区域分组。
- 异常检测:识别出与大部分数据点显著不同的孤立点,这些点可能是异常或欺诈行为。
- 可视化概念:
(2)降维 (Dimensionality Reduction)
- 定义:在保留数据中重要信息的前提下,减少数据的特征数量(即维度)。
- 示例:
- 主成分分析 (PCA):一种常用的线性降维方法,找到数据中方差最大的方向作为新的特征。
- t-分布随机邻域嵌入 (t-SNE):一种非线性降维方法,常用于高维数据的可视化。
- 益处:
- 减少存储空间和计算复杂度。
- 去除噪声和冗余特征。
- 便于数据可视化(例如,将高维数据降至2维或3维进行展示)。
(3)关联规则挖掘 (Association Rule Mining)
- 定义:发现数据集中不同项目之间有趣的关联或相关性。
- 示例:
- 购物篮分析:例如,发现“购买了面包的顾客中有70%也购买了牛奶”这样的规则,商家可以据此调整商品摆放或制定促销策略。
2.3 强化学习 (Reinforcement Learning)
强化学习是一种与监督学习和无监督学习都不同的学习范式,它更关注智能体(Agent)如何在与环境(Environment)的交互中学习以达成某个目标。
2.3.1 核心思想:通过“试错”与“奖励”学习
在强化学习中,智能体观察环境的状态(State),执行某个动作(Action),然后环境会反馈给智能体一个奖励(Reward)或惩罚(Punishment),并转移到新的状态。智能体的目标是学习一个策略(Policy),即在什么状态下应该采取什么动作,以最大化其在一段时间内获得的累积奖励。
- 核心要素:
- 智能体 (Agent):学习者和决策者。
- 环境 (Environment):智能体交互的外部世界。
- 状态 (State, S S S):对环境当前情况的描述。
- 动作 (Action, A A A):智能体可以执行的操作。
- 奖励 (Reward, R R R):环境对智能体在特定状态下执行特定动作后反馈的标量值,用于评价动作的好坏。
- 类比:训练宠物。当宠物做出你期望的行为(例如,坐下),你给它食物(正奖励);当它做出不期望的行为,你可能会忽略它或发出制止口令(负奖励或无奖励)。通过反复试错,宠物会学会哪些行为能带来奖励。
2.3.2 常见应用
- 游戏:训练AI玩各种复杂的游戏,如围棋(AlphaGo)、Dota 2(OpenAI Five)。
- 机器人控制:让机器人学会在复杂环境中行走、抓取物体等。
- 资源管理:例如,优化数据中心的能源消耗。
- 推荐系统:根据用户的长期反馈动态调整推荐策略。
2.3.3 与监督/无监督学习的区别
- 反馈机制:监督学习有明确的标签(正确答案),而强化学习只有奖励信号,奖励可能是延迟的,智能体需要自己探索哪些行为能带来高奖励。
- 数据来源:监督和无监督学习通常使用固定的数据集,而强化学习的智能体通过与环境交互动态地产生数据。
- 目标:监督学习关注预测的准确性,无监督学习关注发现数据结构,强化学习关注学习最优的行为策略。
2.4 三种学习类型的比较
为了更清晰地理解这三者的区别,我们可以通过一个表格进行总结:
特性 | 监督学习 (Supervised Learning) | 无监督学习 (Unsupervised Learning) | 强化学习 (Reinforcement Learning) |
---|---|---|---|
输入数据 | 带标签的数据 (特征 + 标签) | 无标签的数据 (仅特征) | 状态、环境反馈 (通过与环境交互产生) |
目标 | 学习从输入到输出的映射,进行预测或分类 | 发现数据中的内在结构、模式或关系 | 学习最优策略,以最大化累积奖励 |
核心思想 | 从“老师”提供的正确答案中学习 | 从数据自身中发现规律 | 通过“试错”与环境交互学习 |
常见任务 | 分类 (如:邮件过滤)、回归 (如:房价预测) | 聚类 (如:客户分群)、降维 (如:数据压缩) | 游戏AI、机器人控制、资源调度 |
反馈信号 | 明确的标签 (Ground Truth) | 无直接反馈信号 | 奖励/惩罚信号 (Reward Signal) |
典型算法 | 线性回归、逻辑回归、支持向量机 (SVM)、决策树、K近邻 (KNN) | K-均值聚类 (K-Means)、主成分分析 (PCA)、Apriori | Q-Learning、SARSA、深度Q网络 (DQN)、策略梯度 (Policy Gradients) |
三、机器学习中的基本元素:特征与标签
在机器学习,特别是监督学习中,“特征”和“标签”是两个最核心的概念。
3.1 什么是特征? (What are Features?)
3.1.1 定义与重要性
特征 (Features),也称为属性 (Attributes) 或输入变量 (Input Variables),是用来描述数据样本的可测量或可观察的特性。它们是机器学习模型进行学习和预测的基础。
- 重要性:特征的质量直接决定了模型的性能上限。“Garbage in, garbage out”(垃圾进,垃圾出)这句俗语在机器学习领域同样适用。选择和构建好的特征是机器学习项目中至关重要的一步。
- 示例:
- 在房价预测任务中,特征可能包括:房屋面积(平方米)、卧室数量、卫生间数量、房龄(年)、所在地区邮编等。
- 在垃圾邮件检测任务中,特征可能包括:邮件中特定词语(如“免费”、“中奖”)出现的频率、发件人地址、邮件长度等。
- 在图像识别任务中,原始特征可能是图像的像素值。
3.1.2 特征的类型
特征可以大致分为两类:数值型特征和类别型特征。
(1)数值型特征 (Numerical Features)
数值型特征表示的是可以用数字度量的量。
- 连续型特征 (Continuous Features):可以在一定范围内取任意值的特征。例如:身高(175.5 cm)、体重(60.2 kg)、温度(25.8 ℃)、房屋价格(120.5 万元)。
- 离散型特征 (Discrete Features):只能取有限个或可数个整数值的特征。例如:卧室数量(1, 2, 3…)、家庭成员数量、一篇文章中的词语数量。
(2)类别型特征 (Categorical Features)
类别型特征表示的是将样本划分到几个互斥类别中的一种。
- 标称型特征 (Nominal Features):类别之间没有内在顺序或等级关系。例如:颜色(红、绿、蓝)、性别(男、女)、城市(北京、上海、伦敦)。
- 序数型特征 (Ordinal Features):类别之间存在明确的顺序或等级关系。例如:教育程度(小学、中学、大学、硕士、博士)、产品评价(差、中、好、优秀)、服装尺码(S, M, L, XL)。
3.1.3 特征工程简介
选择、转换、提取和创建特征的过程称为特征工程 (Feature Engineering)。这是一个高度依赖领域知识和经验的过程,往往对模型性能有巨大影响。常见的特征工程技术包括:
- 特征选择 (Feature Selection):从原始特征集中挑选出最相关、最有用的子集。
- 特征提取 (Feature Extraction):通过组合或转换现有特征来创建新的、信息更密集的特征(如PCA)。
- 特征创建 (Feature Creation):根据领域知识或数据分析,手动构建新的特征。
(注:特征工程是一个复杂且重要的主题,我们将在后续文章中更详细地探讨。)
3.2 什么是标签? (What are Labels?)
3.2.1 定义与作用
标签 (Labels),也称为目标变量 (Target Variable)、输出变量 (Output Variable) 或响应变量 (Response Variable),是我们希望机器学习模型预测的结果或值。
- 作用:在监督学习中,标签是模型学习的“答案”或“目标”。模型通过比较其预测输出与真实标签之间的差异(即损失),来调整其内部参数,从而学习如何做出更准确的预测。
3.2.2 标签的类型
标签的类型通常与监督学习的任务类型相对应:
- 分类任务中的标签:是离散的类别值。例如,在手写数字识别中,标签可能是数字0到9中的一个。在情感分析中,标签可能是“积极”、“消极”或“中性”。
- 回归任务中的标签:是连续的数值。例如,在预测股票价格时,标签是具体的股价,如 150.25 150.25 150.25 美元。在预测病人住院天数时,标签是具体的天数,如 7.5 7.5 7.5 天。
3.2.3 无标签数据
需要再次强调的是,在无监督学习中,数据是没有预定义标签的。其目标可能是发现数据本身的结构,或者在某些情况下(如聚类),算法会为数据点分配“簇标签”,但这并非预先给定的监督信号。
四、机器学习的数据集
数据是机器学习的“燃料”。没有数据,再强大的算法也无从学习。理解如何组织和使用数据对于机器学习至关重要。
4.1 数据的重要性
常言道“数据是新的石油”,在机器学习领域尤其如此。一个成功的机器学习项目往往依赖于:
- 数据量 (Quantity):通常情况下,更多的数据有助于训练出更鲁棒、泛化能力更强的模型,尤其是对于复杂的深度学习模型。
- 数据质量 (Quality):数据的准确性、完整性、一致性和相关性至关重要。包含错误、噪声或偏差的数据会严重影响模型性能。
- 数据代表性 (Representativeness):训练数据应该能够很好地代表模型在实际应用中将要遇到的真实数据分布。
4.2 数据集的组成
一个典型的数据集通常可以看作是一个表格,其中:
- 样本 (Samples) / 实例 (Instances) / 数据点 (Data Points):数据集中的每一行通常代表一个独立的观察或事件。
- 特征 (Features) / 属性 (Attributes):数据集中的每一列(除了可能的标签列)代表一个特征。
- 标签 (Labels) / 目标变量 (Target Variable):在监督学习数据集中,通常会有一列专门存放每个样本对应的标签。
例如,一个用于预测鸢尾花种类的数据集可能如下所示:
样本ID | 花萼长度 (cm) | 花萼宽度 (cm) | 花瓣长度 (cm) | 花瓣宽度 (cm) | 种类 (标签) |
---|---|---|---|---|---|
1 | 5.1 | 3.5 | 1.4 | 0.2 | Setosa |
2 | 4.9 | 3.0 | 1.4 | 0.2 | Setosa |
… | … | … | … | … | … |
51 | 7.0 | 3.2 | 4.7 | 1.4 | Versicolor |
… | … | … | … | … | … |
4.3 数据集的划分:训练、验证与测试
在构建和评估机器学习模型时,仅仅使用所有可用数据来训练模型是不够的,也是不明智的。我们需要一种方法来评估模型在“未见过”的数据上的表现,即模型的泛化能力 (Generalization Ability)。为此,我们通常会将原始数据集划分为三个独立的子集:训练集、验证集和测试集。
4.3.1 为什么需要划分数据集?
- 评估泛化能力:我们希望模型不仅在它见过的数据(训练数据)上表现良好,更重要的是在新的、未知的数据上也能做出准确的预测。
- 避免过拟合 (Overfitting):过拟合是指模型在训练数据上表现极好,但在新数据上表现很差的现象。它就像一个学生只会死记硬背考题答案,但缺乏真正的理解,遇到新题目就束手无策。数据集划分有助于检测和缓解过拟合。
- 模型选择与超参数调优:在尝试不同的模型结构或调整模型的超参数(如学习率、网络层数等)时,我们需要一个独立的验证集来评估哪种配置效果最好,而不能使用测试集,以防止信息泄露。
4.3.2 训练集 (Training Set)
- 目的:用于训练机器学习模型。模型通过观察训练集中的特征和(对于监督学习)标签来学习它们之间的关系,并调整其内部参数。
- 比例:通常是数据集中最大的一部分,例如占总数据的 60% - 80%。
- 使用:模型直接从这些数据中“学习”。
4.3.3 验证集 (Validation Set)
- 目的:
- 超参数调优:当模型有多种配置选项(例如,神经网络的层数、每层的神经元数量、正则化参数等,这些称为超参数)时,我们使用验证集来评估不同超参数组合的性能,并选择最佳组合。
- 模型选择:当我们尝试了多种不同类型的模型(例如,决策树、支持向量机、神经网络)时,可以使用验证集来比较它们的性能,并选择表现最好的模型。
- 提前停止 (Early Stopping):在模型训练过程中,可以监控模型在验证集上的性能。如果发现在训练集上性能持续提升,但在验证集上性能开始下降,这通常是过拟合的迹象,此时可以停止训练。
- 比例:例如占总数据的 10% - 20%。
- 使用:不直接用于训练模型参数,而是用于指导模型的调整和选择。
4.3.4 测试集 (Test Set)
- 目的:在模型训练和超参数调整完成后,使用测试集对最终选定的模型的性能进行一次性、无偏的评估。这个评估结果将作为模型在真实世界中表现的近似。
- 比例:例如占总数据的 10% - 20%。
- 使用:极其重要的一点是,测试集在整个模型开发和调优过程中都不能被“看到”或用于任何决策,否则评估结果将不再客观。 只有在所有模型选择和参数调整都完成后,才能用测试集评估最终模型的性能。
4.3.5 划分策略与常见问题
(1)随机划分 (Random Splitting)
这是最简单也是最常用的划分方法。假设数据样本是独立同分布的,我们可以随机地将数据分配到训练集、验证集和测试集中。
(2)分层划分 (Stratified Splitting)
当处理分类问题,特别是当某些类别的样本数量远少于其他类别(即类别不平衡)时,简单的随机划分可能会导致某个子集(如测试集)中某些类别的样本过少甚至没有。分层划分可以确保在每个子集中,各个类别的样本比例与它们在原始完整数据集中的比例大致相同。
- 场景:例如,一个包含90%的A类样本和10%的B类样本的数据集,如果随机划分,测试集可能碰巧只包含A类样本。分层划分会确保测试集也大致保持9:1的A:B比例。
(3)时间序列数据划分 (Time Series Data Splitting)
对于具有时间依赖性的数据(例如股票价格、天气预报),不能进行随机划分,因为这会破坏数据的时间顺序,导致“用未来的数据预测过去”的荒谬情况(数据泄露)。正确的做法是按时间顺序划分,例如,用较早的数据作为训练集,中间的数据作为验证集,最新的数据作为测试集。
(4)常见陷阱:数据泄露 (Data Leakage)
数据泄露是指本不应该在模型训练阶段可用的信息,意外地被模型用来学习,从而导致对模型性能的过于乐观的评估。
- 例子:
- 在划分前对整个数据集进行了某些预处理操作(如标准化),然后才划分训练集和测试集。这样,训练集实际上“看到”了测试集的一些统计信息(如均值和标准差)。正确的做法是:仅在训练集上计算统计量,然后将这些统计量应用于验证集和测试集。
- 在特征工程阶段,使用了包含目标变量信息来创建新特征,而目标变量是模型试图预测的。
- 后果:模型在测试集上可能表现得非常好,但在实际部署后性能会急剧下降。
- 防范:严格分离训练、验证和测试数据的使用。确保在每一步操作中,验证集和测试集的信息不会“泄露”到训练过程中。
五、总结
本文作为机器学习基础的第一部分,我们系统地梳理了机器学习的核心概念,为后续更深入的学习打下了坚实的基础。主要内容回顾如下:
-
机器学习概览:
- 机器学习是从数据中学习模式,让计算机在没有显式编程的情况下提升性能。
- 它是人工智能的一个重要分支,而深度学习是机器学习的一个热门子领域。
-
机器学习的主要类型:
- 监督学习:使用带标签的数据进行学习,主要任务是分类(预测类别)和回归(预测数值)。
- 无监督学习:使用无标签的数据,主要任务是聚类(数据分组)、降维(减少特征数量)和关联规则挖掘。
- 强化学习:智能体通过与环境交互,根据获得的奖励或惩罚来学习最优行为策略。
-
机器学习中的基本元素:
- 特征 (Features):描述数据样本的输入属性,可以是数值型或类别型。好的特征是模型成功的关键。
- 标签 (Labels):在监督学习中,是我们希望模型预测的目标输出,可以是类别或数值。
-
机器学习的数据集:
- 数据是机器学习的基石,其数量、质量和代表性至关重要。
- 为了客观评估模型性能并防止过拟合,数据集通常划分为训练集(用于模型学习)、验证集(用于超参数调优和模型选择)和测试集(用于最终模型评估)。
- 正确的划分策略(如随机划分、分层划分、时间序列划分)和避免数据泄露是确保模型评估可靠性的关键。
理解这些基本概念是迈向更复杂机器学习模型和深度学习算法的第一步。在接下来的文章中,我们将开始接触一些经典的机器学习模型,并逐步深入到模型训练和评估的更多细节。希望本文能帮助您清晰地构建起机器学习的初步认知框架!