1. 程式人生 > >Python資料分析學習筆記(6)資料規約實戰--以主成分分析PCA為例

Python資料分析學習筆記(6)資料規約實戰--以主成分分析PCA為例

一、相關理論:

1、資料規約:產生更小且保持資料完整性的新資料集。意義在於降低無效、錯誤資料;降低儲存成本;少量且具有代表性的資料大幅加快,主要分為以下兩類:

①屬性規約:屬性合併或刪除無關維,目標是尋找最小子集使子集概率分佈儘可能與原來相同。

    常用方法:

(1)合併屬性 將就屬性合併為新屬性 {A1,A2,A3,B1,B2,C}——{A,B,C}
(2)逐步向前選擇 從空集開始,逐個加入最優屬性,直到無最優或滿足條件 {}—{A1}—{A1,A4}
(3)逐步向後刪除 從全集開始,每次刪除最差屬性,直到無最差或滿足閾值
(4)決策樹歸納 利用決策樹歸納能力進行分類,刪除未出現的屬性,即效果差的屬性
(5)主成分分析 用少量變數解釋大部分變數,保留大部分資訊,將相關性高的資料轉為彼此獨立

②數值規約:通過選擇替代的、較小的資料來較少資料量,包括有引數(迴歸、對數線性模型)和無引數方法(直方圖、聚類、抽樣)。

2、主成分分析(Principal components analysis,簡稱PCA):是最重要的降維方法之一。在資料壓縮消除冗餘和資料噪音消除等領域都有廣泛的應用。主要原理是設法將原來眾多具有一定相關性(比如P個指標),重新組合成一組新的互相無關的綜合指標來代替原來的指標。相關原理可參考 主成分分析(PCA)原理詳解

二、程式碼實戰:

1、準備階段:

(1)示例資料:本例使用的是某時間的淘寶商品資料,儲存在MySQL資料庫中(資料分享連結:https://pan.baidu.com/s/1SsSy-mxvCStxk4e2PYxB3A  提取碼:tquy,將該檔案從MySQL開啟執行即可)。

(2)匯入相關模組並讀取資料庫資料:

import pymysql
import pandas as pda
import numpy as npy
from sklearn.decomposition import PCA
#連線資料庫獲取資料
conn=pymysql.connect(host="127.0.0.1",user="root",passwd="*****",db="sys")
sql="select hits,comment from myhexun"
data1=pda.read_sql(sql,conn)
#構造新屬性:評點比
ch=data1[u"comment"]/data1["hits"]
data1[u"評點比"]=ch

(3)主成分分析示例:

#主成分分析示例過程
pca1=PCA()
pca1.fit(data1)#設定分析資料
#可返回模型各個特徵量
character=pca1.components_
#可返回各個成分中各自方差的百分比,貢獻率
rate=pca1.explained_variance_ratio_

結果:

(4)主成分分析降維示例:

#主成分分析降為2維的過程
pca2=PCA(2)
pca2.fit(data1)#設定分析資料
reduction=pca2.transform(data1)#降維方法
#恢復降維前的資料
recovery=pca2.inverse_transform(reduction)

結果:

感謝韋瑋老師的指導