先交代一个背景:我最早接触机器学习,不是从MNIST手写数字识别开始的,也不是一上来就撸TensorFlow,而是因为一个特别接地气的需求——预测外卖什么时候能到。那会儿在公司做数据分析,每天午饭时间整个办公室都在等外卖,有人11点下单,12点半还没送到,有人12点下单反而先到。大家开始吐槽某个外卖平台的预估时间不准,而我手里正好攒了三个月的订单数据,就想试试:能不能用机器学习把这件事预测得比平台更准。
这一试,基本就把机器学习从“概念”变成了“工具”。模型本身不复杂,数据量也就几千行,但完整走了一遍从数据清洗、特征工程、模型训练到评估上线的流程,之后再看吴恩达的课程、周志华的《机器学习》,理解速度完全不一样——因为那些抽象名词,每一个都在我自己的数据上见过。这篇文章就把这段经历拆开来讲,从外卖预测这个案例出发,把机器学习最核心的几个概念、最常用的几类算法串起来,适合完全零基础、但想用实际项目来入门的读者。你不需要有深厚的数学背景,能装Python、会看表格,就足够跟上。
1. 决定“先预测什么”:外卖场景里的三类机器学习问题
很多人学机器学习卡住,不是因为算法难,而是因为一开始就扎进数学推导,却不知道自己到底在解决什么问题。实际上,你拿到一个业务场景,第一件事永远不是选模型,而是先搞清楚:这到底是个什么问题。
拿外卖预测来说,同样一堆数据,你问的问题不同,问题的性质就完全不同,后续所有步骤也都不一样。
1.1 配送时长预测:一个典型的回归问题
最直观的问题就是:这单外卖大概多久能送到?我当时的做法是拿历史上的订单记录,把每一单的实际配送时长作为目标值,然后用订单时间、餐馆位置、配送距离、天气、时段、骑手数量这些因素来预测它。这种“预测一个连续数值”的问题,就是回归问题。
回归问题的核心在于,输出是一个实数,我们关心的不只是“准不准”,更关心“偏了多少”——是差2分钟还是差20分钟,损失完全不同。后面选择评估指标时,你会看到为什么回归问题不拿准确率说话,而是拿MAE、RMSE这些误差指标说话。
1.2 是否会晚点:一个二分类问题
同样是外卖数据,换个问法:这单会不会比平台承诺时间晚10分钟以上?这时候输出就变成了“会”或“不会”,只有两个选项,这是二分类问题。
分类问题和回归问题的算法逻辑完全不同:回归是拟合一条线、一个面去逼近数值,分类是画出一条边界把不同类别的样本分开。我记得自己做分类时最容易犯的错,就是拿回归的思路去硬套分类——预测出来一个0.7,就以为“70%会晚点”,这是把“概率”和“类别”搞混了。后面讲到逻辑回归的时候再细说。
1.3 用户选择偏好:一个多分类/推荐问题
再往深一步,如果想知道“这位用户接下来更可能点哪一类外卖”,那就变成了多分类问题,或者带推荐性质的排序问题。这一步比我当时做的前面两个问题复杂得多,但对入门来说,理解了前面的回归和分类,已经足够建立对机器学习的基本体感。
所以你现在应该记住的第一件事是:机器学习项目的起点,永远是定义问题。问题定义错了,后面一切努力都是白费。我自己见过太多入门者,数据还没看明白,就急着把随机森林、XGBoost轮着跑一遍,最后连自己在解决什么类型的问题都说不清。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 特征工程的“点外卖”视角:从原始数据到模型能吃的输入
问题定义清楚了,下一步是把数据变成模型能理解的东西。这一步在机器学习里叫特征工程,说人话就是:把你手上的原始数据,加工成对预测有帮助的“线索”。
我当时手上的原始数据长这样:订单编号、用户ID、餐馆ID、下单
