单元二
第9课 猜明天图书馆借几本——平均值预测

一、任务目标
根据前几天借阅量,用平均值猜下一天。
二、知识点短列表
- 预测:根据历史猜未来数值或类别。
- 平均值法:用过去的典型水平代表下一步。
- 「sum」 得平均;「round」 取整。
- 函数名 「predict_」 提醒这是预测接口。
- 预测不是命令:人主决定是否采纳。
- 「len」 不能为 0,否则除法无意义;本课默认至少 1 天记录。
- 「round」 按四舍五入取整,便于按“本”统计;需要小数时再改接口。
三、机器学习在说什么
有监督不只做分类,也做预测(回归味任务)。小学用平均值,是因为公式透明:每一步你都算得清。复杂模型以后可能更好,但“先有可解释的基线”永远有用。
历史列表是数据;平均是算法;算出的整数是预测值。若某天开运动会借阅暴跌,平均值会偏——所以要结合常识检验,不能无脑执行。
与分类的联系:都是“从例子到输出”;差别是输出是类别名还是数字。接口思维一致:输入历史,返回预测。
平均值法的局限要讲清:它假设“明天和最近几天差不多”。若明天是开放日、运动会或寒潮,历史均值可能失效——所以预测值旁边必须留人的判断栏。本课程原则里的“人主决定”,在数值预测上特别具体:数字是建议,排班是决定。
计算细节:「sum/len」 得到小数,「round」 变成整数本,便于图书馆统计。检查题用常数列与等差列,是为了让你口算也能验算,避免“函数会跑但算理不懂”。
四、相关积木怎么用
- 「history」:历史数字列表。
- 「return round」。
- 迷你例子:函数「predict_next」 → 10;「[2,4,6]」 → 4。
走查:输入 函数「predict_next」 → 输出 4,因为 (2+4+6)/3=4,round 后仍是 4。输入 「[10,10,10]」 → 输出 10,常数列的均值就是该常数。
空列表不能除:本课默认 history 至少 1 天。若遇到空表,应先报错或提示补数据,而不是让程序崩溃后假装有预测。
与分类对照:分类输出类别名,predict_next 输出数字;二者都是“从例子到输出”,接口思维一致。
检查锚点:[10,10,10]→10、[2,4,6]→4。运动会日在结果旁写人工调整说明。
想一想:history=[8,8,8,20] 时,均值是多少?round 后 predict_next 应返回几?
预测报告模板:历史天数=×;均值=×;round 后=×;是否含异常日=是/否;人的决定=采纳/下调/重算。五栏填完才把数字交给管理员。predict_next 只填前三项,后两项必须人写——这就是人主决定在数值预测上的落点。
边界:只有 1 天历史时均值等于该天;含异常高点时要报告“含/不含”两种结果给人选。对 [10,12,11,13] 与 [2,4,6] 先口算再跑函数,口算不过关不点检查。
要点串讲:预测根据历史猜未来;平均值法透明可验算;predict_next 用 sum/len/round;结果必须结合常识由人决定是否采纳。本课过关标准:能解释为何开放日可能让均值失效,并仍正确实现函数。加练:对 [8,8,8,20] 先口算均值再 round,讨论异常高的一天如何影响预测,要不要人工剔除。
五、操作步骤
六、解题思路
任务:根据前几天借阅量,用平均值猜下一天。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。
本课主要用到:屏幕输出。
- 1明确任务「根据前几天借阅量,用平均值猜下一天。」:运行后你希望看到什么结果(文字、图形或计算结果)。
- 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
- 3把可复用的一段动作做成函数,主程序里调用它。
- 4对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。
流程示意(可对照左侧文字)
七、图形块功能讲解
本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。
即时验算:[10,10,10]→10;[2,4,6]→4;[10,12,11,13] 和 46 均值 11.5 round 得 12。若明天运动会,在预测旁写“可能偏低/需人工调整”,体现人主决定。均值法是基线不是神谕。round 后才交整数本。历史至少一天,切勿对空的历史表做除法。
异常日处理流程:标出异常值→算含异常均值→算剔除后均值→两人讨论采用哪一个→记录理由。predict_next 可以跑两次不同 history,但选用哪次结果必须写进人的决定栏,不能只交一个数。
八、课堂练习
先完成两道正误判断,再做其余题目;选出后点「检查」。
判断:无视历史数据随口猜;或把预测值当成必须执行的命令。
判断:用平均值给出可解释预测;结合常识检验后由人决定。
判断:预测结果也要检验,人决定采不采纳。
判断:平均值法是小学可用的最小预测模型。
判断:预测值等于命令,必须无条件执行。
选择:用历史数据猜明天借阅量 →
判断:history 为空时直接除法也没问题。
九、知识点讲解
- 能用自己的话复述:输入是什么、按什么规则变、输出应怎样。
- 练习时改一处、看一处,确认现象和概念对得上。
先弄清本课输入与输出,再进编程练习对照现象。
十、编程练习
用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。
参考代码(对照抄写到下方 Mixly)
def predict_next(history):
return round(sum(history) / len(history))
print(predict_next([10, 12, 11, 13]))
正在载入编程环境
正在载入 Mixly 图形化编程环境…
十一、本节小结
你现在能实现 predict_next:用 sum/len/round 从历史列表得到整数预测,并结合常识决定是否采纳。口算与函数必须同值;[10,10,10]与[2,4,6]锚点要会;异常日要双结果报告;预测旁必留人的决定栏;空历史不能除。build_model 与 「模型预测」 闭合字典模型闭环。