日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)

發布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、基礎理論

1、降維定義

2、降維對象及目標

二、低方差過濾

1、基礎理論?

2、API

過程:

1、讀取待處理數據集

2、創建低方差過濾轉換器(設置過濾閾值)

3、低方差過濾處理

代碼

三、相關系數

1、基礎理論

2、API

計算相關系數

四、主成分分析(PCA降維)

1、基礎理論

1、定義

2、作用

3、過程

2、API

過程:

1、獲取數據

2、實例化降維轉換器類

3、降維處理?

代碼

總代碼


一、基礎理論

1、降維定義

降維是指在特定條件下,降低隨機變量(特征)個數,得到一組“不相關”變量的過程。(不僅僅是降低緯度

(顯示中拍照,就是三維降至二維)?

零維:標量

一維:向量

二維:矩陣

三維:多個二維數組嵌套

......

?相關特征:例如相對濕度與降水量。

2、降維對象及目標

降維對象:二維數組。

降維目標:得到不相關特征變量。(太多相關特征會造成特征冗余(即特征過多))

二、低方差過濾

1、基礎理論?

低方差過濾,過濾掉不太重要的特征

特征方差小:大多數樣品該特征差距不大。

特征方差大:很多樣品該特征差距較大。(區分度高)

2、API

sklearn.feature_selection.VarianceThreshold

過程:

1、讀取待處理數據集

這里如果直接讀取數據集會遇到“玄學”錯誤。

# 1、讀取數據集data = pd.read_csv("factor_returns.csv")

?

?顯而易見,上面的數據是存在字符串的。

但是這里方差過濾特征值是基于數據進行過濾。數據處理自然沒辦法處理字符串。

所以我們重新讀取數據:

# 1、讀取數據集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #從第2列到倒數第3列print(data)

?成功過濾掉無法進行數據處理的字符串。

2、創建低方差過濾轉換器(設置過濾閾值)

# 2、創建低方差過濾轉換器(設置過濾閾值)transfer = VarianceThreshold(threshold=500)      #設置過濾閾值

3、低方差過濾處理

# 3、低方差過濾處理new_data = transfer.fit_transform(data)print(new_data)

?可以對比結果,成功過濾掉很多的冗余特征。

代碼

# 低方差過濾
def Variance_Filter():# 1、讀取數據集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #從第2列到倒數第3列print(data)# 2、創建低方差過濾轉換器(設置過濾閾值)transfer = VarianceThreshold(threshold=500)      #設置過濾閾值# 3、低方差過濾處理new_data = transfer.fit_transform(data)print(new_data)

三、相關系數

1、基礎理論

皮爾遜相關系數:反映變量之間相關關系密切程度的統計指標。

相關系數性質:?

?

?(正相關:一個變量增長,另一個變量隨之增長)

2、API

scipy.stats.pearsonr

計算相關系數

# 計算相關系數r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相關系數\n', r)

四、主成分分析(PCA降維)

1、基礎理論

在降維的過程中,保留盡可能多的信息

1、定義

高維數據轉化為低維數據的過程,在此過程中可能會舍棄原有數據創造新的變量

2、作用

數據維數壓縮,盡可能降低數據的維數(復雜度)損失少量信息

3、過程

找到合適的曲線,通過距離運算得到主成分分析的結果。

2、API

sklearn.decomposition.PCA

過程:

1、獲取數據

# 1、獲取數據data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)

2、實例化降維轉換器類

n_components為整數:保留幾個參數

?n_components為小數:保留百分比的信息

# 2、實例化降維轉換器類# 整數:表示參數下降# 小數:表示保留百分比的信息# transfer = PCA(n_components=2)          #參數降至2(從4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息

3、降維處理?

 # 3、降維處理new_data = transfer.fit_transform(data)print(new_data)

代碼

# PCA降維
def PCA_Reduction():# 1、獲取數據data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、實例化降維轉換器類# 整數:表示參數下降# 小數:表示保留百分比的信息# transfer = PCA(n_components=2)          #參數降至2(從4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息# 3、降維處理new_data = transfer.fit_transform(data)print(new_data)

總代碼

# 降維(特征選擇:低方差過濾和相關系數)(主成分分析:PCA降維)
from sklearn.feature_selection import VarianceThreshold
import pandas as pd
from scipy.stats import pearsonr
from sklearn.decomposition import PCA# 低方差過濾
def Variance_Filter():# 1、讀取數據集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #從第2列到倒數第3列print(data)# 2、創建低方差過濾轉換器(設置過濾閾值)transfer = VarianceThreshold(threshold=500)      #設置過濾閾值# 3、低方差過濾處理new_data = transfer.fit_transform(data)print('低方差過濾處理\n', new_data)# 計算相關系數r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相關系數\n', r)# PCA降維
def PCA_Reduction():# 1、獲取數據data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、實例化降維轉換器類# 整數:表示參數下降# 小數:表示保留百分比的信息# transfer = PCA(n_components=2)          #參數降至2(從4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息# 3、降維處理new_data = transfer.fit_transform(data)print(new_data)if __name__ == '__main__':# 低方差過濾Variance_Filter()# PCA降維PCA_Reduction()

總結

以上是生活随笔為你收集整理的机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。