1. 程式人生 > >機器學習 --2 特徵預處理 之 資料將維

機器學習 --2 特徵預處理 之 資料將維

特徵選擇

  • 概念
    特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值、也不改變值,但是選擇後的特徵維數肯定比選擇前小,畢竟我們只選擇了其中的一部分特徵。

  • 方差過濾式

# 按照方差過濾
from sklearn.feature_selection import VarianceThreshold

# 特徵選擇第一種方式:過濾式
# 方差特徵選擇  刪除低方差特徵
def var():
    # 指定方差閾值
    var = VarianceThreshold(threshold=0.0)
    data = var.fit_transform([[0, 2, 0, 3],
                              [0, 1, 4, 3],
                              [0, 1, 1, 3]])
    print(data)
    return None

if __name__=='__main__':
    var()
    
  • PCA降維
# 按照方差過濾
from sklearn.feature_selection import VarianceThreshold
# 主成分分析
from sklearn.decomposition import PCA


# 特徵選擇第一種方式:過濾式
# 方差特徵選擇  刪除低方差特徵
def var():
    # 指定方差閾值
    var = VarianceThreshold(threshold=0.0)
    data = var.fit_transform([[0, 2, 0, 3],
                              [0, 1, 4, 3],
                              [0, 1, 1, 3]])
    print(data)
    return None


# 主成分分析進行特徵降維
# 再使用pca進行降維的時候資料本身的值也會被改變
def pca():
    # n_components 在填入小數的時候表示要降維的百分比  填入數字則表示要降到多少個維度
    pca = PCA(n_components=0.9)
    data = pca.fit_transform([[2, 8, 4, 5],
                              [6, 3, 0, 8],
                              [5, 4, 9, 1]])
    print(data)
    return None


if __name__ == '__main__':
    var()
    pca()