参考:https://github.com/apachecn/vt-cs4624-pyml-zh/blob/master/docs/18.md
聚类
介绍:使用无标注数据,将相似数据分组,同时隔离不相似数据。注意,与分类不同的是,聚类用于识别数据集中的潜在组,分类用于将输入与现有组匹配。简单的说,聚类前没有已知类别,分组前已知需要的类别。
如何理解潜在组:如用户群体聚类。用户特征很多,可以是xx岁的xx月薪的xx职业。事先不好提出一个可能的类别。因此用聚类,自动将相似用户特征聚集在一起,观察有颜色的plt图就可以粗略发现哪些特征聚在一起,有关联。
常见方法:
- K-均值:找群集中心点
图解见参考
1、为每个群集(随机)选择一个中心点。
2、测量一个数据点与每个中心点之间的距离,选择距离最近的中心点
3、重新计算每个群集的中心点,即属于一个群集的平均值。
4、重复2和3.直到中心点不再明显变化。
特点:要求我们输入并非总是容易确定的期望聚类数。聚类会被起点影响。强大在于每一步都在考虑整个数据集,速度也快。 - 层次:找群集最大间距
图解见参考
1、将所有数据点看做一个群集
2、增加一个群集数,聚类标准是群集间间距最大
3、重复2,直到我们满意
4、从整到零,称为分裂群集。从零到整,称为聚集群集。
特点:比K-means慢;但是不需要确定中心点位置和数量,结果更一致(没有参数可调,运行结果不变)。
主成分分析PCA
介绍:主成分分析(Principal Component Analysis)用于获取大量互连变量并选择最适合模型的技术。变量很多,仅关注几个重要变量的过程称为降维。从根本上,PCA分析并总结了数据。
应用
- 给出数据的整体线性独立趋势,当变量过多时很有用。
- 显示,仅用几个变量代表整体数据。
降维类型
- 特征消除:修剪不需要的特征,缺点是会丢失被删除特征中的潜在信息
- 特征提取:组合现有特征,生成新特征
断网,写了一下午的PCA计算没了!一切重新,一切从简。。
PCA计算、简单推导
简单理想型二维数据降一维:
x | y | |
---|---|---|
a | 5 | 5 |
b | -2 | -2 |
此时a、b在同一直线上,是理性状态
1、求特征平均值,特征中心化;
2、求方差、协方差(这里可以不求)
3、绕原点旋转坐标轴,使a、b落在坐标轴上。则y值全为0,分类与y值无关。而x值由勾股定理计算得。
简单非理想型二维数据降一维:
x | y | |
---|---|---|
a | 5 | -3 |
b | -2 | 7 |
c | -4 | 6 |
此时点不在同一直线上。无法将点都挪到坐标轴。只能尽量使它们都靠近坐标轴。
1、中心化;
2、用正交基表示数据点。a = x * e1 + y * e2 = 5 * e1 + (-3)*e2;
3、旋转坐标轴,基于a离原点距离不变原则,x、y随之改变,变化成反比;
4、找到一个位置,使所有点的x最大,y最小。
PCA
1、按列看,获得特征X、Y
2、组成协方差矩阵
Q
=
(
V
a
r
(
x
)
C
o
v
(
X
,
Y
)
C
o
v
(
X
,
Y
)
V
a
r
(
Y
)
)
=
1
n
(
X
X
X
Y
X
Y
Y
Y
)
Q={Var(x)\ \ \ \ \ Cov(X,Y)\choose Cov(X,Y)\ \ \ \ \ Var(Y)}={1\over n}{XX\ \ \ \ \ XY\choose XY\ \ \ \ \ YY}
Q=(Cov(X,Y) Var(Y)Var(x) Cov(X,Y))=n1(XY YYXX XY)
3、对Q进行奇异分解得到
Q
=
1
n
P
=
U
∑
U
T
Q={1\over n}P=U\sum U^T
Q=n1P=U∑UT
4、在U中的两列奇异向量,e1,e2。这里保留X特征,假设为e1能令X特征较大化,e2使Y特征变很小。
5、最后重新计算特征数值。对于a:X1=a * e1; X2=a * e2
6、最后X特征比Y特征大很多,Y特征接近0。
PCA的为了消除特征,会使其他特征远离0,要消除的特征接近0。在非理想情况下,远离的距离由最小二乘法计算。经过最小二乘法计算推导,得出最终算式是二次型。二次型进一步计算,将求最小二乘法的最大值问题,转化为求最大奇异值对应的奇异向量的问题。具体推导见推导挑转(主元分析(PCA)),看前需要一定线性代数知识。