⚙️ 第十二章 如何让计算机【学习】
📄 一句话概括

机器学习的三大类别,用酒馆老板的账本讲最清楚:监督学习=有老师傅教、无监督学习=自己看客人、强化学习=自己试;而一切的前提是——先把账记清楚。

📝 本节和前面几节的关系

这是本课的第五个专栏(前四个分别在第二章、第六章、第九章、第十一章),也是全书的最后一个。它要回答的是:机器学习的类别,怎么讲给一位常去的酒馆老板听。

一、从老板最关心的问题切入

老板问的一定是最实在的一句:这东西能帮我多卖几瓶酒吗? 那就从他店里的事讲起——别讲算法,讲他每天遇到的麻烦。 他自己就有数据:每天卖了多少、礼拜几、天好不好、来了几桌客人。 这些就是他手里的【学习数据】,只是他还没用来算过什么。

二、三个大类,三件事

监督学习——有老师傅教。 照着旧账学:过去哪天进了多少、卖了多少,答案都在账上。 无监督学习——没人教,自己看。 他会自己发现【周五晚上来的都是同一拨年轻人】。 强化学习——自己试。 今天多进点,卖完了下次就多进,剩了就少进——靠卖得好不好来调整。 三句话对应三类学习,老板一听就懂。

三、监督学习再分两种

监督学习还能再分,也是他一听就明白的两种: 分类——这桌客人会不会加点下酒菜? 答案是一个【是】或【否】。 回归——今晚大概能卖多少瓶? 答案是一个数。 区别只在【答案长什么样】:分类给的是类别,回归给的是数值。

四、用他的账算一笔

拿五个晚上的流水:周一 18 瓶、周二 15 瓶、周三 17 瓶、周四 22 瓶、周五 34 瓶。 五天平均 21.2 瓶;周五 34 瓶,比平均多出六成。 按这个规律估周六:36 瓶左右。 这就是回归:没人告诉它规律,它从五天账里算出来一个数。 顺便提醒他:五天太少——要是碰上节假日,这个估计就不靠谱了。

五、最后说一句他真正该听的话

讲完这些,只留一句最要紧的: 【先有数据,再谈学习】——先把每天卖了多少、礼拜几、天好不好记清楚。 账都没记全,再聪明的算法也只能瞎猜。 这一点和第十二章开头那句是同一件事:机器学到的是数据里的规律,数据不像样,学出来就不像样。

六、动手 Demo:用酒馆的账讲清机器学习的类别

老板只关心一件事:这东西能帮我多卖几瓶酒吗。 那就用他自己的账算一笔。

hist = [("周一", 18), ("周二", 15), ("周三", 17),
        ("周四", 22), ("周五", 34)]
avg = sum(v for _, v in hist) / len(hist)
print("五天平均", avg, "瓶")
print("周五", 34, "瓶,比平均多", (34 - avg) / avg * 100, "%")
print("按这个规律估周六", round(34 * 1.05), "瓶左右")

实跑输出:

--------------------------------------------------------------------
给常去的酒馆的老板讲解机器学习的类别
--------------------------------------------------------------------

老板问的一定是最实在的一句:**这东西能帮我多卖几瓶酒吗?**
  那就从他自己店里的事讲起。

  **机器学习的三个大类,正好用店里三件事讲清:**

  类别           酒馆里的说法                 有没有答案
  ---------------------------------------------------------
  监督学习       有老师傅教:照着旧账学       有
  无监督学习     没人教:自己看客人找规律     没有
  强化学习       自己试:多进点卖完就再进     靠卖得好不好

  **监督学习**再分两种,也是他一听就懂的:
    **分类**——**这桌客人会不会加点下酒菜?**(答案是一个是或否)
    **回归**——**今晚大概能卖多少瓶?**(答案是一个数)

  拿回归算一笔——**老板手里有五天的流水,想估周六的量:**

    周一 18 瓶   周二 15 瓶   周三 17 瓶   周四 22 瓶   周五 34 瓶

    五天平均                21.2 瓶
    周五                    34 瓶
    周五比五天平均多        60.4%
    按这个规律估周六        36 瓶左右

  **这就是回归:没人告诉它规律,它从五天账里算出来一个数。**

  最后说一句老板真正该听的话:
  **【先有数据,再谈学习】——先把每天卖了多少、礼拜几、天好不好记清楚。**
  **账都没记全,再聪明的算法也只能瞎猜。**

实测:五天平均 21.2 瓶;周五 34 瓶,比平均多六成;按规律估周六 36 瓶左右。 这就是回归——没人告诉它规律,它从五天账里算出来一个数。

30 秒实验

  1. 想一想:如果老板只有周一的账,他能不能估计周六。
  2. 把自家一天的开销记上一周,看看能不能找出规律。

常见误区

  1. 把三类学习当成三种难度。它们的差别在【有没有答案可参照】。
  2. 以为算法能弥补数据的缺失。账没记全,再好的算法也只是瞎猜。
自测三问(点开对答案) 1. 三类机器学习分别对应酒馆里的什么事? —— 监督学习照着旧账学、无监督学习自己看客人找规律、强化学习靠今天多进点试试。 2. 分类和回归的区别是什么? —— 答案的形式不同:分类给类别(会不会点下酒菜),回归给数值(能卖多少瓶)。 3. 为什么说【先有数据,再谈学习】? —— 机器学习学的是数据里的规律,数据不准确不完整,学出来的结论也不可靠。

相关笔记