機器學習實戰書籍和程式碼分享 | 【PCA簡介】
開頭先上圖
機器學習是人工智慧研究領域中的一個極其重要的方向。在現今大資料時代的背景下捕獲資料並從中萃取有價值的資訊或模式使得這一過去為分析師與數學家所專屬的研究領域越來越為人們矚目。
本書第一部分主要介紹機器學習基礎,以及如何利用演算法進行分類,並逐步介紹了多種經典的監督學習演算法,如k近鄰演算法、樸素貝葉斯演算法、Logistic迴歸演算法、支援向量機、AdaBoost整合方法、基於樹的迴歸演算法和分類迴歸樹(CART)演算法等。第三部分則重點介紹無監督學習及其一些主要演算法:k均值聚類演算法、Apriori演算法、FP-Growth演算法。第四部分介紹了機器學習演算法的一些附屬工具。
全書通過精心編排的例項,切入日常工作任務,摒棄學術化語言,利用高效的可複用Python程式碼來闡釋如何處理統計資料,進行資料分析及視覺化。通過各種例項,讀者可從中學會機器學習的核心演算法,並能將其運用於一些策略性任務中,如分類、預測、推薦。另外,還可用它們來實現一些更高階的功能,如彙總和簡化等。
——豆瓣上面的簡介——
目錄截圖:
利用PCA來簡化資料
(1)降維技術
(2)主成分分析(PCA)
(3)對半導體資料進行降維處理
(1)降維技術
對資料進行簡化的原因有:
1)使得資料集更易使用
2)降低很多演算法的計算開銷
3)去除噪聲
4)使得結果易懂
(2)主成分分析(PCA)
優點:降低資料的複雜性,識別最重要的多個特徵
缺點:不一定需要,且可能損失有用資訊
適用資料型別:數值型資料
a)移動座標軸
在PCA中,我們對資料的座標進行了旋轉,該旋轉的過程取決於資料的本身。第一條座標軸旋轉到覆蓋資料的最大方差位置,即圖中的直線B。資料的最大方差給出了資料的最重要的資訊。
在選擇了覆蓋資料最大差異的座標軸之後,我們選擇了第二條座標軸。假如該座標軸與第一條座標軸垂直(正交),它就是覆蓋資料次大差異性的座標軸。
上面即PCA尋找座標軸的過程。
接下來看一下有什麼效果,如下圖所示
總結:從前面提到額第一個主成分就是從資料差異性最大(即方差最大)的方法提取出來的,第二主成分則來自於資料差異性次大的方向,並且該方向與第一個主成分方向正交。通過資料集的協方差矩陣及其特徵值分析,我們就可以求得這些主成分的值。
一旦得到了協方差矩陣的特徵向量,我們就可以保留最大的N個值。這些特徵向量也給出了N個最重要特徵的真實結構。我們可以通過將資料乘上這N個特徵向量而將它轉換到新的空間。
在NumPy中實現PCA
將資料轉換成前N個主成分的偽碼大致如下:
(1)去除平均值
(2)計算協方差矩陣
(3)計算協方差矩陣的特徵值和特徵向量
(4)將特徵值從大到小排序
(5)保留最上面的N個特徵向量
(6)將資料轉換到上述N個特徵向量構建的新空間中
使用後的效果
(3)對半導體資料進行降維處理
具體的程式碼和資料集書中均有提供
http://archive.ics.uci.edu/ml/machine-learning-databases/secom/
從下表可以看出,前六個主成分就覆蓋了資料96.8%的方差,而前20個主成分覆蓋了99.3%的方差。這就表明了,如果保留前6個而去除後584個主成分,我們就可以實現大概100:1的壓縮比、另外,由於捨棄了噪聲的主成分,將後面的主成分去除便是的資料更加乾淨。
由於這是經典書籍,所以採用的還是python2
書籍可以回覆“AI實戰”獲取
程式碼在GitHub上
https://github.com/pbharrin/machinelearninginaction
小老闆還不點一手關注嗎?
歡迎關注和訂閱AI演算法與影象處理公眾號(AI_study)
不定期更新和分享高質量的文章和學習資料,讓我一起進步吧,fighting