欢迎光临
我们一直在努力

AI 学习之旅 · 阶段二:机器学习

🤖 阶段二:机器学习

第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 运行
  • 打开 colab.research.google.com
  • 新建笔记本
  • 粘贴代码,按 Shift + Enter 运行
  • 测验题目: train_test_split 的作用是什么?

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

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

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

    什么是过拟合?

    生活比喻:

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

    三种状态对比
    状态训练集表现测试集表现说明
    欠拟合 模型太简单,没学会
    刚好 理想状态 ✅
    过拟合 极好(100%) 背下了训练数据 ⚠️
    防止过拟合的 4 种方法
  • 更多数据 — 数据越多,模型越难"背答案"
  • 正则化(Regularization) — 给模型加约束,不让它太复杂
  • 交叉验证 — 多次拆分训练/测试集,确保模型稳定
  • 早停(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 — 训练集准确率高但测试集准确率低,说明可能过拟合了

    赞(0)
    未经允许不得转载:171主机测评 » AI 学习之旅 · 阶段二:机器学习
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址