kNN
- 首先,k近邻是一种监督学习方法;
- 它的基本思路是这样的:
给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个邻居的信息来进行预测。如果是分类问题就用投票发,回归问题就用平均法。 - 它的特点是,没有显式的训练过程,lazy learning的代表
- 影响k近邻效果的两个因素;
- k值的选取,灰常重要,不同的k可能会导致不同的预测结果
- 距离度量方式的选择(前面聚类方法中有提到过常用的距离度量方法)
PCA降维
主成分分析。
从最大可分性的要求进行推导:我们的目标是希望在新空间中的超平面上,样本点的投影尽可能分开,一种数学表达就是投影后的样本点的方差最大化。
假设样本点xixi在新空间的投影为:WTxiWTxi,由于样本已经中心化了,所以投影后的样本点的方差是:∑iWTxixTiW∑iWTxixiTW,于是优化目标就可以写为:
maxWtr(WTXXTW)s.t.WTW=ImaxWtr(WTXXTW)s.t.WTW=I
利用拉格朗日乘子法可得XXTW=λWXXTW=λW
于是只需要对协方差矩阵XXTXXT进行特征值分解,将求得的特征值进行排序,选取前d′d′个特征值对应的特征向量构成W=(w1,w2,…,wd′)W=(w1,w2,…,wd′). 算法流程如下:
- 输入:样本集D,低维空间维数d′d′
- 1.首先对样本进行中心化:xi←xi−1m∑mi=1xixi←xi−1m∑i=1mxi
- 2.计算样本的协方差矩阵XXTXXT
- 3.对协方差矩阵进行特征值分解
- 4.取最大的d′d′个特征值所对应的特征向量
- 输出:投影矩阵W=(w1,w2,…,wd′)W=(w1,w2,…,wd′)
trick:d′d′的设置:用户指定或者通过在d′d′值不同的低维空间中对k近邻分类器进行交叉验证来选取较好的d′d′值。
另外,可以用奇异值分解方法来代替特征值分解