天天看點

基于Spark的機器學習實踐 (十) - 降維0 相關源碼 1 PCA算法及原理概述2 實戰PCA算法實作降維Spark機器學習實踐系列

通過講解PCA算法的原理,使大家明白降維算法的大緻原理,以及能夠實作怎麼樣的功能。結合應用降維算法在分類算法使用之前進行預處理的實踐,幫助大家體會算法的作用。

相關源碼

1 PCA算法及原理概述

1.1 何為降維?

◆ 從高次元變為低次元的過程就是降維

◆ 例如拍照就是把處在三維空間中的人或物從轉換到作為二 維平面的

照片中

◆ 降維有線性的、也有非線性的方法。在機器學習中可以簡化運算,減少特征量

1.2 PCA算法介紹

◆ PCA算法是一種常用的線性降維算法,算法類似于"投影”

◆ 降維簡化了資料集,故可以視為一個壓縮過程,在壓縮過程中可能;會有資訊丢失

◆ PCA除可以用來精簡特征,還可以應用在圖像進行中

例如基于PCA算法的特征臉法,它可以用來人臉識别

1.3 PCA算法原理簡介

◆ PCA是基于K-L變換實作的一種算法

◆ PCA算法在實作上用到了協方差矩陣,以及矩陣的特征分解

◆ 基本主要内容在于求出協方差矩陣,然後求協方差矩陣的特征值與特征向量

1.4 PCA算法步驟

◆ 輸入n行m列的矩陣X ,代表m條n維資料

◆ 将矩陣X的每一行進行零均值化處理

◆ 求出X的協方差矩陣C

◆ 求出協方差矩陣C的特征值 與特征向量

◆ 将特征向量按照特征值的大小從上至下依次排列,取前k行,作為矩陣P

◆ 求出P與X矩陣叉乘的結果,即為降維值k維的m條資料

2 實戰PCA算法實作降維

  • 代碼
  • 特征列降維成3個

Spark機器學習實踐系列

繼續閱讀