Contents

机器学习

机器学习

模型 损失 策略

分类

逻辑回归 通常二分类

朴素贝叶斯

KNN

决策树

SVM

其核心思想是寻找一个最佳的分离超平面,将不同类别的数据点充分分开

合页损失

核函数在支持向量机和其他机器学习模型中发挥着重要作用,通过隐式地将数据映射到高维空间,从而能够有效地处理非线性可分的问题

通过sklearn.svm.SVC 类来实现。以下是 SVM 主要的参数及其作用:

1. C(惩罚系数)

  • 控制分类的松弛程度。
  • 较大的 C 值会让模型对训练样本进行严格分类,从而减少误分类(即小间隔的硬边界),但可能导致过拟合。
  • 较小的 C 值会增大间隔,使得算法更具泛化性,但可能允许一定的误分类(即软边界)。

2. kernel(核函数类型)

  • SVM 使用核函数将数据映射到高维空间,使得非线性数据可以进行线性分割
  • 常用的核函数包括:
    • linear:线性核,适用于线性可分数据。
    • poly:多项式核,用于更复杂的多项式边界。
    • rbf:径向基核(高斯核),用于大多数非线性问题。
    • sigmoid:S 型核,有时用于神经网络中。
  • 默认值是 rbf

3. degree(多项式核的阶数)

  • 仅在 kernel='poly' 时有效。
  • 指定多项式核的阶数,常见的值为 2 或 3,阶数越高,模型越复杂。

集成模型类:

随机森林

Bagging

AdaBoost

GBDT

XGBoost

回归

https://ster.im/py_sklearn_1/#%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA%E5%9B%9E%E5%BD%92

基础模型:

  • 线性回归(包含岭回归、Lasso回归、弹性网络回归)
  • 树回归
  • 支持向量机回归 SVR
  • K近邻回归

集成模型:

  • 随机森林回归
  • 极端随机树回归
  • AdaBoost回归
  • Gradient Boosting回归

聚类(无监督)

K-means

  • 原理:通过将数据点分配到最近的簇心来形成簇,然后更新簇心,重复这一过程直到收敛。
  • 优点:简单易实现,计算效率高,适用于大规模数据。
  • 缺点:需要预先指定簇的数量 k,对初始簇心敏感,可能会陷入局部最优。

算法伪代码

输入:数据点集 X,簇数量 k
初始化:随机选择 k 个数据点作为初始簇心
重复直到收敛:
1. 对每个数据点 x_i ∈ X:
a. 计算与每个簇心的距离
b. 将 x_i 分配给最近的簇心
2. 对每个簇 j:
a. 更新簇心为属于该簇的所有点的均值
输出:每个数据点的簇分配和最终簇心

Mean Shift

GMM(Gaussian Mixture Model)

降维

PCA与SVD

  • PCA 需要计算数据协方差矩阵 C=m−11​XTX,并找出其特征向量和特征值。而 SVD 将 X 分解为 X=UΣVT 后,矩阵 V 的列就是协方差矩阵 C 的特征向量。
  • 奇异值 Σ 中的每个值的平方,按比例与协方差矩阵的特征值相关联。这表示数据在主成分方向上的方差大小。
  • SVD 是实现 PCA 的一种方法:在实际应用中,PCA 通常使用 SVD 来计算数据的主成分,因为 SVD 更稳定且适用于任意矩阵。
  • 使用 SVD 进行 PCA 时,主成分是由 SVD 中的右奇异向量(矩阵 V)决定的,而奇异值的平方与数据的方差成比例。

离群检测

1. 基于统计的方法

  • Z-Score 方法

    • 通过计算每个数据点的 Z-Score(标准分数)来判断离群点。如果 Z-Score 超过设定的阈值,则认为该点是离群点。

    • 公式:
      Z=σ(X−μ)​
      其中,μ 是均值,σ 是标准差。

      Z=(X−μ)σZ = \frac{(X - \mu)}{\sigma}

      μ\mu

      σ\sigma

  • 箱形图(Box Plot)

    • 通过分析数据的四分位数(Q1, Q3)和四分位距(IQR = Q3 - Q1)来判断离群点。通常,超过 Q1 - 1.5 * IQR 或 Q3 + 1.5 * IQR 的数据点被视为离群点。

from sklearn.covariance import EllipticEnvelope

Elliptic Envelope 是一种基于统计的方法,用于离群检测,特别适用于高维数据的异常点检测。该算法通过拟合一个椭圆形的边界来估计数据的分布,从而识别离群点。