零基础入门机器学习 -- 第一章什么是机器学习?
✅ 机器学习广泛应用于推荐系统、人脸识别、自动驾驶等领域。机器学习(Machine Learning, ML)是。:如果骗子用“免 费”代替“免费”就无法识别。规律,代替人工编写规则。
·
1.1 机器学习的定义
机器学习(Machine Learning, ML)是让计算机从数据中学习,然后在没有明确编程的情况下进行预测或决策的技术。
- 传统编程:程序员写出明确的规则,例如“如果温度低于 0℃,显示‘结冰’”。
- 机器学习:计算机分析历史天气数据,自行找出“低温 → 可能结冰”的规律,然后对新数据进行预测。
机器学习的核心思想是:数据 + 算法 = 经验 + 预测能力。
1.2 机器学习 vs 传统编程
| 特点 | 传统编程 | 机器学习 |
|---|---|---|
| 规则 | 人工手写规则 | 计算机从数据中学习规则 |
| 适用范围 | 规则清晰、可枚举的任务 | 规则复杂,难以手写的任务 |
| 例子 | 计算器、Excel 公式 | 语音识别、推荐系统 |
示例:垃圾邮件分类
传统编程
def is_spam(email):
if "中奖" in email or "免费" in email:
return True
return False
✅ 优点:逻辑清晰
❌ 缺点:如果骗子用“免 费”代替“免费”就无法识别。
机器学习
- 机器学习不需要手写规则,而是分析大量垃圾邮件,学习出哪些词出现时,邮件是垃圾邮件的概率高(如“中奖”、“特价”)。
- 新邮件进来后,模型根据学习到的规律自动判断。
1.3 机器学习的日常应用
1.3.1 推荐系统
- 应用:Netflix、YouTube、淘宝、抖音。
- 示例:你在淘宝上搜索“耳机”,几小时后,你的微博、知乎上可能会看到耳机广告。
1.3.2 语音助手
- 应用:Siri、Google Assistant、天猫精灵。
- 示例:Siri 识别你说的“明天下午三点提醒我开会”,并自动添加到日程。
1.3.3 人脸识别
- 应用:手机解锁、考勤打卡、安防监控。
- 示例:iPhone Face ID 通过分析你的五官特征,识别是不是你本人。
1.4 机器学习的分类
1.4.1 监督学习(Supervised Learning)
- 概念:给定带标签的数据,模型学习“输入 → 输出”的映射关系。
- 示例:猫狗分类
- 输入:猫或狗的图片
- 输出:标签(“猫” 或 “狗”)
- 现实应用:
- 银行贷款审批(根据用户信用评分预测是否批准)
- 医疗诊断(根据病人数据预测是否患病)
示例:用 Python 训练一个简单的监督学习模型
from sklearn.tree import DecisionTreeClassifier
# 训练数据:身高、体重 → 猜测是男是女
X = [[170, 65], [160, 50], [180, 80], [150, 45]] # 特征
y = ['男', '女', '男', '女'] # 标签
# 创建决策树分类器
model = DecisionTreeClassifier()
model.fit(X, y) # 训练模型
# 预测一个新的数据
prediction = model.predict([[175, 70]])
print("预测结果:", prediction[0]) # 可能输出:'男'
示例输出
预测结果: 男
说明
DecisionTreeClassifier是决策树分类器,用于分类任务。fit(X, y)让模型学习身高体重和性别的关系。predict([[175, 70]])预测一个新人的性别。
1.4.2 无监督学习(Unsupervised Learning)
- 概念:数据没有标签,模型自己寻找数据的结构或模式。
- 示例:新闻分类
- 输入:大量新闻文章
- 过程:算法自动发现哪些新闻内容相似,归类到一起
- 现实应用:
- 客户群体划分(电商分析不同类型的顾客)
- 异常检测(信用卡诈骗识别)
示例:用 Python 进行新闻聚类
from sklearn.cluster import KMeans
import numpy as np
# 假设我们有 6 篇新闻,它们的特征向量如下
X = np.array([[1, 2], [2, 3], [3, 2], [8, 9], [9, 8], [10, 10]])
# 创建 KMeans 聚类模型,分为 2 组
model = KMeans(n_clusters=2, random_state=42)
model.fit(X)
# 输出每篇新闻属于哪个类别
print("分类结果:", model.labels_)
示例输出:
分类结果: [0 0 0 1 1 1]
说明
KMeans(n_clusters=2)创建 2 组聚类fit(X)训练模型,自动分类新闻model.labels_输出每个新闻属于哪个类别
1.4.3 强化学习(Reinforcement Learning)
- 概念:通过试错学习策略,在环境中获得最优回报。
- 示例:游戏 AI
- 输入:游戏环境(如《围棋》棋盘)
- 过程:AI 试探不同走法,尝试击败对手
- 输出:最优策略
- 现实应用:
- AlphaGo(打败人类围棋冠军)
- 自动驾驶(学习如何转弯、刹车)
示例:Q-Learning 玩井字棋
# 这里不写代码,强化学习代码较复杂,我们后续章节再详细介绍
print("强化学习示例后续章节介绍")
1.5 实践案例
案例 1:用 Python 画出“机器学习决策流程图”
import matplotlib.pyplot as plt
import networkx as nx
# 解决中文显示问题
plt.rcParams["font.sans-serif"] = ["SimHei"] # Windows 和 Mac 可能需要不同字体
plt.rcParams["axes.unicode_minus"] = False # 解决负号显示问题
# 创建有向图
G = nx.DiGraph()
# 添加节点(机器学习分类)
nodes = [
("数据", "监督学习"),
("数据", "无监督学习"),
("数据", "强化学习"),
("监督学习", "分类"),
("监督学习", "回归"),
("无监督学习", "异常检测"),
("无监督学习", "聚类"),
("无监督学习", "降维"),
("强化学习", "策略学习"),
("强化学习", "价值学习"),
]
# 添加边
G.add_edges_from(nodes)
# 设置节点布局
pos = {
"数据": (3, 4),
"监督学习": (1, 3),
"无监督学习": (3, 3),
"强化学习": (5, 3),
"分类": (0, 2),
"回归": (1, 2),
"异常检测": (2, 2),
"聚类": (3, 2),
"降维": (4, 2),
"策略学习": (5, 2),
"价值学习": (6, 2),
}
# 画图
plt.figure(figsize=(8, 5))
nx.draw(G, pos, with_labels=True, node_size=3000, node_color="lightblue", edge_color="gray", font_size=10, font_family="SimHei")
plt.title("机器学习决策流程图", fontsize=12)
plt.show()
示例输出:
说明
networkx用于画流程图- 结果是一个机器学习分类树
案例 2:让读者猜测身边的机器学习应用
练习题
- 你打开淘宝,为什么推荐的商品和你最近看的商品有关?
- 你收到垃圾邮件,如何判断它是不是垃圾邮件?
- 你的手机解锁时,Face ID 识别的是你的五官还是衣服?
- 你玩游戏时,为什么 AI 变得越来越强?
讲解
- 淘宝使用推荐系统(监督学习)
- 垃圾邮件过滤器用文本分类(监督学习)
- Face ID 用深度学习(监督学习)
- 游戏 AI 通过强化学习变强
总结
✅ 机器学习通过数据学习规律,代替人工编写规则
✅ 监督学习 适用于有标签数据,无监督学习 适用于无标签数据,强化学习 适用于试错优化
✅ 机器学习广泛应用于推荐系统、人脸识别、自动驾驶等领域
接下来,我们进入 “机器学习的基本流程”! 🚀
更多推荐


所有评论(0)