机器学习基础分类
机器学习基础分类
🤖 面试现场回答
面试官您好,关于机器学习的基础分类,行业内主流从 「学习范式(数据标注形式)」和「业务任务目标」 两个核心维度划分,我给您梳理一下核心要点:
按学习范式划分 📚
这是面试最基础的考点,核心区别是训练数据的标注形式、模型的反馈逻辑,整体分类可以用一张图概括:
监督学习 📝
- 核心:训练数据自带「特征 + 标签」,模型学习从输入到输出的映射关系
- 代表算法:线性回归、逻辑回归、决策树、SVM、卷积神经网络
- 典型场景:图片分类、房价预测、垃圾邮件识别
无监督学习 🔍
- 核心:训练数据只有特征没有标签,模型自主挖掘数据的内在结构和分布规律
- 代表算法:K-Means 聚类、PCA 降维、关联规则挖掘
- 典型场景:用户分群、异常流量检测、高维特征压缩
半监督学习 ⚖️
- 核心:用少量标注数据 + 大量无标注数据联合训练,平衡标注成本和模型效果
- 典型方案:伪标签训练、一致性正则化
- 典型场景:医疗影像识别、工业缺陷检测(人工标注成本极高的场景)
强化学习 🎮
- 核心:智能体通过与环境交互,根据奖励反馈不断优化决策策略,没有标准答案
- 代表算法:Q-Learning、DQN、PPO
- 典型场景:自动驾驶、游戏 AI、推荐系统实时策略优化
按核心任务目标划分 🎯
从业务落地视角,最常用的四类任务对比如下:
| 任务类型 | 核心目标 | 输出形式 | 典型算法 | 业务场景 🧩 |
|---|---|---|---|---|
| 分类任务 | 预测样本所属类别 | 离散类别(二分类 / 多分类) | 逻辑回归、随机森林、CNN | 风控评级、人脸验证、垃圾邮件识别 |
| 回归任务 | 预测连续数值结果 | 连续实数 | 线性回归、XGBoost 回归 | 销量预估、房价预测、流量预测 |
| 聚类任务 | 自动划分样本群组 | 样本簇分组 | K-Means、DBSCAN | 用户画像分群、异常流量检测 |
| 降维任务 | 压缩特征保留核心信息 | 低维特征向量 | PCA、t-SNE | 高维数据预处理、数据可视化 |
Java 研发视角的落地补充
我们做 Java 业务开发时,一般不会从零实现算法,核心关注工程落地:
- 轻量场景可以用 Deeplearning4j、OpenCV 等 Java 生态库直接集成
- 复杂大模型通常通过 HTTP/RPC 调用 Python 侧的模型服务(TensorFlow Serving、FastAPI)
- 重点保障模型推理的并发性能、延迟稳定性,以及和业务系统的无缝集成
真实面试模拟
真实面试模拟
面试官 👨💻
“同学你好,我看你简历上写了 AI 项目,那咱们先聊点基础的。机器学习通常分成哪几大类?你用一两句话概括就行,不用紧张。”
候选人 🤓
“好的面试官。我习惯把它分成四大类:监督学习、无监督学习、强化学习,还有一个半监督学习。
它们的核心区别就是‘有没有标准答案’、‘答案长什么样’。我画个小图您看得更清楚:”
面试官 👨💻
“图挺清晰。那咱们掰开揉碎问,先说说监督学习吧。它凭什么叫‘监督’?你给个特接地气的例子。”
候选人 🤓
“监督学习就像学生刷题 —— 每道题后面都标着正确答案。
模型看一堆 (题目, 答案) 的组合,学出规律,再遇到新题就能自己答。
最典型的两件事:
- 分类:判断邮件是垃圾还是正常 📧🗑️
- 回归:预测某个区域的房价具体是多少 💰
常用算法就是:逻辑回归、决策树、XGBoost,还有各种神经网络。”
面试官 👨💻
“那无监督学习呢?没有正确答案它还能学啥?”
候选人 🤓
“没答案的时候,模型就当‘社交达人’,自己找场子里的隐藏结构 👀。
比如:
- 聚类:把用户分成‘高消费土豪组’和‘精打细算组’,不用提前告诉它谁是土豪。
- 降维:几百个特征压成两三个维度,方便画图,顺便去掉噪音。
再生活化一点:去一个陌生 party,谁都不认识,但通过穿着、话题,你自然就把人分成了技术宅、商务人士和吃货团 🍣。”
面试官 👨💻
“你刚提到了聚类,那像 K-Means 你用过吧?简单说说它有什么缺点,怎么应对?”
候选人 🤓
“K-Means 最大的坑就是得自己指定 K 值,而且它假设类簇是圆形的,遇到奇形怪状的数据就抓瞎了。
实际我一般会先用肘部法则看 SSE 曲线选 K,或者拿轮廓系数评优。如果数据形状不规则,就换 DBSCAN,基于密度,还能自动识别噪声点。”
面试官 👨💻
“不错。下面换强化学习,是不是就那种玩游戏、下围棋的?能一句话讲清它和前面两类的本质区别吗?”
候选人 🤓
“本质区别是:没有直接的标准答案,只有远方的奖励。
像训小狗 🐶,你让它‘坐下’,做对了给零食,做错了不给,它慢慢就学会。
强化学习里也一样,智能体在环境里不断试错,动作影响后面能拿多少分。
典型算法就是 Q-Learning、Policy Gradient,用在游戏 AI、推荐系统长期收益优化这些场景。”
面试官 👨💻
“还有个半监督学习,很多人平时提得少。你觉得它主要解决什么痛点?”
候选人 🤓
“痛点就是标注太贵了 💸。比如医疗影像,让医生一张张标要花天价。
半监督学习可以用一小撮有标签数据,带上一大堆无标签数据一起训练,照样能达到不错的精度。
经典方法有自训练、协同训练,有点像‘先让学霸带带学渣,学渣慢慢也能考及格’。”
面试官 👨💻
“讲得挺明白。为了方便我记录,你能不能把这四类整理成一个对比表?”
候选人 🤓
“没问题,我直接列出来:”
| 分类 | 数据“答案” | 干什么 | 代表算法 | 一句话类比 |
|---|---|---|---|---|
| 📊 监督学习 | ✅ 有标签 | 分类、回归 | 逻辑回归、XGBoost | 刷有答案的练习册 |
| 🔍 无监督学习 | ❌ 无标签 | 聚类、降维 | K-Means、PCA | 在聚会里自动分圈子 |
| 🎮 强化学习 | 🔁 环境反馈 | 序列决策 | Q-Learning、PPO | 训狗,用零食换动作 |
| 🧩 半监督学习 | ⚡ 少量有标签 | 分类、回归 | Π-model、图方法 | 学霸带学渣一起做题 |
面试官 👨💻
“好,理论关过了。最后问个偏工程的:你又是 Java 技术栈,如果让你设计一个实时文本分类服务,比如判断用户评论是否有恶意,你会怎么落地?”
候选人 🤓
“我会分三层:
- 1️⃣ 模型层:用 Tribuo 加载训练好的分类模型,或者接一个 Python 微服务提供的 ONNX 模型,Java 这边直接调用。
- 2️⃣ 特征层:文本过来先做分词、去停用词,可以用 HanLP 或结巴的 Java 版。
- 3️⃣ 服务层:用 Spring Boot 起一个 REST API,模型做成单例 Bean,请求来了直接
model.predict(features),返回类别和置信度。
高并发场景可以加本地缓存,毕竟评论的实时性要求高,模型一般不会秒级更新。
这样既守住了 Java 技术栈,又能无缝对接 AI,线上运维也方便。”
面试官 👨💻
“逻辑闭环,落地思路也清晰。今天就到这里,后续有通知 HR 会联系你。”
候选人 🤓
“谢谢面试官,我继续保持学习。” 🚀
