小时候,爸爸是怎么教你认动物的?

爸爸会指着笼子里的家伙告诉你,这是老虎,身上有条纹;

然后又指着树上的说,那是猴子,尾巴老长。

看多了以后,下次去动物园,就算看到没见过的品种,你也能猜个八九不离十。

这就是机器学习的核心思想:

爸爸给你看的动物是训练数据,他说的名字是标签,你脑子里长出来的判断能力就是模型,你能认出新品那就是预测

所有的学习都得有人教吗?

当然不是。

比如你第一次搬新家,打开衣柜,衣服扔得乱七八糟,没人帮你整理。

你会怎么办?

你可能会自己琢磨:

这几件都是厚外套,归一块儿;

那几件是短袖T恤,放一起;

这些全是运动裤,也堆一起。

没人告诉你该怎么分,是你自己看着像的放一堆。

这就引出了机器学习的两大类别:监督学习无监督学习

监督学习就像爸爸带你逛动物园,有老师有答案,数据带着标签,机器知道对错。

比如,判断快递包裹是不是易碎品,每个包裹事先都标好了,是易碎还是普通。

无监督学习就像你自己收拾衣柜,没老师没答案,数据没标签,机器自己找规律。

比如,把看视频的人分成几拨,机器自己发现哪些人爱好相似。

监督学习是有人教,有标准答案;

无监督学习是自己悟,没有标准答案。

监督学习能干啥

案例1——快递站怎么知道哪个包裹要轻拿轻放

其实是工作人员先收集了几万个包裹,人工标注这个易碎,那个不易碎。

机器从这些标好的包裹里学习。

如果箱子上贴着"玻璃""瓷器"这些字,或者包装上有向上箭头的标识,大概率就是易碎件;

如果发货地是某个工艺品集中地,也要小心。

学完后,新包裹一到,机器就能自己判断要不要贴"轻放"标签。

案例2——外卖预估送达时间

你点了一份奶茶,距离3公里,中午高峰期,下雨天,骑手手上还有两单,你肯定想知道几点能送到?

以前是靠站长凭经验估算,但经验也常有偏差。

机器学习怎么做?它先看历史订单。

比如:

上周一,同样3公里、雨天、午高峰,送了35分钟;

上周三,2公里、晴天、平峰期,送了20分钟……

学完几千单规律后,你刚下单,它就能预测:这次大概需要38分钟。

无监督学习能干啥

案例1——视频平台用户分群

假设你是某短视频平台的运营,手里有800万用户的观看记录,点赞记录、停留时长、关注列表都有。

问题是,这800万人怎么运营?

你跑一遍无监督算法,机器自动发现,用户居然能分成这么几类:

第一类,专看搞笑段子,每天刷两小时,属于纯娱乐型;

第二类,只看知识科普和纪录片,属于学习型;

第三类,天天看美食和做饭视频,应该是生活爱好者;

第四类,刷的都是穿搭和美妆,大概率是时尚人群。

机器自己就把人分好了,不需要你提前说分几类、按什么分。

然后你就可以给不同人群推不同的内容。

案例2——音乐App自动建歌单

某音乐软件曲库里有上千万首歌,不可能靠编辑一首首归类。

这时候用无监督学习,机器自动分析歌曲。

这一批歌里都有强烈的鼓点和吉他,应该是摇滚;

那一批都是钢琴和弦乐,节奏舒缓,应该是轻音乐;

还有一批全是方言说唱,应该是嘻哈类。

整个过程没人教它什么是摇滚、什么是轻音乐,都是它自己听出来的规律。

这就是无监督学习的厉害之处,让机器自己从数据里挖模式。

怎么做一个机器学习项目

数据收集

首先,没数据就没机器学习。

而且,数据质量比数量更重要

假设你想训练一个识别狗的模型,结果你找的照片里,狗全是柯基,那训练出来的模型看到哈士奇就不认识了。

所以数据得够多、够杂、够有代表性。

数据预处理

数据收回来就能直接用吗?

不能。

为啥?

因为真实数据一般都是乱糟糟的。

什么叫乱糟糟?

比如:

外卖订单里有一条记录,配送距离写了0.01公里,这显然不对;

有的重量单位是千克,有的是斤,得统一;

有的订单没填楼层信息,这也不行。

所以这一步要清洗数据,删掉明显瞎填的,处理缺信息的,要么删了,要么补上,把所有数据转成统一的标准。

特征工程

预测外卖送达时间的时候,哪些信息有用?

距离有用、天气有用、时段有用,但骑手的手机号有用吗?

没用,订单编号也没啥用。

所以咱们得挑出对预测有帮助的信息,扔掉那些没用的。

这还不够,有时候还得造新特征。

比如我们有店铺出餐速度和配送距离,能不能组合一下?

比如"每公里所需时间"这个指标,可能比单独的两个数字更有用,因为它能反映这段路到底堵不堵。

训练模型

这一步就是让机器开始学。

你要选个合适的算法,比如线性回归、决策树、随机森林,然后把训练数据喂给它:这是1万单历史数据,你好好学学,看看距离、天气、时段跟配送时间到底啥关系。

机器就开始疯狂计算,不断调整内部参数,试图找到最好的对应关系。

这就像学生刷题,刷得越多,理解越深,考试时发挥越好。

模型评估

模型练完了能直接上线吗?

不能,得先考试。

咱们得留一部分数据不给它看,专门用来测它,这叫测试集

如果考得不好怎么办?

那就回头检查,是不是数据不够?

是的话再去多收点数据。

是不是特征没选好?

是的话重新做特征工程。

是不是算法不合适?

是的话换一个试试。

这就是个不断试错、不断优化的过程。

模型部署

这一步就是把模型放到真实业务里去跑。

比如把外卖预估模型接到点餐App里,用户一下单,系统就实时显示"预计38分钟送达"。

但上线不是结束,而是新的开始。

为什么这么说?

因为路况在变,今天和去年同时段的路况不一样,如果一直用老模型,预测就不准了。所以要持续盯着模型表现,定期拿新订单数据重新训练,这叫模型更新

什么是特征?

简单说,特征就是描述一件事的各种属性,是模型的输入。

预测外卖时间时,距离、天气、时段就是特征;

判断快递时,包装文字、重量、发货地就是特征;

人脸识别时,眼睛大小、鼻子高低、脸型轮廓就是特征。

特征的类型

数值型

能用数字表示的,比如年龄25岁、价格35块、温度30度。

类别型

离散的类别。

比如:

性别,男、女;

城市,北京、广州;

布尔型

是或否。

比如:

是否雨天;

是否VIP;

是否有电梯;

其实,布尔型可以看作特殊的类别型。

什么是标签?

标签就是咱们想预测的结果,是模型的输出。

机器学习里:

预测外卖时间,标签就是"38分钟";

判断快递,标签就是"易碎"或"普通";

诊断疾病,标签就是"健康"或"生病";

需要注意的是,标签只在监督学习里有

什么是模型?

其实它就是一个函数。

啥函数?

从特征到标签的映射函数,数学上写成 y = f(x)。x是输入的特征,y是输出的标签,f就是模型这个映射关系。

模型就像一个送了十年外卖的老骑手,机器学习就是让机器通过大量订单积累这种经验,然后用到新订单上。

不同的算法就是不同的积累经验的方式。

怎么评估模型?

评估就是检验模型好不好,但用啥指标,得看任务类型。

分类任务

比如判断快递是不是易碎,最常用的是准确率,看预测对了多少。

比如100个包裹,你猜对了95个,准确率就是95%。

但有时候光看准确率不够。

比如做疾病筛查,1000个人里只有1个真的有病,模型偷懒,全预测成健康,准确率还有99.9%,但那个真有病的人被漏了,这能行吗?

所以还得看召回率,真正有病的人里,你找出来了多少?

这就是为啥需要多种指标一起看。

回归任务

比如预测外卖时间,常用的是平均绝对误差(MAE),预测时间和真实时间平均差多少?

比如:

预测时间平均误差3分钟,说明还挺靠谱;

如果平均误差20分钟,那就差太远了。

还有,R²系数取值通常在0到1之间,越接近1说明模型越好。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐