查看全课大纲(第 87 / 101 节)
  1. 1.数据分析基本概念
  2. 2.学习数据分析的一般路线
  3. 3.数据分析的流程
  4. 4.数据类型
  5. 5.环境部署(1)
  6. 6.环境部署(2)
  7. 7.课程介绍
  8. 8.TXT文件操作
  9. 9.JSON文件操作
  10. 10.CSV文件操作
  11. 11.Excel文件操作
  12. 12.数据库及SQL常用语法
  13. 13.数据库基本操作
  14. 14.数据库多表连接
  15. 15.实战:欧洲职业足球数据库分析
  16. 16.爬虫简介
  17. 17.URL管理模块
  18. 18.网页下载模块
  19. 19.网页解析模块(1)
  20. 20.网页解析模块(2)
  21. 21.Scrapy简介
  22. 22.Scrapy使用步骤(1)
  23. 23.Scrapy使用步骤(2)
  24. 24.Scrapy使用步骤(3)
  25. 25.Scrapy使用步骤(4)
  26. 26.实战:获取国内城市空气质量指数数据
  27. 27.NumPy和SciPy介绍
  28. 28.多维数组
  29. 29.多维数组操作
  30. 30.NumPy的常用方法
  31. 31.向量化介绍
  32. 32.向量化及通用函数
  33. 33.实战:2016美国大选分析
  34. 34.数据结构-Series
  35. 35.数据结构-DataFrame
  36. 36.数据结构-Index
  37. 37.Series的索引操作
  38. 38.DataFrame的索引操作
  39. 39.索引操作总结
  40. 40.运算与对齐
  41. 41.函数应用操作(1) -- map
  42. 42.函数应用操作 (2) -- apply applymap
  43. 43.文件读写操作
  44. 44.排序操作
  45. 45.数据清洗--处理缺失数据
  46. 46.数据清洗--处理重复数据
  47. 47.数据清洗--替换数据
  48. 48.常用统计方法(1) -- describe quantile
  49. 49.常用统计方法(2) -- sum mean median count
  50. 50.常用统计方法(3) -- max min idxmax idxmin
  51. 51.常用统计方法(4) -- mad var std cumsum
  52. 52.实战:全球食品数据分析
  53. 53.层级索引
  54. 54.分组与聚合介绍
  55. 55.分组操作(1) -- GroupBy对象及常用聚合操作
  56. 56.分组操作(2) -- 自定义分组及聚合操作
  57. 57.透视表介绍
  58. 58.透视表操作
  59. 59.数据规整(1) -- 数据合并concat
  60. 60.数据规整(2) -- 数据连接merge
  61. 61.数据重构(3) -- 数据重构stack unstack
  62. 62.实战:互联网电影资料库分析
  63. 63.探索性数据分析EDA介绍
  64. 64.EDA的目的
  65. 65.EDA常用工具
  66. 66.Matplotlib绘图基本介绍
  67. 67.Matplotlib画布
  68. 68.散点图和柱状图的绘制
  69. 69.直方图的绘制
  70. 70.矩阵绘图
  71. 71.子图的使用
  72. 72.Matplotlib颜色、标记、线型
  73. 73.Matplotlib坐标刻度、标签、图例、标题
  74. 74.Seaborn介绍
  75. 75.数据集分布可视化(1) -- 单变量分布、双变量分布
  76. 76.数据集分布可视化(2) -- 变量关系可视化
  77. 77.类别数据可视化 -- 类别散布图、类别内数据分布、类别内统计图
  78. 78.交互式数据可视化工具Bokeh介绍
  79. 79.Bokeh绘制散点图、柱状图、盒子图、弦图
  80. 80.Bokeh绘制常用图形元素
  81. 81.3D绘图 -- mplot3d
  82. 82.3D曲线可视化
  83. 83.3D散点图可视化
  84. 84.3D柱状图可视化
  85. 85.Pandas绘图
  86. 86.实战:Lending Club借贷数据探索性分析及可视化
  87. 87.机器学习介绍及应用场景
  88. 88.机器学习建模介绍 (1) -- 分类
  89. 89.机器学习建模介绍 (2) -- 回归
  90. 90.机器学习建模介绍 (3) -- 聚类
  91. 91.机器学习分类
  92. 92.机器学习工具scikit-learn
  93. 93.使用scikit-learn的流程
  94. 94.数据集准备及划分
  95. 95.模型选择
  96. 96.数据预处理及特征工程
  97. 97.过拟合与欠拟合
  98. 98.模型调参介绍
  99. 99.模型调参方法
  100. 100.模型测试及评价
  101. 101.实战:通过移动设备行为数据预测性别和年龄

机器学习介绍及应用场景

约 15 分钟

📺 正在播放小象学院官方高清录播(支持倍速与清晰度调节)

小象实战讲义 · Python数据分析实战

前面的课程我们已经学习了数据分析中的数据采集、数据处理、数据分析以及数据可视化。从这一刻开始,我们将进入机器学习的入门世界。本节将为你厘清机器学习、人工智能与深度学习三者之间的关系,并通过生动的类比帮助你理解机器学习的核心思想与工作流程。

💡 核心导读

  • 概念定位:理清人工智能、机器学习与深度学习之间的包含与实现关系。
  • 核心类比:将机器学习模型理解为一个“函数”,输入数据,输出预测结果。
  • 工作流程:掌握机器学习的两个核心阶段——训练与预测。
  • 定义理解:理解机器学习是“让计算机获得无需显式编程的学习能力”。

AI知识图谱:概念之间的关系

在开始学习机器学习之前,我们常常会听到许多相关的术语:人工智能(AI)、机器学习(ML)、深度学习(DL)、数据挖掘、模式识别、神经网络等。它们之间并非完全独立,而是存在着复杂的交叉与包含关系。

通过一个AI知识图谱我们可以清晰地看到:

  • 人工智能(Artificial Intelligence) 是一个最广泛的概念,旨在让机器能够模拟人类的智能行为。
  • 机器学习(Machine Learning) 是人工智能的一个重要子领域,是实现人工智能的一种核心方法。
  • 深度学习(Deep Learning) 又是机器学习中的一个分支,主要基于神经网络结构。
  • 此外,机器学习还与数据挖掘、模式识别、知识发现等领域有大量交叉。

简单来说,深度学习是实现机器学习的一种方法,而机器学习又是实现人工智能的一种方法。它们之间是一种“实现”的关系,而非简单的完全包含。

人工智能、机器学习与深度学习的发展历程

人工智能的概念早在1950年代就被提出,并非一个全新的概念。1956年的达特茅斯会议正式确立了这一领域。然而,其发展历程并非一帆风顺,甚至直到2012年前后,业界对人工智能的看法仍存在分歧。

近年来,随着大数据技术的爆发式发展,计算能力的提升以及算法的突破(尤其是在2012年深度学习在图像识别领域取得重大进展),人工智能迎来了新的春天。我们现在日常生活中广泛应用的都是弱人工智能,例如:

  • 语音识别:将语音转换为文字
  • 图像识别:识别图片中的物体
  • 智能推荐:电商平台根据你的浏览记录推荐商品

弱人工智能专注于完成特定的、相对不那么复杂的任务。而强人工智能则指拥有与人类同等智慧、能够进行通用推理的机器,这仍然是未来长远的目标。

机器学习在1980年代后逐渐发展成为实现人工智能最主流、最基础的方法。它让计算机能够从数据中自动学习规律,而无需针对每个具体任务进行繁琐的、不可扩展的手工编程。

理解机器学习:一个函数的类比

如何直观地理解机器学习?我们可以将其模型简单地类比为一个数学函数。

一个函数,例如 f(x)=x2f(x) = x^2,你输入一个值(如 2),它就会输出一个结果(4)。机器学习模型也是如此:

  • 输入(Input):现实世界的数据(如图片像素、音频信号、文本字符串、棋盘状态)。
  • 函数(Function):机器学习算法学习得到的复杂映射规则(即模型)。
  • 输出(Output):我们想要的预测或识别结果。

示例一:语音识别

f(一段音频数据) = “你好吗?”

函数 f 是专门的语音识别模型,输入是音频文件数据,输出是识别出的文本。

示例二:图像识别

f(一张图片的像素数据) = “猫”

输入是代表图片的像素矩阵,输出是图片内容的标签。

示例三:围棋对战

f(当前棋盘状态) = “5-5” (下一步落子位置)

输入是棋盘状态的数字化表示,输出是模型认为最优的下一步落子点。

因此,机器学习的核心范式可以总结为下图所示的流程:

       数据(Data)
          ↓
    机器学习算法(Algorithm)
          ↓
    训练好的模型(Model)
          ↓
       预测(Prediction)

机器学习的定义与核心阶段

一个被广泛引用的定义是:

Machine Learning is a type of Artificial Intelligence that provides computers with the ability to learn without being explicitly programmed.

机器学习是人工智能的一个分支,它让计算机获得了一种能力:无需进行显式编程即可学习。

这里的“无需显式编程”指的是,我们不需要为每个具体任务(例如识别猫还是狗)手工编写一套固定的判断规则(如“如果有胡须,则是猫”)。相反,我们提供一个通用的学习算法和大量数据,算法会自己从数据中发现规律和特征。

基于此,机器学习的过程通常分为两个核心阶段:

  1. 训练阶段(Training Phase):使用历史数据(包含特征和对应的正确答案,即标签)来“教导”模型,让模型学习数据中的内在规律。这好比学生用习题集进行备考复习。
  2. 预测阶段(Prediction/Inference Phase):将新的、未见过的真实数据输入到训练好的模型中,让模型给出预测结果。这好比学生正式参加考试。

让我们用一个极简的水果分类例子,通过代码来直观感受这两个阶段。我们将使用 scikit-learn 库中的一个简单分类算法。

# 导入必要的库。每个代码块必须完全自包含。
import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# ========== 训练阶段 ==========
# 1. 准备训练数据:特征和标签
# 假设我们用两个特征来区分水果:甜度(0-10)和重量(0-100克)
# 特征数据
训练特征 = np.array([
    [8, 150],  # 样本1:很甜,重 -> 我们定义为苹果
    [3, 120],  # 样本2:不太甜,较轻 -> 香蕉
    [7, 140],  # 样本3:甜,重 -> 苹果
    [2, 110],  # 样本4:不甜,轻 -> 香蕉
])
# 标签数据 (0代表苹果,1代表香蕉)
训练标签 = np.array([0, 1, 0, 1])

# 2. 选择并训练模型(这里用K近邻算法,k=1)
模型 = KNeighborsClassifier(n_neighbors=1)
模型.fit(训练特征, 训练标签) # fit方法就是“学习”的过程
print("模型训练完成!")
模型训练完成!
# ========== 预测阶段 ==========
# 每个代码块自包含:重建训练数据并重新训练模型
import numpy as np
from sklearn.neighbors import KNeighborsClassifier

训练特征 = np.array([
    [8, 150],  # 样本1:很甜,重 -> 我们定义为苹果
    [3, 120],  # 样本2:不太甜,较轻 -> 香蕉
    [7, 140],  # 样本3:甜,重 -> 苹果
    [2, 110],  # 样本4:不甜,轻 -> 香蕉
])
训练标签 = np.array([0, 1, 0, 1])
模型 = KNeighborsClassifier(n_neighbors=1)
模型.fit(训练特征, 训练标签)

# 构造一个新的、模型从未见过的测试数据
测试数据 = np.array([[1, 2]])  # 一个具有香蕉特征的新样本(不甜、极轻)

# 使用训练好的模型进行预测
预测结果 = 模型.predict(测试数据)
# 将数字标签转换回水果名称
水果名称 = {0: '苹果', 1: '香蕉'}
print(f"输入特征 {测试数据[0]} 的预测结果是:{水果名称[预测结果[0]]}")
输入特征 [1 2] 的预测结果是:香蕉

在这个例子中:

  • 训练数据:我们提供了4个水果样本的“特征”(甜度、重量)和“标签”(苹果或香蕉)。
  • 训练过程:模型(K近邻)通过fit方法学习,记住了这些样本。
  • 预测过程:当给出一个新水果的特征[1, 2](非常不甜,非常轻)时,模型在其记忆中找到最相似的样本(第4个样本[2, 110],标签是香蕉),因此预测新水果为“香蕉”。

这模拟了人类的学习过程:我们通过反复观察例子(香蕉是黄色的、长的;苹果是圆的、红的)来学习概念,之后便能识别新的实例。机器学习正是让机器模拟了这一过程。

📝 动手练一练

  1. 概念辨析:请用自己的话简述人工智能、机器学习和深度学习三者之间的关系。你认为目前手机上的人脸解锁功能属于三者中的哪一个范畴?
👉 点击查看参考答案

关系简述:人工智能(AI)是总目标,即让机器展现智能行为。机器学习(ML)是实现AI的一种主流方法,核心是让机器从数据中学习。深度学习(DL)是机器学习的一个子集,特指使用深层神经网络模型的学习方法。因此,DL ⊂ ML ⊂ AI 在技术范畴上基本成立,但AI的实现方法不限于ML。

人脸解锁:属于弱人工智能范畴,具体实现技术主要基于深度学习(例如使用卷积神经网络进行人脸特征提取与比对)。它是机器学习方法在计算机视觉领域的一个成功应用。

  1. 代码实践:在上面水果分类的代码中,如果将训练数据中第二个样本[3, 120]的标签从1(香蕉)改为0(苹果),再次运行整个代码(包括训练和预测),预测结果会改变吗?为什么?
👉 点击查看参考答案
# 修改后的训练数据(每个代码块自包含:补齐 import)
import numpy as np
from sklearn.neighbors import KNeighborsClassifier

训练特征 = np.array([[8, 150], [3, 120], [7, 140], [2, 110]])
训练标签 = np.array([0, 0, 0, 1]) # 第二个标签改为0(苹果)

模型 = KNeighborsClassifier(n_neighbors=1)
模型.fit(训练特征, 训练标签)

测试数据 = np.array([[1, 2]])
预测结果 = 模型.predict(测试数据)
水果名称 = {0: '苹果', 1: '香蕉'}
print(f"修改标签后,预测结果是:{水果名称[预测结果[0]]}")
修改标签后,预测结果是:香蕉

预测结果不会改变,仍然是香蕉。K近邻算法(n_neighbors=1)在预测时,只依赖距离新样本[1,2]最近的那一个训练样本。计算欧氏距离:到第4个样本[2, 110]约为 108,到第2个样本[3, 120]约为 118——最近的仍是第4个样本[2, 110],而它的标签(香蕉)并没有被修改。被改标签的第2个样本[3, 120]并非最近邻,因此不影响本次预测。这说明了 k=1 时只有最近邻样本的标签起作用,也再次提醒我们:训练数据的标签准确性对模型行为至关重要。

本章小结

本节作为机器学习的入门第一课,我们重点建立了对机器学习领域的整体认知框架。

📋 行动清单

  • 理清概念:能清晰说出人工智能、机器学习与深度学习的区别与联系。
  • 理解范式:掌握机器学习“数据→模型→预测”的核心流程,以及“训练”与“预测”两个阶段的不同任务。
  • 运行示例:成功运行本节中的代码示例,理解每一行代码在机器学习流程中所起的作用。

机器学习不再是遥不可及的黑科技,它本质上是一套从数据中学习规律并用于预测的方法论。在接下来的课程中,我们将逐步学习如何使用Python强大的scikit-learn库来构建和评估真正的机器学习模型。

—— 小象教研组

配套资料 · 直接下载

课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。

  • 本节课件:机器学习介绍及应用场景
    PDF · 993KB
    下载
  • 第8章配套代码包:机器学习示例与移动设备行为实战数据
    ZIP · 274MB
    下载
  • 全套课件打包(第1-5章)
    ZIP · 12.8MB
    下载
  • 全套课件打包(第6-8章)
    ZIP · 15MB
    下载
  • 实战数据集:AppleStore 应用商城分析
    ZIP · 329KB
    下载
  • 实战数据集:女性服装电商分析
    ZIP · 2.8MB
    下载
  • Python 数据分析环境搭建指南
    PDF · 2MB
    下载
  • Scrapy 安装教程
    PDF · 12.7MB
    下载
  • 附加实战项目:AppleStore 应用商城数据分析
    ZIP · 0.3MB · ipynb + CSV 数据
    下载
  • 附加实战项目:银行电话营销数据分析
    ZIP · 0.4MB · ipynb + CSV 数据
    下载
  • 附加实战项目:女性服装电商评论数据分析
    ZIP · 2.7MB · ipynb + CSV 数据
    下载
  • 附加实战项目:美国化学学会杂志数据分析
    ZIP · 34.2MB · ipynb + SQLite 数据库
    下载