当前位置: 首页 > news >正文

【深度学习-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 机器学习的定义

关于机器学习,有几个经典的定义:

  1. Arthur Samuel (1959):机器学习是“在不直接针对问题进行编程的情况下,赋予计算机学习能力的研究领域”。这是早期对机器学习较为宽泛的定义,强调了其“隐式学习”的特性。
  2. 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),使得同一簇内的数据点彼此相似,而不同簇之间的数据点差异较大。
  • 示例
    • 客户细分:根据用户的购买行为、浏览历史等将客户划分为不同的群体,以便进行精准营销。
    • 图像分割:将图像中具有相似颜色或纹理的像素区域分组。
    • 异常检测:识别出与大部分数据点显著不同的孤立点,这些点可能是异常或欺诈行为。
  • 可视化概念
    聚类结果
    Cluster1
    Cluster2
    Cluster3
    数据点
    H
    G
    I
    E
    D
    F
    B
    A
    C
(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)、AprioriQ-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)种类 (标签)
15.13.51.40.2Setosa
24.93.01.40.2Setosa
517.03.24.71.4Versicolor

4.3 数据集的划分:训练、验证与测试

在构建和评估机器学习模型时,仅仅使用所有可用数据来训练模型是不够的,也是不明智的。我们需要一种方法来评估模型在“未见过”的数据上的表现,即模型的泛化能力 (Generalization Ability)。为此,我们通常会将原始数据集划分为三个独立的子集:训练集、验证集和测试集。

原始数据集
训练集
验证集
测试集

4.3.1 为什么需要划分数据集?

  • 评估泛化能力:我们希望模型不仅在它见过的数据(训练数据)上表现良好,更重要的是在新的、未知的数据上也能做出准确的预测。
  • 避免过拟合 (Overfitting):过拟合是指模型在训练数据上表现极好,但在新数据上表现很差的现象。它就像一个学生只会死记硬背考题答案,但缺乏真正的理解,遇到新题目就束手无策。数据集划分有助于检测和缓解过拟合。
  • 模型选择与超参数调优:在尝试不同的模型结构或调整模型的超参数(如学习率、网络层数等)时,我们需要一个独立的验证集来评估哪种配置效果最好,而不能使用测试集,以防止信息泄露。

4.3.2 训练集 (Training Set)

  • 目的:用于训练机器学习模型。模型通过观察训练集中的特征和(对于监督学习)标签来学习它们之间的关系,并调整其内部参数。
  • 比例:通常是数据集中最大的一部分,例如占总数据的 60% - 80%。
  • 使用:模型直接从这些数据中“学习”。

4.3.3 验证集 (Validation Set)

  • 目的
    1. 超参数调优:当模型有多种配置选项(例如,神经网络的层数、每层的神经元数量、正则化参数等,这些称为超参数)时,我们使用验证集来评估不同超参数组合的性能,并选择最佳组合。
    2. 模型选择:当我们尝试了多种不同类型的模型(例如,决策树、支持向量机、神经网络)时,可以使用验证集来比较它们的性能,并选择表现最好的模型。
    3. 提前停止 (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)

数据泄露是指本不应该在模型训练阶段可用的信息,意外地被模型用来学习,从而导致对模型性能的过于乐观的评估。

  • 例子
    • 在划分前对整个数据集进行了某些预处理操作(如标准化),然后才划分训练集和测试集。这样,训练集实际上“看到”了测试集的一些统计信息(如均值和标准差)。正确的做法是:仅在训练集上计算统计量,然后将这些统计量应用于验证集和测试集。
    • 在特征工程阶段,使用了包含目标变量信息来创建新特征,而目标变量是模型试图预测的。
  • 后果:模型在测试集上可能表现得非常好,但在实际部署后性能会急剧下降。
  • 防范:严格分离训练、验证和测试数据的使用。确保在每一步操作中,验证集和测试集的信息不会“泄露”到训练过程中。

五、总结

本文作为机器学习基础的第一部分,我们系统地梳理了机器学习的核心概念,为后续更深入的学习打下了坚实的基础。主要内容回顾如下:

  1. 机器学习概览

    • 机器学习是从数据中学习模式,让计算机在没有显式编程的情况下提升性能。
    • 它是人工智能的一个重要分支,而深度学习是机器学习的一个热门子领域。
  2. 机器学习的主要类型

    • 监督学习:使用带标签的数据进行学习,主要任务是分类(预测类别)和回归(预测数值)。
    • 无监督学习:使用无标签的数据,主要任务是聚类(数据分组)、降维(减少特征数量)和关联规则挖掘。
    • 强化学习:智能体通过与环境交互,根据获得的奖励或惩罚来学习最优行为策略。
  3. 机器学习中的基本元素

    • 特征 (Features):描述数据样本的输入属性,可以是数值型或类别型。好的特征是模型成功的关键。
    • 标签 (Labels):在监督学习中,是我们希望模型预测的目标输出,可以是类别或数值。
  4. 机器学习的数据集

    • 数据是机器学习的基石,其数量、质量和代表性至关重要。
    • 为了客观评估模型性能并防止过拟合,数据集通常划分为训练集(用于模型学习)、验证集(用于超参数调优和模型选择)和测试集(用于最终模型评估)。
    • 正确的划分策略(如随机划分、分层划分、时间序列划分)和避免数据泄露是确保模型评估可靠性的关键。

理解这些基本概念是迈向更复杂机器学习模型和深度学习算法的第一步。在接下来的文章中,我们将开始接触一些经典的机器学习模型,并逐步深入到模型训练和评估的更多细节。希望本文能帮助您清晰地构建起机器学习的初步认知框架!


相关文章:

【深度学习-Day 9】机器学习核心概念入门:监督、无监督与强化学习全解析

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

android特许权限调试

新aosp中新应用无权限,但需要正常运行,来排查权限问题 ro.control_privapp_permissionslog这样做可确保设备保持工作状态,同时仍然提供违规行为列表。错误消息格式如下: PackageManager: Privileged permission {PERMISSION_NAM…...

如何避免Java中的ConcurrentModificationException

引言 在Java开发中,操作集合(如List、Set、Map)时,许多开发者都遇到过ConcurrentModificationException。这个异常通常出现在遍历集合的同时尝试修改其结构(如添加或删除元素)。本文将深入探讨这一异常的根…...

5月12日复盘-RNN

5月12日复盘 二、RNN 模型 1.先导 1.1 为什么需要循环神经网络 RNN ​ 上图是一幅全连接神经网络图,我们可以看到输入层-隐藏层-输出层,他们每一层之间是相互独立地,(框框里面代表同一层),每一次输入生成一个节点,同…...

linux小主机搭建自己的nas(二)docker卸载navidrome

测试的时候安装了一个音乐播放器在root下面,现在先给他删掉 停止并删除容器 docker ps -a | grep navidrome# 停止并删除容器(替换 YOUR_CONTAINER_NAME 为实际名称) docker stop YOUR_CONTAINER_NAME && docker rm YOUR_CONTAINER…...

.NET 在鸿蒙系统上的适配现状

目录 .NET 在鸿蒙系统上的适配现状 鸿蒙系统对虚拟机的限制与.NET的适配挑战 NativeAOT 在鸿蒙系统中的适配原理与实现方式 已知问题与解决方案:鸿蒙系统中的 syscall 限制 鸿蒙系统适配中的技术难点与解决方案 跨平台编译的挑战与应对策略 依赖库管理与兼容…...

01-centos离线升级至almalinux

官网链接官方代码调整: 1. vi repositories/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py with mounting.BindMount(sourceuserspace_dir, targetos.path.join(context.base_dir, install_root_dir.lstrip(/))):_restore_persi…...

Python 处理图像并生成 JSONL 元数据文件 - 固定text版本

Python 处理图像并生成 JSONL 元数据文件 - 固定text版本 flyfish JSONL(JSON Lines)简介 JSONL(JSON Lines,也称为 newline-delimited JSON)是一种轻量级的数据序列化格式,由一系列独立的 JSON 对象组成…...

uniapp使用npm下载

uniapp的项目在使用HBuilder X创建时是不会有node_modules文件夹的,如下图所示: 但是uni-app不管基于哪个框架,它内部一定是有node.js的,否则没有办法去实现框架层面的一些东西,只是说它略微有点差异。具体差异表现在…...

前端面试每日三题 - Day 31

这是我为准备前端/全栈开发工程师面试整理的第30天每日三题练习: ✅ 题目1:WebAssembly前端深度实践指南 核心优势对比 维度JavaScriptWebAssembly解析速度需要解析编译预编译二进制执行性能动态类型较慢静态类型接近原生内存管理自动垃圾回收手动内存…...

通义千问席卷日本!开源界“卷王”阿里通义千问成为日本AI发展新基石

据日本经济新闻(NIKKEI)报道,通义千问已成为日本AI开发的新基础,其影响力正逐步扩大,深刻改变着日本AI产业的格局。 同时,日本经济新闻将通义千问Qwen2.5-Max列为全球AI模型综合评测第六名,不仅…...

01 安装CANoe

文章目录 0、Introduction1、Install CANoe1.1、Unlock Package1.2、Kick autorun1.3、Install CANoe1.4、Wait Download1.5、Restart application1.6、Vector CANoe Installation1.7、Installation Successfully1.8、Open CANoe 2、Install Drivers2.1、Unlock Package2.2、Ki…...

AutoDL租用服务器教程

在跑ai模型的时候,容易遇到算力不够的情况。此时便需要租用服务器。autodl是个较为便宜的服务器租用平台,h20仅需七点几元每小时。下面是简单的介绍。 打开网站AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL,并登录账号 登录后&#xff…...

【人工智能-agent】--Dify中MCP工具存数据到MySQL

本文记录的工作如下: 自定义MCP工具,爬取我的钢铁网数据爬取的数据插值处理自定义MCP工具,把爬取到的数据(str)存入本地excel表格中自定义MCP工具,把爬取到的数据(str)存入本地MySQ…...

ctfshow——web入门351~356

SSRF没有出网的部分 web入门351 $ch curl_init($url); 作用:初始化一个 cURL 会话,并设置目标 URL。解释: curl_init($url) 创建一个新的 cURL 资源,并将其与 $url 关联。这里的 $url 是用户提供的,因此目标地址完全…...

堆复习(C语言版)

目录 1.树的相关概念: 2.堆的实现 3.TopK问题 4.总结 1.树的相关概念: 1.结点的度:一个结点含有的子树(孩子)个数。 A的度为6 2.叶结点or终端结点:度为0的结点。 J、K、L、H、I 都是叶子结点 3.非终端结…...

解决LangChain4j报错HTTP/1.1 header parser received no bytes

问题描述 当使用langchain4j-open-ai调用自己部署的大模型服务时报错: public static void main(String[] args) {OpenAiChatModel model OpenAiChatModel.builder().apiKey("none").modelName("qwen2.5-instruct").baseUrl("http://19…...

深入解析MySQL联合查询(UNION):案例与实战技巧

在数据库操作中,查询是最常用的操作之一。MySQL提供了强大的查询功能,联合查询(UNION)是其中非常有用的一项操作。联合查询可以将多个查询结果合并成一个结果集,使得从不同来源的数据整合变得更加简单高效。本文将详细…...

[计算机科学#14]:数据结构

【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要:数据结构是计算机科学中的核心概念,用于…...

【计算机网络】HTTP 协议

HTTP是什么? HTTP 全称是“超文本传输协议”,是互联网上应用最广泛的应用层协议,用于客户端和服务器之间的通信。 HTTP 的实现在 HTTP 3.0之前都是基于传输层的 TCP 实现的, HTTP 3.0 改为了基于 UDP 实现,但是现在市…...

原生的 XMLHttpRequest 和基于 jQuery 的 $.ajax 方法的异同之处以及使用场景

近期参与一个项目的开发,发现项目中的ajax请求有两种不同的写法,查询了下两种写法的异同之处以及使用场景。 下面将从以下两段简单代码进行异同之处的分析及使用场景的介绍: // 写法一: var xhr new XMLHttpRequest(); xhr.open…...

横向移动(上)

横向移动(上) 横向移动指的是攻击者在内网中获得初始访问权限之后,通过相关技术扩大敏感数据和高价值资产权限的行为 常见的横向移动的方式 1.通过web漏洞 2.通过远程桌面 3.通过账号密码 4.通过不安全的配置 5.通过系统漏洞 利用远控…...

关于 js:7. 模块化、构建与工具链

一、模块系统:CommonJS、ESM、UMD 模块系统的目标: 将代码拆分为独立的逻辑单元(模块),实现封装、复用、依赖管理。 在 Web 前端/Node 中,因为 JavaScript 起初没有模块机制,因此出现了多个模…...

一次IPA被破解后的教训(附Ipa Guard等混淆工具实测)

一行代码的疏忽,一个默认的类名,一个未混淆的资源路径,都可能成为攻击者入侵的入口。 背景:一次“不值一提”的上线,成了代价惨重的经验 故事的起点很简单:我们给销售部门做了一款小型内部演示 App&#x…...

麒麟系统安装.net core环境变量

本文主要记录在麒麟系统上安装.net core的运行环境,这里使用的是麒麟V10桌面版,后续测试服务器到了之后再使用服务器版进行安装测试。 环境安装 下载 这里由于是桌面版,我直接使用浏览器下的包,下完之后在终端中安装。 安装 1…...

如何使用 React Hooks 替代类组件的生命周期方法?

文章目录 1. 引言2. useEffect 概述3. 模拟类组件的生命周期方法3.1 模拟 componentDidMount3.2 模拟 componentDidUpdate3.3 模拟 componentWillUnmount 4. 多个 useEffect 的使用5. 注意事项6. 总结 1. 引言 在 React 16.8 版本之前,开发者主要通过类组件&#x…...

windows 在安装 Ubuntu-20.04 显示操作超时解决办法

1. 问题概述与原因分析 在我们用下面命令安装 Ubuntu-20.04 时系统显示操作超时: wsl --install -d Ubuntu-20.04大概率是没打开 Windows 虚拟机监控程序平台,可以在控制面板–>程序和功能里面打开 2. 解决办法与步骤 解决方式如下: 我…...

Spring Boot中Redis序列化配置详解

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在使用Spring Boot集成Redis时,序列化方式的选择直接影响数据存储的效率和系统兼容性。默认的JDK序列化存在可读性差、存储空间大等问题&am…...

OpenCV进阶操作:光流估计

文章目录 前言一、光流估计1、光流估计是什么?2、光流估计的前提?1)亮度恒定2)小运动3)空间一致 3、OpenCV中的经典光流算法1)Lucas-Kanade方法(稀疏光流)2) Farneback方…...

2025年渗透测试面试题总结-渗透测试红队面试八(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 渗透测试红队面试八 二百一十一、常见中间件解析漏洞利用方式 二百一十二、MySQL用户密码存储与加密 …...

前端面试高频50个问题,解答

以下是前端面试中常见的50个高频问题及其简要解答&#xff1a; HTML HTML5 有哪些新特性&#xff1f; 语义化标签&#xff08;如 <header>、<footer>&#xff09;、多媒体支持&#xff08;如 <audio>、<video>&#xff09;、本地存储&#xff08;如 l…...

Elasticsearch架构原理

1、Elasticsearch的节点类型 1.1 Master节点 在Elasticsearch启动时&#xff0c;会选举出来一个Master节点。当某个节点启动后&#xff0c;然后 使用Zen Discovery机制找到集群中的其他节点&#xff0c;并建立连接。 discovery.seed_hosts: ["192.168.21.130", &qu…...

前端面试宝典---webpack面试题

webpack 的 tree shaking 的原理 Webpack 的 Tree Shaking 过程主要包含以下步骤&#xff1a; 模块依赖分析&#xff1a;Webpack 首先构建一个完整的模块依赖图&#xff0c;确定每个模块之间的依赖关系。导出值分析&#xff1a;通过分析模块之间的 import 和 export&#xff…...

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践 一、Tailwind CSS 配置 1. 安装依赖 npm install tailwindcssnpm:tailwindcss/postcss7-compat tailwindcss/postcss7-compat postcss^7 autoprefixer^92. 创建配置文件 npx tailwindcss init3. 创建样式文件 在…...

hiveserver2与beeline进行远程连接hive配置及遇到的问题

1、hiveserver2 参与用户模拟功能&#xff0c;因为开启后才能保证各用户之间的权限隔离。 1.1、配置 $HADOOP_HOME/etc/hadoop/core-site.xml <!--配置所有节点的root用户都可作为代理用户--> <property><name>hadoop.proxyuser.root.hosts</name>&…...

单词短语0512

当然可以&#xff0c;下面是“opportunity”在考研英语中的常用意思和高频短语&#xff0c;采用大字体展示&#xff0c;便于记忆&#xff1a; ✅ opportunity 的考研常用意思&#xff1a; &#x1f449; 机会&#xff0c;良机 表示有利的时机或条件&#xff0c;尤指成功的可能…...

c++刷题便捷函数(类似于stoi的小函数)

标题 stoi(字符串转整形)map和set都有count成员函数&#xff0c;返回值是该key的个数&#xff0c;可以用来查是否存在该元素。bool is_sorted(nums.begin(), nums.end() 检验是否有序INT_MAX,INT_MIN分别是整形最大和最小初始化二维矩阵 vector<vector\<int>> mart…...

想实现一个基于MCP的pptx生成系统架构图【初版实现】

技术栈:Python + MCP协议 + python-pptx + FastMCP 核心创新点:通过MCP协议实现PPTX元素的动态化生成与标准化模板管理 当前还是个半成品,后续持续更新。 主要先介绍一下思路。 一、MCP协议与系统设计原理 1.1 为什么选择MCP? 标准化工具调用:通过MCP将PPTX元素生成逻辑封…...

jwt学习

基于token的鉴权机制也是无状态的(类似于http协议)&#xff0c;不需要保在服务端保留用户的认证或会话信息。 构成 jwt由三部分构成&#xff1a;头部、payload、签名&#xff0c;中间用.隔开 头部(header) 包含两部分信息&#xff1a;声明类型、声明加密的算法 例如&#xff1a…...

pth的模型格式怎么变成SafeTensors了?

文章目录 背景传统模型格式的安全隐患效率与资源瓶颈跨框架兼容性限制Hugging Face 的解决方案&#xff1a;SafeTensors行业与社区的推动SafeTensors 的意义总结 背景 最近要找一些适合embedding的模型&#xff0c;在huggingface模型库上看到一些排名比较靠前的&#xff0c;准…...

如何判断IP是否被平台标记

一、基础检测&#xff1a;连通性与黑名单筛查 网络连通性测试 Ping与Traceroute&#xff1a;通过命令测试延迟和路由路径&#xff0c;若延迟>50ms或存在异常节点&#xff08;如某跳延迟>200ms&#xff09;&#xff0c;可能影响可用性。示例命令&#xff1a; bash ping 8.…...

【c++】异常详解

目录 C语言处理错误的局限性异常的定义异常的具体使用细则异常的抛出与捕获在函数调用链中异常栈展开匹配原则异常的重新抛出异常规范throw(类型)noexcept 成熟的异常体系c自己的异常体系异常的优缺点优点缺点 异常安全 C语言处理错误的局限性 C语言处理错误常常会用到assert和…...

从模型加密到授权交付,CodeMeter赋能3D打印商业化全流程

引言 在数字化制造快速演进的当下&#xff0c;3D 打印&#xff08;增材制造&#xff09;作为具备高度灵活性与创新潜力的制造方式&#xff0c;正重塑备件供应链与产品生命周期管理。然而&#xff0c;随着应用场景不断扩展&#xff0c;企业面临的知识产权保护、数字资产商业化与…...

ESP32开发之freeRTOS的事件组

什么是事件组事件组的应用场景事件组的API函数事件组应用举例总结什么是事件组 概念:事件组就是一个整数,高8位给内核使用,其他位用来表示事件。在ESP32的IDF freeRTOS中,这个整数是32位的,低24位用来供事件组使用。 举一个生活中的例子: 你在等快递,有三个包裹来自不…...

K8S中构建双架构镜像-从零到成功

背景介绍 公司一个客户的项目使用的全信创的环境&#xff0c;服务器采用arm64的机器&#xff0c;而我们的应用全部是amd64的&#xff0c;于是需要对现在公司流水线进行arm64版本的同步镜像生成。本文介绍从最开始到最终生成双架构的全部过程&#xff0c;以及其中使用的相关配置…...

腾讯怎样基于DeepSeek搭建企业应用?怎样私有化部署满血版DS?直播:腾讯云X DeepSeek!

2025新春&#xff0c;DeepSeek横空出世&#xff0c;震撼全球&#xff01; 通过算法优化&#xff0c;DeepSeek将训练与推理成本降低至国际同类模型的1/10&#xff0c;极大的降低了AI应用开发的门槛。 可以预见&#xff0c;2025年&#xff0c;是AI应用落地爆发之年&#xff01; ✔…...

【论信息系统项目的质量管理】

论信息系统项目的质量管理 前言一、抓好质量管理规划工作&#xff0c;为质量管理和确认提供指南和方向。二、做好管理质量相关工作&#xff0c;促进质量过程改进。三、抓好控制质量&#xff0c;确保实现质量目标四、综合协调质量与成本、进度、范围的关系总结 前言 为解决日常出…...

SpringAI框架中的RAG模块详解及应用示例

SpringAI框架中的RAG模块详解及应用示例 RAG&#xff08;Retrieval-Augmented Generation&#xff09;可以通过检索知识库&#xff0c;克服大模型训练完成后参数冻结的局限性&#xff0c;携带知识让大模型根据知识进行回答。SpringAI框架提供了模块化的API来支持RAG&#xff0…...

图像增强技术

一、目的 通过本实验加深对数字图像增强操作的理解&#xff0c;熟悉MATLAB中的有关函数&#xff1b;了解直方图均衡化和卷积滤波的原理&#xff1b;熟悉低通和高通滤波模板的构造方法。 二、实验内容与设计思想 1、观察实验结果可看出&#xff0c; 原图像 I的对比度较低&…...

【Java学习笔记】多态参数

多态参数 应用&#xff1a;方法定义的形参类型为父类类型&#xff0c;实参允许为子类类型 // 父类 package polyparemeter;public class employee {private String name;private double salary;//构造器public employee(){}public employee(String name, double salary) {thi…...