使用PCA對特徵資料進行降維
PCA(Principal Component Analysis)是機器學習中對資料進行降維的一種方法。主要目的是在不丟失原有資料資訊的情況下降低機器學習演算法的複雜度,及資源消耗。本篇文章將使用python對特徵進行降維。
PCA通過線性變換將原始資料中可能相關的資料轉換為一組線性不相關的資料。以本篇文章中所使用的貸款使用者特徵資料來說,其中包含了貸款使用者的借款金額,利息,利率,年收入,信用卡賬戶數量等多個維度的資訊。而這些資訊中不同維度的資料間可能會存在關聯,例如,當我們知道了借款金額和利率後,就可以計算出利息。這種情況下,我們保留其中的兩個維度就可以保證原有資訊完整。因此我們可以將這3個維度的資料減少為2個維度。下面我們將使用Python來說明使用PCA對貸款資料進行降維過程。
準備工作
首先匯入所需要的庫檔案,這裡是我們常用的數值計算庫numpy,科學計算庫pandas和資料預處理庫preprocessing以及PCA演算法庫。後面我們將對使用這些庫檔案對貸款資料進行匯入,讀取,標準化處理。
1 2 3 4 5 6 7 8 |
#匯入數值計算庫
import numpy
as np
#匯入科學計算庫
import pandas
as pd
#匯入資料預處理庫
from sklearn.preprocessing
import StandardScaler #匯入PCA演算法庫
from sklearn.decomposition
import PCA
|
讀取並檢視資料表
第二步匯入貸款資料,並建立名為LoanStats3a的貸款資料表。通過檢視資料表中的內容可以發現,這個資料表中包含了貸款使用者的資訊以及還款狀態資訊。其中,除了貸款狀態(loan_status)列以外,其他的列都是貸款的特徵資料,我們將對這些貸款的特徵資料進行降維。
1 2 |
#讀取貸款狀態資料從建立名為LoanStats3a的資料表
LoanStats3a = pd.DataFrame(pd.read_csv( 'LoanStats3a.csv' ))
|
1 2 |
#檢視資料表內容
LoanStats3a.head()
|
資料表中可能會包含一些空值,我們將包含有空值的資料進行刪除處理。
1 2 |
#刪除包含空值的特徵
LoanStats3a = LoanStats3a.dropna()
|
檢視資料表中詳細的列名稱,後面建立特徵資料表時會用到。
1 2 3 4 5 6 7 8 9 |
相對dataframe中“最高價”列資料進行除以2操作, data = pd.DataFrame(PriceList,columns=['品名','規格','max1','平均價','最低價','產地','日期'],index=range(1,len(PriceLi 將Excel表中的資料 轉換成XML 並對XML資料進行讀取EXCEL 轉換成 XML 工具類 using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Xml; usi MapReduce對大資料進行排序的實踐從一個小的例子開始: Map和reduce之間的shuffle(洗牌)是將key值相同的放在一塊,sort(排序)是按照key值進行排序.例如like出現了兩次,就會把like放在一起.you也是.然後根據key值進行按照字典的順序進行排序.下面我想將下面的資料按照時間進行排序,並且ID相 |