AI 学习之旅 · 阶段二:机器学习
2026/6/25 12:03:04 网站建设 项目流程

🤖 阶段二:机器学习

第1课:机器学习是什么?

核心思想
传统编程 → 人写规则,电脑执行 机器学习 → 电脑自己从数据中学习规则
生活中的机器学习
  • 垃圾邮件过滤
  • 抖音/小红书推荐算法
  • 语音助手(Siri、小爱同学)
  • 人脸识别
机器学习的三种类型
类型说明例子
监督学习有"标准答案"预测房价、识别猫狗
无监督学习没有标准答案,自己找规律用户分群、图片聚类
强化学习通过奖励/惩罚学习AlphaGo、游戏 AI
监督学习的两个主要任务
  • 分类:预测类别(这封邮件是垃圾邮件吗?)
  • 回归:预测数值(这套房子能卖多少钱?)

💡 核心比喻:机器学习 = 拟合函数

你有一堆散点,机器学习帮你画一条最贴合这些点的曲线。 以后来一个新的 x,就能用这条曲线预测 y。

测验答案:B — 用历史房价数据训练模型,预测新房价(有标准答案 = 监督学习)


第2课:第一个机器学习项目

用 sklearn 训练一个判断鸢尾花品种的模型。

完整代码

python

# 1. 导入工具 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # 2. 加载数据 iris = load_iris() X = iris.data # 特征(花的大小数据) y = iris.target # 标签(品种编号:0,1,2) # 3. 拆分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=42 ) # test_size=0.3 → 70%训练,30%测试 # 4. 选择模型并训练 model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train) # 训练! # 5. 预测并评估 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"模型准确率: {accuracy * 100:.1f}%") # 6. 用自己的数据试试 new_flower = [[5.1, 3.5, 1.4, 0.2]] prediction = model.predict(new_flower) print(f"预测品种: {iris.target_names[prediction[0]]}")
代码解读
  • train_test_split:不能把所有数据都用来训练,要留一部分来"闭卷考试"
  • KNeighborsClassifier:看新数据周围最近的 3 个邻居是什么品种,少数服从多数
  • accuracy_score:模型说对了百分之多少
如何在 Google Colab 运行
  1. 打开 colab.research.google.com
  2. 新建笔记本
  3. 粘贴代码,按Shift + Enter运行

测验题目:train_test_split的作用是什么?

  • A. 把数据按行拆成训练和测试两部分 ✅
  • B. 把数据按列拆成特征和标签
  • C. 用来训练模型的主体函数
  • D. 用来评估模型准确率的函数

第3课:过拟合与泛化 ⚠️

这是机器学习最重要的概念,理解了它你就超越了 80% 的初学者。

什么是过拟合?

生活比喻:

小明背下了所有练习题的答案,考试遇到新题就不会了 →过拟合小红理解了解题思路,遇到新题也能做对 →泛化能力强

三种状态对比
状态训练集表现测试集表现说明
欠拟合模型太简单,没学会
刚好理想状态 ✅
过拟合极好(100%)背下了训练数据 ⚠️
防止过拟合的 4 种方法
  1. 更多数据— 数据越多,模型越难"背答案"
  2. 正则化(Regularization)— 给模型加约束,不让它太复杂
  3. 交叉验证— 多次拆分训练/测试集,确保模型稳定
  4. 早停(Early Stopping)— 测试集误差开始上升时立即停止训练
判断口诀
训练集误差 ↓ 测试集误差 ↓ → 泛化能力强 ✅ 训练集误差 ↓ 测试集误差 ↑ → 过拟合!⚠️ 训练集误差 ↑ 测试集误差 ↑ → 欠拟合 ⚠️
代码示例:绘制学习曲线

python

from sklearn.model_selection import learning_curve import matplotlib.pyplot as plt train_sizes, train_scores, val_scores = learning_curve( model, X, y, cv=5 ) # 两条曲线差距很大 → 过拟合 # 两条曲线都很高(误差大) → 欠拟合

测验答案:B — 训练集准确率高但测试集准确率低,说明可能过拟合了

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询