K平均クラスター(K-クラスタリング手段)
1、アルゴリズムのアイデア:
アルゴリズムは、2つのステップ、クラスタ割当及びモビリティクラスタ中心に分割されます。
各サイクルにおいて、最初のステップは、以下に示すように、クラスタは、異なるクラスタに割り当てられた中心に近いそれによれば、すなわちサンプルを通過する、割り当てをクラスタ化することです。
分類を決定した後、モバイルクラスタセンタースタックの平均点に基づいて、以下に示すように、
以下に示すように、新たなクラスタ中心のクラスタの割り当てに応じて、再び実行されます。
このサイクルは、クラスタリングが変化しなくなるまで、「収束」と呼ぶことができます。
図2に示すように、変数が表します。
クラスタ数:K
トレーニングセット:{X (1)、X (2)、...、X (M) } X (I)の n次元ベクトルであり、追加のアドオンX以来0。
3、このアルゴリズムは、言いました:
4、最適化の目的(目的関数):
5、ランダム初期化(ランダム初期化):
それはK <Mを必要とします。
Kは、ランダムにクラスタ中心として学習サンプルを選択しました。
マイクロセット。1、...、マイクロKは、これらのサンプルの値に等しい、すなわち、μ I = X I。
局所最適があるかもしれません。
対応する方法:いくつかは、ランダムに初期化され、次のように、選択する方法の最小コスト:
6、クラスタ数を選択します。
(1)方法:肘法(ルール肘):Kの値が変更され、コスト関数Jを算出し、即ち下降速度の転換点の値を代入し、エルボ点選択の曲線に対応する曲線をプロットしました。
この方法は、一般的に、コスト値を使用していない下落率と非常によく似ていることが多いエルボ点を区別することは困難です。
(2)方法2:クラスタの異なる数で提供された結果に基づいて、賛否両論。
次元削減(次元削減)
1、次元削減アプリケーション:
(1)の適用:データ圧縮を
高次元データを低次元データにマッピングされます。
如2维数据映射到一条直线上:
如3维数据映射到一个平面上:
(2)应用二:数据可视化
由于数据只能通过二维或者三维进行可视化,更高维度的数据需要进行压缩处理.
如遇到50维的特征,需要找出一种压缩方法,表示成2维的向量,再进行2D图像的绘制.
2、Principal Component Analysis(主成分分析法 PCA):
(1)问题定义:寻找一组向量,定义一个低维的空间,使得投影误差的平方和达到最小值。
(2)与线性回归的区别:
线性回归:最小化预测值与样本值之间的距离,即 y 的差值;
PCA:最小化样本值和低维空间的距离,即垂线的长度;
(3)算法流程:
① 数据初始化:对于训练集 {x(1), x(2), ..., x(m)} 进行特征缩放和均值归一化:
计算 μ:;
替换 x:xj(i) = xj - μj,使得所有特征的均值为0;
除以sj:sj 可以用最大最小值或者标准差表示,xj(i) = (xj - μj) / sj .
② PCA算法:将 n 维降低到 k 维
计算协方差矩阵(covariance matrix),记作sigma矩阵:,规格为 n*n;
使用svd(singular value decomposition 奇异值分解)函数计算sigma矩阵的特征向量(eigenvector):
其中 U 也为 n*n, U的前 k 列即为所求的k个向量,记作 Ureduce ,即规格为 n*k;;
将获得的 k 列特征向量转置成行向量,计算 Z = UreduceT*X,由于 X 的规格为 n*m,Z 的规格为 k*m;
③ 总结:
什么是协方差矩阵?【传送门】
3、Reconstruction from compressed representation(原始数据重构):
压缩矩阵求法:Z = UreduceT*X
数据重构求法:Xapprox = Ureduce*Z
Xapprox 的每一个点都是原X值的近似点。
4、选择主成分的数量:
(1)概念:
Average squared projection error(平均平方映射误差):PCA最小化的量;
Total variation(总变差):每一个训练样本长度的平均值(平均来看训练样本距离零向量有多元);
Average squared projection error =
Total variation =
选择的k值要满足:(即保留99%的差异性,通常保留95%以上的差异性)
(2)算法流程:
(3)代码实现:
其中 S 是一个只有主对角线非零的 n*n 矩阵,其主对角线为[S11, S22, ..., Snn].
5、在监督学习中使用PCA提高算法的速度:
① 数据集 {(x(1), y(1)), (x(2), y(2)), ..., (x(m), y(m))},每一个数据 x 是10000维向量;
② 提取出 X,视为不带标签的训练集,即无监督学习,使用PCA算法,转为1000维;
③ 得到新的数据集 {(z(1), y(1)), (z(2), y(2)), ..., (z(m), y(m))}