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