🐸 青蛙编程网
首页 / AI / 机器学习 / 1. 什么是机器学习

什么是机器学习

这是什么:机器学习(Machine Learning,简称 ML) = 让机器从数据里自己学规则,不用人手写。

为什么用:恭喜从 Python 基础 毕业!(懂一点 Pandas 更佳,不影响本章)从这一章起进入正题。传统编程是人写规则,可骗子话术天天变,规则永远写不完,只能让机器从数据里自己学。

如何用:本章拿"判断短信是不是垃圾"当例子,先写传统规则版,再看机器学习怎么从标好的数据里学出同样的判断。

老方法:规则由人来写

比如判断一条短信是不是垃圾短信,传统编程的思路是:程序员想清楚所有规则,写成代码:

# 传统编程:规则由人来写
def is_spam(text):
    bad_words = ["中奖", "贷款", "点击链接"]
    for word in bad_words:
        if word in text:
            return True
    return False

print(is_spam("恭喜您中奖啦,点击链接领取"))
print(is_spam("今晚一起吃饭吗?"))

你会看到:

True
False

问题来了:骗子的话术天天变,规则永远写不完。垃圾短信写得再隐晦一点,is_spam 就失灵了。

新思路:规则由数据来教

机器学习换个玩法:不写规则,而是收集几千条短信,每条都标好"是不是垃圾短信",直接"喂"给算法。算法自己从这些例子中总结规律,生成一个模型(model)——这就是学到的"规则"。

传统编程 机器学习
输入 人写的规则 + 数据 数据 + 答案(例子)
输出 答案 规则(模型)
规则从哪来 人想出来 机器从数据里学出来

新话术出现了?收集新样本重新学一遍,规则自动升级——这就是"学习"的含义。

三种学习方式

按"怎么学",机器学习分三大类:

  1. 监督学习(Supervised Learning):例子带标准答案地学,像刷带答案的题库。垃圾短信识别、房价预测都是它——本系列后面几章的主角
  2. 无监督学习(Unsupervised Learning):例子不带答案,让机器自己找规律分组,比如把用户自动分成"价格敏感型""品牌忠诚型"
  3. 强化学习(Reinforcement Learning):不看书,靠试错加奖惩学,像训练小狗:做对了给零食。下围棋的 AlphaGo 就是这么练出来的

记忆口诀:人写规则是传统,数据教出是学习;带答案叫监督,不带自己分组,试错拿奖励。

动手改

  1. 给 is_spam 再加 3 个黑名单词,体会一下"规则永远写不完"的感觉
  2. 想一个规则根本写不出来的任务(比如"判断照片里是不是猫"),说说难在哪
  3. 把"短视频猜你喜欢""快递地址自动归类""游戏 AI 打排位"和三种学习方式对号入座

下一章:监督学习入门,搞懂特征、标签和"分类 vs 回归" 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。