1. scikit-learn流形學習庫概述
在scikit-learn中,流形學習庫在sklearn.manifold包中。里面實現(xiàn)的流形學習算法有:
1)多維尺度變換MDS算法:這個對應的類是MDS。MDS算法希望在降維時在高維里樣本之間的歐式距離關系在低維可以得到保留。由于降維時它需要考慮了樣本的全局歐式距離關系,因此降維計算量很大,現(xiàn)在一般較少使用了。
2)等距映射ISOMAP算法:這個對應的類是Isomap。 ISOMAP算法使用了樣本間的測地距離來代替歐式距離,此外基本和MDS算法相同。由于降維時它仍然需要考慮了樣本的全局測地距離關系,因此降維計算量很大。
3)局部線性嵌入LLE算法:這個對應的類是LocallyLinearEmbedding。這個就是我們LLE原理篇里面的算法、除了包含我們原理篇里講到的標準的LLE實現(xiàn)以外,它還支持改進版的LLE算法,包括MLLE,HLLE和LTSA。這三個算法我們在原理篇的第五節(jié)有介紹。后面我們會詳細講這個類的參數(shù)使用。
4)拉普拉斯特征映射LE算法:這個對應的類是SpectralEmbedding。這個算法使用了圖論的方法,用樣本構成的無向圖對應的拉普拉斯矩陣作特征分解來降維。具體方法和我們在譜聚類(spectral clustering)原理總結(jié)里面講到的基本相同。
5)t-distributed Stochastic Neighbor Embedding(t-SNE)算法:這個對應的類是TSNE。這個是一個比較新的降維方法。t-SNE希望樣本間的在高維對應的高斯核函數(shù)相似度在低維可以得到保留,即低維和高維有盡量一樣的相似度矩陣。
這些算法基本原理很類似,都基于流形降維后保持樣本之間的某一個特定的關系而產(chǎn)生。下面我們重點講述LLE算法的使用,即LocallyLinearEmbedding的使用。