數據規約算法
屬性規約方法
|
方法描述
|
方法解析
|
---|---|---|
主要成分分析 | 用較少變量取解釋原始數據中得大部分變量,即將許多相關型很高得變量轉化成彼此相互獨立或不相關得變量 | |
決策樹概括 | 利用決策樹得概括方法對初始數據進行分類概括學習,得到一個初始決策樹,全部沒有出現再這個決策樹上得屬性都可認爲是無關屬性,所以將這些屬性從初始集合中刪除就能夠得到一個較優得屬性子集 | 初始屬性集: {A1,A2,A3,A4,A5,A6} |
合併屬性 | 將一些舊屬性合併爲新屬性 | 初始屬性集: {A1,A2,A3,A4,B1,B2,B3,C}數據庫 {A1,A2,A3,A4} -→Aapp {B1,B2,B3,B4}-→Bdom ===>規約後屬性集:{A, B, C}函數 |
逐步向前選擇 | 從一個空屬性集開始,每次從原來屬性集合中選擇一個當前最優得屬性添加到當前屬性子集中.直到沒法選擇出最優屬性或知足必定閾值約束爲止 | 初始屬性集: {A1,A2,A3,A4,A5,A6} {}=>{A1}=>{A1,A4} =>規約後屬性集:{A, B, C} |
逐步向後刪除 | 從一個全屬性集開始,每次從當前屬性子集真能幹選擇一個當前最優得屬性添加到當前屬性子集中.直到沒法選擇出最差屬性爲止或知足必定閾值約束爲止 | 初始屬性值: {A1,A2,A3,A4,A5,A6} {}=>{A1,A3,A4,A5,A6}=>{A1,A4,A5,A6}=>規約後屬性集:{A1,A4,A6} |
import pandas as pd from sklearn.decomposition import PCA data = pd.read_csv("principal_component.csv", header=None) pca = PCA() # 實例化PCA這個類 pca.fit(data) # 訓練數據 pca.components_ # 返回模型得各個向量特徵 pca.explained_variance_ratio_ # 返回各個成分各自得方差百分比 獲得相應得特徵向量和各個方差得百分比(也稱貢獻率),其中方差備份逼越大,向量得權重越大,當選中其中得幾個主要得成分時,累計貢獻量達到97.37%, 說明選取這幾個成分已經至關不錯了,所以能夠從新創建PCA模型,選取n_components=以前選取得成分數,從而計算出成分結 pca = PCA(3) pca.fit(data) low_d = pca.transform(data) # 下降原數據得維度 pd.DataFrame(low_d).to_csv("dimention_reducted.csv") # 保存結果 pca.inverse_transform(low_d) # 必要能夠用inverse_trans_form()函數來複原數據
函數名
|
函數功能
|
所屬擴展庫
|
---|---|---|
interpolate | 一維,高維書插值 | scipy |
unique | 去除數據中得重複元素,獲得單值元素列表,它是對象得方法名 | Pandas/Numpy |
isnull | 判斷是否爲空值 | pandas |
notnull | 判斷是否非空值 | pandas |
PCA | 對指標表變量矩陣進行主成分分析 | Scikit-Learn |
random | 生成隨機矩陣 | Numpy |
interpolate學習
# -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") import numpy as np from sklearn.decomposition import PCA D = np.random.rand(10, 4) pca = PCA() # 創建模型 pca.fit(D) # 訓練模型 PCA(copy=True, n_components=None, whiten=False) print pca.components_ # 返回模型得各個特徵向量 print pca.explained_variance_ratio_ # 返回各個成分各自得方差百分比