共计 1310 个字符,预计需要花费 4 分钟才能阅读完成。
典型痛点分析
机器学习工程师在模型选型时常陷入以下误区:

- 监督与无监督场景混淆:错误地将 K -means 用于标签数据聚类
- 输出空间理解偏差:对回归任务的连续值输出与分类任务的离散值输出缺乏清晰认知
- 损失函数选择不当:在分类任务中使用 MSE 损失函数等典型错误
数学定义对比
分类模型
数学本质:学习决策边界 $f(x)$ 使得 $P(y|x)$ 最大化
典型损失函数:
$$
J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))]
$$
回归模型
优化目标:最小化预测值与真实值的欧氏距离
$$
\min_\theta\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2
$$
聚类模型
目标函数(以 K -means 为例):
$$
\arg\min_S\sum_{i=1}^k\sum_{x\in S_i}|x-\mu_i|^2
$$
算法实现差异
SVM 分类示例
from sklearn.svm import SVC
# 关键参数说明:# kernel: 决定特征空间变换方式
# C: 正则化系数
clf = SVC(kernel='rbf', C=1.0)
clf.fit(X_train, y_train)
线性回归示例
from sklearn.linear_model import LinearRegression
# 注意特征标准化对回归系数的影响
reg = LinearRegression().fit(X_scaled, y)
K-means 聚类示例
from sklearn.cluster import KMeans
# n_init: 不同初始质心的尝试次数
kmeans = KMeans(n_clusters=3, n_init=10)
kmeans.fit(X)
模型选择决策框架
- 问题定义阶段
- 确认输出空间类型(离散 / 连续)
-
判断标签数据的可用性
-
特征分析阶段
- 连续特征:考虑归一化对距离计算的影响
-
类别特征:采用 one-hot 编码处理
-
算法选择阶段
graph TD A[有标签数据?] -->| 是 | B{输出类型?} A -->| 否 | C[聚类 / 降维] B -->| 离散 | D[分类模型] B -->| 连续 | E[回归模型]
生产环境优化建议
- 分类模型:
- 使用模型校准 (Calibration) 改善概率输出
-
对不平衡数据采用 class_weight 参数
-
回归模型:
- 监控预测值分布偏移(Prediction Drift)
-
建立滚动时间窗口的再训练机制
-
聚类模型:
- 采用肘部法则确定最佳 K 值
- 实现增量学习处理动态数据
开放性问题
-
混合型任务处理:当遇到即需要分类又需要回归的复合任务时(如医疗诊断中既要判断疾病类型又要预测指标值),如何设计多任务学习框架?
-
评估指标陷阱:
- 准确率在样本不平衡时的误导性
- 轮廓系数对聚类密度差异的敏感性
参考文献
- Bishop C M. Pattern recognition and machine learning[M]. Springer, 2006.
- Hastie T, et al. The elements of statistical learning[M]. Springer, 2009.
正文完
