*本文为学习笔记,借鉴各类资料编写,欢迎指正和交流。
一、基础概念与总体流程
1. 机器学习的两种经典定义
-
Arthur Samuel:使计算机无需显式编程即可学习的研究领域。
-
Tom Mitchell:对于任务 T、性能指标 P、经验 E,若程序在 E 下对 T 的 P 随 E 增加而提升,则称该程序从 E 中学习。
2. 学习类型
- 监督学习、无监督学习、半监督学习。
3. 任务类型
- 回归(连续输出)、分类(离散标签)、聚类(无标签分组)。
4. 通用流程 7 步
数据获取 → 特征提取 → 数据预处理 → 数据标准化 → 降维 → 训练模型 → 评估模型。
5. 评估指标
-
回归:MSE、RMSE、R²。
-
分类:Accuracy、Precision、Recall、混淆矩阵、ROC-AUC。
-
聚类:轮廓系数、Calinski-Harabasz(无需真实标签);ARI、AMI、V-measure、FMI(需真实标签)。
二、回归模型与正则化
1. 一元/多元线性回归
ŷ = w x + b; ŷ = w₁x₁ + ... + wₙxₙ + b
2. 最小二乘闭式解
w = (XᵀX)⁻¹Xᵀy
3. 损失函数
J(w,b) = 1/m Σᵢ(ŷᵢ − yᵢ)²
4. 岭回归(L2 正则)
J_Ridge = MSE + α Σⱼ wⱼ²
5. Lasso 回归(L1 正则)
J_Lasso = MSE + α Σⱼ |wⱼ|
6. 多项式回归(升维转线性)
先使用 PolynomialFeatures(degree=d) 将原始特征扩展为 d 阶多项式,再用线性模型求解。
三、分类模型
1. 逻辑回归
-
二分类:h(x)=σ(w·x+b),σ(z)=1/(1+e^(−z))
-
多分类(softmax):P(y=k|x)=e^(wₖ·x)/Σ_c e^(w_c·x) 损失(交叉熵):J=−1/m Σᵢ[yᵢ log h_θ(xᵢ)+(1−yᵢ)log(1−h_θ(xᵢ))]
2. KNN
-
分类:ŷ=mode({yᵢ | xᵢ ∈ N_k(x)})
-
回归:ŷ=1/k Σ_{xᵢ ∈ N_k(x)} yᵢ
-
距离(PPT 列出):闵可夫斯基、曼哈顿(p=1)、欧氏(p=2)、切比雪夫(p→∞)、余弦相似度。
3. 朴素贝叶斯
-
贝叶斯公式:P(y|x)=P(x|y)P(y)/P(x)
-
条件独立:P(x|y)=Πⱼ P(xⱼ|y)
-
高斯 NB 概率密度:P(xⱼ|y)=1/(√(2πσ²ᵧⱼ))exp(−(xⱼ−μᵧⱼ)²/(2σ²ᵧⱼ))
4. SVM
-
硬间隔:max 2/‖w‖ s.t. yᵢ(w·xᵢ+b)≥1
-
软间隔:min ½‖w‖²+CΣξᵢ s.t. yᵢ(w·xᵢ+b)≥1−ξᵢ, ξᵢ≥0
-
核函数(PPT 表格):linear、poly、rbf、sigmoid。
四、信息论与决策树
1. 信息量与熵
I(p)=−log₂ p; H(X)=−Σᵢ pᵢ log₂ pᵢ
2. 条件熵与信息增益
H(Y|X)=Σₓ P(x)H(Y|X=x); Gain(D,A)=H(D)−H(D|A)
3. ID3:选最大信息增益特征划分。
4. C4.5:选最大增益率 GainRatio=Gain/SplitInfo。
5. CART 分类:最小化基尼指数 Gini=1−Σₖ pₖ²。
6. CART 回归:最小化 MSE=1/m Σ(ŷᵢ−yᵢ)²。
五、集成学习
1. Bagging
-
回归:ŷ=1/T Σ ŷ_t
-
分类:ŷ=mode(ŷ_t)
2. 随机森林:在 Bagging 基础上再随机抽特征子集。
3. Boosting
-
AdaBoost:迭代调整样本权重。
-
GBDT:新树拟合残差 r_{t,i}=yᵢ−ŷ_{t−1,i}。
4. 超参数搜索
-
网格搜索:GridSearchCV 暴力遍历。
-
随机搜索:RandomizedSearchCV 随机采样。
六、聚类
1. K-means 目标:min Σ ‖xᵢ−μ_{cᵢ}‖²。
2. 距离(PPT 列出):闵可夫斯基、欧氏、曼哈顿、切比雪夫、余弦、马氏、汉明。
3. DBSCAN
-
ε-邻域:N_ε(x)={x′ | ‖x−x′‖≤ε}
-
核心点:|N_ε(x)|≥MinPts
4. 轮廓系数:s(i)=(b(i)−a(i))/max{a(i),b(i)}。
七、神经网络
1. MLP 结构:输入层 → 若干隐藏层 → 输出层。
2. 激活函数:identity、logistic、tanh、relu。
3. 损失
-
回归:MSE=1/m Σ(ŷᵢ−yᵢ)²
-
分类:交叉熵=−1/m Σᵢ Σₖ y_{ik} log ŷ_{ik}
八、实践指令汇总
-
训练/测试划分:train_test_split(test_size=0.2, shuffle=True)
-
交叉验证:cross_val_score(model, X, y, cv=5)
-
网格搜索:GridSearchCV(estimator, param_grid)
-
随机搜索:RandomizedSearchCV(estimator, param_distributions)
-
标准化:MinMaxScaler、StandardScaler
-
降维:PCA(n_components=r)
-
画树:sklearn.tree.plot_tree(dt, filled=True, feature_names=..., class_names=...)