AI-Agent 面试题汇总 - 机器学习篇

1. 机器学习中特征的理解

特征(Feature)是样本可量化的属性,是模型输入。特征质量通常决定模型效果上限。常见有数值、类别、文本、时间、统计聚合、交叉特征等。

2. 机器学习中有哪些特征工程方法?

常见方法:缺失值处理、异常值处理、编码、标准化/归一化、特征构造、特征选择、降维。

from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression

num_cols = ["age", "salary"]
cat_cols = ["city", "edu"]

preprocess = ColumnTransformer([
    ("num", Pipeline([
        ("imputer", SimpleImputer(strategy="median")),
        ("scaler", StandardScaler())
    ]), num_cols),
    ("cat", Pipeline([
        ("imputer", SimpleImputer(strategy="most_frequent")),
        ("onehot", OneHotEncoder(handle_unknown="ignore"))
    ]), cat_cols)
])

clf = Pipeline([
    ("prep", preprocess),
    ("model", LogisticRegression(max_iter=200))
])

3. 机器学习中的正负样本

二分类中目标类一般记为正样本(1),非目标类为负样本(0)。当类别不平衡时,常用重采样、类别权重、阈值调优、PR-AUC等方式处理。

4. 线性分类器与非线性分类器的区别及优劣

线性分类器决策边界是超平面,训练快、可解释性好;非线性分类器表达能力强,可拟合复杂边界,但更易过拟合、调参成本更高。

5. 如何解决过拟合问题

可通过增加数据、正则化、降低模型复杂度、交叉验证、早停、集成学习等方式缓解过拟合。

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(
    n_estimators=300,
    max_depth=8,
    min_samples_leaf=5,
    random_state=42
)
scores = cross_val_score(model, X, y, cv=5, scoring="f1")
print(scores.mean())

6. L1 和 L2 正则的区别,如何选择 L1 和 L2 正则

L1 倾向产生稀疏解(可做特征选择);L2 倾向让参数整体变小(更稳定)。高维稀疏场景可优先尝试 L1,通用场景常先试 L2。

from sklearn.linear_model import LogisticRegression

l1_model = LogisticRegression(penalty="l1", solver="liblinear", C=1.0)
l2_model = LogisticRegression(penalty="l2", solver="liblinear", C=1.0)

7. 有监督学习和无监督学习的区别

有监督学习有标签(分类/回归);无监督学习无标签(聚类/降维/异常检测)。

8. 有了解过哪些机器学习算法?

常见:LR、线性回归、SVM、KNN、朴素贝叶斯、决策树、随机森林、GBDT、XGBoost、LightGBM、KMeans、PCA 等。

9. 你对 LR 是怎么理解的?LR 的损失函数是怎样的?

LR 在 (w^Tx+b) 上接 sigmoid 输出概率,常用于二分类,损失函数是交叉熵(对数损失)。

from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(max_iter=200)
lr.fit(X_train, y_train)
proba = lr.predict_proba(X_valid)[:, 1]

10. 二分类模型如何做多分类?

常见方案:OvR(One-vs-Rest)、OvO(One-vs-One)、Softmax 多分类。

from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(multi_class="ovr", max_iter=300)
clf.fit(X_train, y_train)

11. KMeans 算法和 KNN 算法区别?

KMeans 是无监督聚类;KNN 是有监督分类/回归。KMeans 的 K 是簇数,KNN 的 K 是邻居数。

12. 请问 GBDT 和 XGBoost 的区别是什么?

XGBoost 在 GBDT 基础上加入二阶导优化、正则化、列采样、缺失值处理、并行与工程优化,通常更快更稳。

import xgboost as xgb
model = xgb.XGBClassifier(
    n_estimators=300,
    max_depth=6,
    learning_rate=0.05,
    subsample=0.8,
    colsample_bytree=0.8,
    reg_lambda=1.0,
    random_state=42
)
model.fit(X_train, y_train)

13. LR 和 SVM 的联系与区别?

两者都可做线性分类并可加正则;LR 优化 logloss 且可输出概率,SVM 优化 hinge loss 强调最大间隔,原生不直接输出概率。

14. LR 与线性回归的区别与联系?

二者都基于线性组合;线性回归用于连续值预测(MSE),LR 用于分类概率输出(交叉熵)。

15. 为什么 XGBoost 要用泰勒展开,优势在哪里?

通过二阶泰勒展开把目标函数近似为可高效优化形式,利用一阶和二阶信息更准确计算分裂增益与叶子权重,收敛更快。

16. 集成学习介绍下有哪些,讲讲 bagging 的随机是什么?

集成学习包括 Bagging、Boosting、Stacking。Bagging 的随机性主要来自:样本 bootstrap 抽样、特征随机子集(如随机森林)。

from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(
    n_estimators=500,
    bootstrap=True,
    max_features="sqrt",
    random_state=42
)
rf.fit(X_train, y_train)

17. 讲讲分类评估方式都有什么?

常见指标:Accuracy、Precision、Recall、F1、ROC-AUC、PR-AUC、混淆矩阵、LogLoss。

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score

pred = model.predict(X_valid)
proba = model.predict_proba(X_valid)[:, 1]

print("acc:", accuracy_score(y_valid, pred))
print("precision:", precision_score(y_valid, pred))
print("recall:", recall_score(y_valid, pred))
print("f1:", f1_score(y_valid, pred))
print("auc:", roc_auc_score(y_valid, proba))

18. F1 公式讲一讲?

F1 是 Precision 与 Recall 的调和平均:[F1 = \frac{2PR}{P+R}]适合类别不平衡任务。

from sklearn.metrics import f1_score
f1 = f1_score(y_valid, pred)

19. 介绍梯度优化的各种算法,详细的发展历史,优化原因?

典型路线:SGD → Momentum → AdaGrad → RMSProp → Adam/AdamW。目标是提升收敛速度、减小震荡、实现自适应学习率并改善泛化。

20. 用过 XGBoost 吗,原理你了解吗?他是怎么做并行的?

XGBoost 属于梯度提升树框架,逐轮拟合残差方向;并行主要体现在单棵树建树时按特征并行搜索分裂点(而非 boosting 轮次间并行)。

import xgboost as xgb

model = xgb.XGBClassifier(
    n_estimators=400,
    max_depth=5,
    learning_rate=0.05,
    subsample=0.8,
    colsample_bytree=0.8,
    tree_method="hist",
    n_jobs=-1,
    random_state=42
)
model.fit(X_train, y_train)

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
很强啊 大佬面了多少家
点赞 回复 分享
发布于 昨天 23:02 河北
太及时了
点赞 回复 分享
发布于 昨天 22:17 云南
感谢分享 所以 现在算法主要是使用Adam吗?
点赞 回复 分享
发布于 昨天 21:46 黑龙江

相关推荐

继续来分享下之前的面经~强度好大,俺不中咧。。。。1.实习中多智能体系统包含几个智能体?它们之间如何交互?2.意图识别模型需要识别多少个意图?3.750B 模型用于什么场景?4.实习中 Qwen3VL 模型是多少 B 的?用于什么场景?5.在实习中,你主要的贡献是什么?6.检索环节做了哪些优化?7.答案生成环节做了哪些优化?8.是否做了 SFT 或强化学习相关工作?在哪个环节做的?9.SFT 过程中是否对类别标签做了清洗或修正?10.强化学习的样本量是多少?11.基础模型经常分类分不准的案例有哪些?12.在校项目中,为什么用对话数据来增强数据集?13.在校项目任务的输出可以简单描述并举例吗?14.单智能体能否完成在校项目相关工作?为什么要使用多智能体?15.LangGraph 相对其他开源智能体编排工具的优点是什么?16.在现有场景中是否需要用到 LangGraph 的状态管理功能?17.如何理解 Long-term Memory 的实现方式?18.若将电商场景中用户的购买、点击、兴趣等信息设计为长期记忆,有什么想法?19.Context Window 能否储存大量电商交互信息?如何解决存储问题?20.推理时若将大量 Memory 以 Token 形式给到大模型,Token 长度过长该如何处理?21.强化学习有哪些常用技巧?22.若通过 SFT 进一步提升模型准确率,常用的手段有哪些?23.SFT 的理想数据量是多少?如何确定?24.SFT 数据分布一般怎么取?为什么选择该分布而非其他分布?
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务