test/机器学习.md

116 lines
12 KiB
Markdown
Raw Normal View History

2025-06-10 06:40:23 +00:00
### Entropy
- 条件熵 $H(Y|X):= \sum_j p(x_j) H(Y|X=x_j)$
- 信息增益 (information gain) 或者互信息 (mutual information): $g(Y,X):= H(Y)-H(Y|X)=\sum p(x_i, y_j) \log\frac{p(x_i, y_j)}{p(x_i)p(y_j)}$
- 信息增益比 (information gain ratio): $g_R(Y,X):= \frac{g(Y,X)}{H(X)}$
- $H(Y)\leq log(n)$
- $H(Y|Y)=0$
- 如果X与Y无关$H(Y|X)=H(Y)$
- $g(Y,X)=H(Y)+H(X)-H(X,Y)$
- $H(Y|X)=H(X,Y)-H(X)$
- 交叉熵 (cross entropy): $H(p,q)=\sum -p(x_i) \log q(x_i)$
- 相对熵 (relative entropy) 或者 KL 散度 (Kullback-Leibler divergence, KLD): $D_{KL}(p||q):=H(p,q)-H(p)= \sum -p(x_i)\log \frac{q(x_i)}{p(x_i)}$
- $g(X,Y)=D_{KL}(p(x,y)||p(x)p(y))$
2025-06-10 06:42:17 +00:00
- JS 散度:$JS:=1/2 ( D_{KL}(p||m) + D_{KL}(q||m) )$, 这里$m=(p+q)/2$ 。p和q支撑集不相交时JS 散度为一个常数 log2
2025-06-10 06:40:23 +00:00
- 最小化交叉熵=最小化KL=极大似然
### Bias-Variance tradeoff
- 通常“复杂”的模型(增加参数;增加特征等)有较小的 Bias 但会带来较高的 Variance. 可通过像boosting等手段来降低 Bias
- 通常“简单”的模型(减少参数;减少特征等)有较小的 Variance 但会带来较高的 Bias. 可通过增加样本bagging等手段来降低 Variance.
### 分类器性能指标
- 正确分类的比率 $Acc=\frac{TP+TN}{TP+TN+FP+FN}$
- 正预测中被分对的比率 $Pre=\frac{TP}{TP+FP}$
- 召回率 (recall) 也叫灵敏度 (sensitive) 或者 True Postive Rate(TPR), 正样本中被分对的比率, $Rec=TPR=\frac{TP}{TP+FN=P}$
- 特效度 (specificity) 负样本中被分对的比率 $Spe=\frac{TN}{FP+TN=N}$
- False Postive Rate 负样本中被分错的比率 $FPR=\frac{FP}{FP+TN=N}=1-Spe$
- 正负样本不平衡的情况下,高准确率不一定代表好的分类。比如正样本只有 1 个,实际的例子就是预测地震,每次都预测不地震。
- F-Measure 又称 F-Score: $F=\frac{\alpha^2+1}{\alpha^2}\frac{1}{1/Pre+1/Rec}$
- 计算 Phi coefficient , 可得 Matthews correlation coefficient (MCC)
- ROC (Receiver operating characteristic) 曲线FPR vs TPR
- PR (precision recall) 曲线Pre vs Rec
- TPR = FPR, 它意味着无论一个样本本身是正还是负,分类器预测其为正的概率是一样的,这等同于随机猜测
- 正样本集合中正负样本的比例大幅变化时ROC 曲线并不会产生过大的变化; 使PR 曲线发生巨大变化;
- 比例不平衡有大量负样本时,会产生大量错误的正预测 (FP)。ROC曲线变化不明显而给出错误的乐观估计但精确率则会因为FP变化大幅下降使PR曲线下降明显而给出正确估计。我认不平衡导致TP显得过少FP显得过多
- 考虑阙值分析的,我们使用 ROC 或者 PR分布不平衡的我们使用 F-Score 或者 PR
- 这些指标只能用来衡量分类性能,不能训练分类器的参数。
### 聚类
2025-06-10 06:42:49 +00:00
- 聚合 (agglomerative) 或自下而上 (bottom-up) 聚类1. 构造 N 个类每个类只包含一个样本2. 合并类间距离最小的两个类3. 计算新类与当前各类的距离重复以上步骤,直到类的个数达到阙值。复杂度是 $O(N^3m)$: $\sum_{i=1}^N i^2$ 再乘以维度m.
2025-06-10 06:40:23 +00:00
- 分裂聚类自上而下1.将所有数据点视为一个聚类。2.选择一个聚类进行分裂。3. 将所选聚类分裂为两个或多个子聚类。4.用新子聚类更新聚类集合。5. 重复对子聚类重复步骤2-4。6.达到预定条件(如聚类数目或质量标准)后停止
- k-means: 最小化类内方差也叫类内平方和
- Lloyd 算法1. 初始化令 t = 0 选择 k 个样本点作为初始聚类中心; 2. 根据上一步的中心进行聚类E步3. 重新计算步骤2的中心M步。 缺点:不平衡即不同类中样本的数量差异很大
- Hartigan-Wong 算法1. 随机分配所有的点到 k 个类上,计算 k 个类的中心。2. 随机选择一个点移出所属类重新计算类中心。3. 把移出的点重新分配到其距离最近的中心点的类上,其中距离函数中乘以了加权系数$\frac{类的元素个数}{类的元素个数+1}$,使得算法更倾向于把样本分配给样本数量较少的类
- MacQueen算法在线更新算法只需一次迭代1. 选取头 k 个点作为类中心。2. 依次把下一个点分配到当前类中,更新该类的中心。直到所有的点分配完毕。
- k-medians把平方距离(L2)改为绝对值距离 (L1)时,中心也由平均值变成了中位数。
- The Elbow Method当聚类个数超过某个值时能量减少明显变缓。
- kmeans缺点和解决方案
- 容易局部收敛在大规模数据集上求解较慢CLARA, CLARANS
- 离群点和噪声点非常敏感k-medoids, PAM, DBSCAN
- 初始聚类中心选取敏感1. 层次聚类选初值2. k-mean++
- 划分聚类像球型GMM
- k-means++: 思想是使初始中心之间的相互距离尽可能远。1. 从样本集中随机选取一个作为中心2. 对于每个剩余的数据点,计算它到已选择的聚类中心的“距离”; 3. 从剩余的数据点选一个作为新的中心点根据2中的“距离”选取距离远概率大。4. 选出k个中心后再k-means。
- kmedoids: 不计算中心,而是按准则函数选取类中成员 (medoids) 作为“中心”来代表这个类。
- k-medoids一种实现方式Partitioning Around Medoids(PAM)。通过不停对换中心来实现。1. 任意选取 k个点作为中心; 2. 将剩余点聚类到中心3. 随机地选一非中心点替换中心点,如果损失减少,则交换; 4.重复直到总的损失不变
- CLARA (Clustering LARge Applications): 应用于大规模数据。思想为每次随机抽取一小部分样本进行PAM。 1. 几次PAM后得到几组中心2. 对每一组中心将剩余点分配到距离最近的中心所代表的类中计算绝对误差。3. 选取绝对误差最小的那组中心。
- CLARANS: 在 CLARA 确定中心之后类似PAM 中的方法,不停对换中心。
- Density-based spatial clustering of applications with noise DBSCAN 1. 按照核心点、边界点、噪声点标记2. 删除噪声点3. 把距离小于ϵ的核心点两两连在一起连通集形成一个聚类4. 将边界点指派到关联的核心点的聚类中。
- 优点:所有形状的聚类尤其是非凸集;不需指定簇的个数;噪音不敏感,可发现异常点;初始值无影响。
- 缺点:如果密度不均匀、聚类间距差相差很大时,聚类质量较差;计算效率低。
- 高斯混合模型聚类: 假设每个点以一定概率被分配到一个类中,高斯分布可做椭圆划分。
### 采样
- 任意离散随机变量采样利用均匀分布采样和Cumulative Distribution Function简称CDF
- 用 rand()% M 产生 rand()% Nrand()% M * rand()% M 产生 M*M; 然后用拒绝采样就近采样 N 的倍数
- 正态随机变量采样: Box-Muller法
- 从 $U(0,1)$ 中抽取两个独立随机数 $u_1$ 和 $u_2$。
- 使用以下公式生成两个独立的标准正态随机变量 $Z_1$和 $Z_2$
$$Z_1 = \sqrt{-2 \ln(u_1)} \cos(2\pi u_2) \\
Z_2 = \sqrt{-2 \ln(u_1)} \sin(2\pi u_2) $$
- 重要性抽样思想是从一个容易采样的提案分布中抽取样本然后通过权重调整来估计目标分布下函数f的期望值。q 的选取要接近 p否则就需要大量的采样才能收敛
- 舍选法或接受-拒绝抽样法 (accept-reject sampling method) :通过均匀分布采样大于某阈值选择或舍弃某次采样。建议分布一定比目标分布有更粗的尾。接受一个建议样本的次数 $N G(\frac{1}{M})$
- π 称为平稳分布 (Stationary distribution)如果 $π^T = π^T Q$ 。
- MCMC采样下面 $\alpha= \min(1, \frac{p(j)q(i|j)}{p(i)q(j|i)})$
- 当t步时xt, 用概率分布 q(x|xt) 产生样本$x_{t+1}$;
- 产生均匀分布 u Uniform(0, 1);
- 如果 $u < α(x_t, x_{t+1})$ $x_{t+1}$; 否则$x_{t}$.
- 建议分布
- Metropolis 选择q(y|x) = q(x|y)
- 独立抽样q(y|x) = q(y)
- 随机游走y = x + ϵ . 参数过大则会导致拒绝率大过小时有非常高的接受率但产生的状态列自相关性太强导致收敛速度太慢。可解释为大自相关使MC均值的估计方差变大
- 建议分布的选取几个标准Heavy Tails; 和目标分布一样的支撑集;如果目标分布时多峰值时,应该使用高斯混合模型。
- Gibbs迭代地更新多变量分布中每个维度的样本在其他维度的当前值条件下来近似复杂多维概率分布。
### PCA
- $A^T Cov(X)A= diag(\lambda_1,...,\lambda_m)$, A是$m\times m$正交矩阵将随机向量X变换为互相无关的随机向量Y
- X任何的单位向量线性组合=Y的单位向量线性组合。这个线性组合的方差就是特征根的加权平均所以一定小于最大特征根
- 如果存在几个相关性很高的特征,比如某特征复制若干遍,则会出现一个主成分的方差异常高于其他的主成分,错误的认为只有一个主成分。一般情况下保留高相关性的特征,除非数量非常庞大显著影响到其他主成分
- 选几个主成分k一般由贡献率η来决定η=前k个特征的和/全部的和
- 样本矩阵$X_{N×m}$其中N为样本个数m为特征个数。样本协方差和样本相关矩阵都是无偏估计。样本协方特征根和特征向量是 Cov(X) 的特征值和特征向量的MLE
- $X=X\alpha_1\alpha_1^T+...+X\alpha_m\alpha_m^T=$
- 与回归类似,加入新的特征,新第一主成分的方差(特征根)一定不会减少
- PCA需要标准化预处理方差大的特征相较于小的数据获得更高的权重这样会导致它们不合常理的干涉第 1 主成分的变化。
- 最小平方误差理解 PCA: 前 k 个主成分$\alpha_1...\alpha_k$为 k-维超平面使得为样本点到超平面平方距离和最小。这是一个降维的过程也是编码解码的过程,可以推广到非线性降维即自编码器
- 可以考虑两个空间来思考PCA和回归问题样本点所在的空间dim=m随机向量空间当dim=N样本PCA的时候或无穷总体PCA的时候
- 主成分回归 (principal component regression, PCR)使用PCA降维后再做Multiple Linear Regression
- PCR可以用来消除线性规划中的多重共线性问题小特征根会加大估计的方差使得特征对输入变化非常敏感。
- PCR 先考虑了X的方差然后再考虑新特征与Y之间的相关性这与同时考虑最大化X的方差和与Y的相关性不同。PCR不是PLSR dim y = 1的特殊情形
- PCA异常值检验
- 方差得分:考察某异常点往各个主成分上投影的(加权除以$\lambda_i$)平方和。这里$\lambda_i$使得各个特征向量之间有可比性。也可以选择前r个或者在后r个特征上的得分。
- 重构误差:=前k个特征向量的重构误差的加权平均
2025-06-10 06:43:56 +00:00
- 奇异值分解 (SVD) $A_{m\times n}=U_{m\times m}\Sigma_{m\times n} V_{n\times n}^T$ 这里U和V正交矩阵$\Sigma=diag(1,...,1,0,...)$
2025-06-10 06:40:23 +00:00
- 紧奇异值分解 (compact singular value decomposition)等号;截断奇异值分解 (truncated singular value decomposition)约等于
- 线性判别分析(Linear Discriminant Analysis, LDA)是有监督的降维方法。思想是将每个类的样本点投影到低维超平面上使得类内方差最小,类外方差最大即使得降维后类间的分隔尽可能的大
- $S_w$类内散度矩阵 (within-class scatter matrix)(也就是样本协方差矩阵m × m):类内样本协方差矩阵,再对类求和
- $S_t$全局散度:所有样本协方差
- $S_b$类间散度矩阵 (between-class scatter matrix) $$S_t-S_w=\sum |C_i| (\mu_i-\mu)(\mu_i-\mu)^T$$
- LDA就是最大化 $max_W \frac{W^TS_bW}{W^TS_wW}$求对角线元素乘积;这里$S_b$秩最多k 1也就是说非零特征根最多k 1个所以最大的投影超平面为 k 1维
- PCA 和 LDA 不同点1有无监督2维数不能超过类别数3 LDA过分依赖类的中心所以当类中心比较接近而依靠方差来分类时PCA投影后分类效果优于LDA
- 稀疏编码:寻找一组过完备(overcomplete)的基向量基向量个数远大于dim x$A = [a_1, · · · , a_M]$来表示样本$x=Ah$,这里$h$稀疏