日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现

發布時間:2025/3/15 python 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者 | Peter

編輯 |?AI有道

系列文章:

吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習

吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

吳恩達《Machine Learning》精煉筆記 4:神經網絡基礎

吳恩達《Machine Learning》精煉筆記 5:神經網絡

吳恩達《Machine Learning》精煉筆記 6:關于機器學習的建議

吳恩達《Machine Learning》精煉筆記 7:支持向量機 SVM

吳恩達《Machine Learning》精煉筆記 8:聚類 KMeans 及其 Python實現

在本文中主要介紹的是數據降維相關的內容,重點講解了PCA算法

  • 為什么要實施降維

    • 數據壓縮

    • 數據可視化

  • PCA算法

    • PCA和線性回歸算法的區別

    • PCA算法特點

    • Python實現PCA

  • sklearn中實現PCA

為何降維

在現實高維數據情況下,會有數據樣本稀疏、距離計算困難等問題,被稱為維數災難。

解決的方法就是降維,也稱之為“維數約簡”,即通過某種數據方法將原始高維屬性空間轉成一個低維“子空間”。在這個子空間中,樣本密度大大提高,將高維空間中的一個低維“嵌入”。

降維Dimensionality Reduction

數據降維主要是有兩個動機:

  • 數據壓縮Data Compression

  • 數據可視化Data Visualization


數據壓縮Data Compression

上圖解釋:

  • 在一個三維空間中的特征向量降至二維的特征向量。

  • 將三維投影到一個二維的平面上,迫使所有的數據都在同一個平面上。

  • 這樣的處理過程可以被用于把任何維度的數據降到任何想要的維度,例如將1000維的特征降至100維。


  • 數據可視化Data Visualization

    降維能夠幫助我們進行數據的可視化工作。

    上面圖的解釋:

  • 假設給定數據,具有多個不同的屬性

  • 某些屬性表示的含義可能相同,在圖形中可以放到同一個軸上,進行數據的降維


  • PCA- Principal Component Analysis

    在PCA中,要做的是找到一個方向向量(Vector direction),當把所有的數據都投射到該向量上時,PCA的關鍵點就是找到一個投影平面使得投影誤差最小化。

    方向向量是一個經過原點的向量,而投射誤差是從特征向量向該方向向量作垂線的長度。

    PCA與線性回歸的區別

  • 線性回歸中的縱軸是預測值,PCA中是特征屬性

  • 誤差不同:PCA是投射誤差,線性回歸是嘗試最小化預測誤差。

  • 線性回歸的目的是預測結果,`PCA·是不做任何分析。

  • PCA算法

    主成分分析中,首先對給定數據進行規范化,使得數據每一變量的平均值為0,方差為1。

    之后對數據進行正交變換,用來由線性相關表示的數據,通過正交變換變成若干個線性無關的新變量表示的數據。

    新變量是可能的正交變換中變量的方差和(信息保存)最大的,方差表示在新變量上信息的大小。將新變量一次成為第一主成分,第二主成分等。通過主成分分析,可以利用主成分近似地表示原始數據,便是對數據降維。

    PCA算法中從n維到k維的過程是

    • 均值歸一化。計算所有特征的均值,令xj=xj?μj,如果特征不在一個數量級上,需要除以標準差

    • 計算協方差矩陣 covariance matrix

    • 計算協方差矩陣∑的特征向量 eigenvectors

    在西瓜書中的描述為

    主成分個數確定

    關于PCA算法中主成分個數k的確定,一般是根據公式:

    不等式右邊的0.01可以是0.05,或者0.1等,都是比較常見的。當為0.01的時候,表示保留了99%的方差數據,即大部分的數據特征被保留了。


    當給定了個數k,協方差矩陣S中求解出來的各個特征值滿足公式:

    也就是滿足:

    這個和上面的公式是等價的。

    重建的壓縮表示

    重建的壓縮表示Reconstruction from Compressed Representation指的是將數據從低維還原到高維的過程。

    將指定的點位置映射到一個三維曲面,反解前面的方程:

    PCA特點

  • PCA本質上是將方差最大的方向作為主要特征,讓這些特征在不同正交方向上沒有相關性。

  • PCA是一種無參數技術,不需要進行任何參數的調節


  • Python實現PCA

    利用numpy、pandas、matplotlib庫實現PCA算法

    sklearn中實現PCA

    Linear dimensionality reduction using Singular Value Decomposition of the data to project it to a lower dimensional space. The input data is centered but not scaled for each feature before applying the SVD.

    用sklearn學習PCA:

    https://www.cnblogs.com/pinard/p/6243025.html


    實現模塊

    在scikit-learn中,與PCA相關的類都在sklearn.decomposition包中。最常用的PCA類就是sklearn.decomposition.PCA。

    白化:對降維后的數據的每個特征進行歸一化,讓方差都為1

    class sklearn.decomposition.PCA(n_components=None, # 降維后的特征數目,直接指定一個整數copy=True,whiten=False, # 判斷是否進行白化,默認是不白化svd_solver='auto', # 指定奇異值分解SVD的方法tol=0.0,iterated_power='auto',random_state=None)

    demo

    在這里講解一個例子,利用PCA算法來進行IRIS數據的分類


    推薦閱讀

    (點擊標題可跳轉閱讀)

    干貨 | 公眾號歷史文章精選

    我的深度學習入門路線

    我的機器學習入門路線圖

    重磅

    AI有道年度技術文章電子版PDF來啦!

    掃描下方二維碼,添加?AI有道小助手微信,可申請入群,并獲得2020完整技術文章合集PDF(一定要備注:入群?+ 地點 + 學校/公司。例如:入群+上海+復旦。?

    長按掃碼,申請入群

    (添加人數較多,請耐心等待)

    感謝你的分享,點贊,在看三??

    總結

    以上是生活随笔為你收集整理的吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。