机器学习(Machine Learning, ML)是让计算机从数据中学习,然后在没有明确编程的情况下进行预测或决策的技术。
机器学习的核心思想是:数据 + 算法 = 经验 + 预测能力。
特点 | 传统编程 | 机器学习 |
---|---|---|
规则 | 人工手写规则 | 计算机从数据中学习规则 |
适用范围 | 规则清晰、可枚举的任务 | 规则复杂,难以手写的任务 |
例子 | 计算器、Excel 公式 | 语音识别、推荐系统 |
def is_spam(email):
if "中奖" in email or "免费" in email:
return True
return False
✅ 优点:逻辑清晰
❌ 缺点:如果骗子用“免 费”代替“免费”就无法识别。
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]])
预测一个新人的性别。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_
输出每个新闻属于哪个类别# 这里不写代码,强化学习代码较复杂,我们后续章节再详细介绍
print("强化学习示例后续章节介绍")
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
用于画流程图✅ 机器学习通过数据学习规律,代替人工编写规则
✅ 监督学习 适用于有标签数据,无监督学习 适用于无标签数据,强化学习 适用于试错优化
✅ 机器学习广泛应用于推荐系统、人脸识别、自动驾驶等领域
接下来,我们进入 “机器学习的基本流程”!