20、Python特徵工程,維度壓縮

1 維度壓縮

主成分分析(rincipal components Analysis)

在減少數據集的維度的同時,保持對方差貢獻最大的特徵


2 PCA方法

pca_3=PCA(n_components=3) 維度設置

fit 訓練數據

data_pca_3=pca_3.fit_transform(data)

3 代碼案例事例


import pandas
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from mpl_toolkits.mplot3d import Axes3D

# d加載庫裏邊的iris數據集
iris=datasets.load_iris()

# 選擇自變量和因變量

data=iris.data
target=iris.target

# 選擇維度並進行訓練

pca_3=PCA(n_components=3)

data_pca_3=pca_3.fit_transform(data)

"""
散點樣式:

參數	樣式
'.'	實心點
'o'	圓圈
','	一個像素點
'x'	叉號
'+'	十字
'*'	星號
'^' 'v' '<' '>'	三角形(上下左右)
'1' '2' '3' '4'	三叉號(上下左右)

顏色:

參數	顏色
'b'	藍
'g'	綠
'r'	紅
'c'	青
'm'	品紅
'y'	黃
'k'	黑
'w'	白
"""

### 定義顏色和三點樣式


colors={
        0:'r',
        1:'b',
        2:'k'
        }

markers={
        0:'X',
        1:'D',
        2:'o'
        }

# 彈出圖形 %matplotlib qt

# 調用三維數據繪圖方法
# # figure 3,指定figure的編號並指定figure的大小, 

# 指定線的顏色, 寬度和類型


fig=plt.figure(1,figsize=(8,6))

ax=Axes3D(fig,elev=-150,azim=110)

# 對降維後的數據進行分組

data_pca_gb = pandas.DataFrame(
    data_pca_3
).groupby(by=target)

# 用數據調用scatter方法進行繪圖

for g in data_pca_gb.groups:
    ax.scatter(
        data_pca_gb.get_group(g)[0], # x軸
        data_pca_gb.get_group(g)[1], 
        data_pca_gb.get_group(g)[2], 
        c=colors[g], 
        marker=markers[g],
        cmap=plt.cm.Paired
    )


#二維數據
pca_2 = PCA(n_components=2)
data_pca_2 = pca_2.fit_transform(data)

data_pca_gb = pandas.DataFrame(data_pca_2).groupby(target)

import matplotlib.pyplot as plt;

for g in data_pca_gb.groups:
    plt.scatter(
        data_pca_gb.get_group(g)[0], 
        data_pca_gb.get_group(g)[1], 
        c=colors[g], 
        marker=markers[g]
    )









 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章