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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python特征递归消除

發布時間:2023/12/10 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python特征递归消除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基礎知識了解

?特征遞歸消除官方給了兩者方法

1.RFE

2.RFECV

一.RFE

官方解釋

鏈接:sklearn.feature_selection.RFE — scikit-learn 1.0.2 documentationhttps://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html?highlight=rfe#sklearn.feature_selection.RFE????????給定一個為特征分配權重的外部估計器(例如,線性模型的系數),遞歸特征消除(RFE)的目標是通過遞歸地考慮越來越小的特征集來選擇特征。首先,估計器在初始特征集上進行訓練,每個特征的重要性通過任何特定屬性或可調用獲得。然后,從當前的特征集中剪除最不重要的特征。該過程在修剪后的集合上遞歸重復,直到最終達到要選擇的所需特征數量。

sklearn.feature_selection.RFE

重要參數

參數參數說明
estimator

監督學習估計有fit提供有關功能的重要性(如信息的方法coef_,feature_importances_)

只估計器有具備這兩個的其中一個才能進行特征遞歸消除

例如:隨機森林

n_features_to_select要選擇的特征數。如果None,則選擇一半的特征。如果是整數,則參數是要選擇的特征的絕對數量。如果在 0 和 1 之間浮動,則它是要選擇的特征的一部分。
step如果大于或等于 1,則step對應于每次迭代要刪除的(整數)個特征。如果在 (0.0, 1.0) 范圍內,則step對應于每次迭代中要刪除的特征的百分比(向下舍入)

重要屬性

屬性屬性說明
ranking_特征排名,ranking_[i]?對應于第 i 個特征的排名位置。選定(即估計的最佳)特征被分配等級 1。
support_所選特征的掩碼。

二.RFECV

使用交叉驗證進行遞歸特征消除以選擇特征數量

鏈接

sklearn.feature_selection.RFECV — scikit-learn 1.0.2 documentationhttps://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFECV.html?highlight=rfe#sklearn.feature_selection.RFECV

sklearn.feature_selection.RFECV

重要參數

參數參數說明
estimator

和RFE一樣

一種監督學習估計器,其fit方法通過coef_?屬性或feature_importances_屬性提供有關特征重要性的信息。

step

和RFE一樣

如果大于或等于 1,則step對應于每次迭代要刪除的(整數)個特征。如果在 (0.0, 1.0) 范圍內,則step對應于每次迭代中要刪除的特征的百分比(向下舍入)。請注意,最后一次迭代可能會刪除少于 的step特征以達到min_features_to_select.

cv

確定交叉驗證拆分策略。cv 的可能輸入是:

  • 無,使用默認的 5 折交叉驗證,

  • 整數,指定折疊次數。

重要屬性

屬性屬性說明
ranking_特征排名,ranking_[i]?對應于第 i 個特征的排名位置。選定(即估計的最佳)特征被分配等級 1。
support_所選特征的掩碼。

利用RFE進行

1.利用現有數據,對所選估計器進行參數優化

2.查看估計器的特征重要性

3.根據重要性,自行確定要選擇的特征數 或者 利用曲線圖選取最優特征數量(以折線圖為主重要性為輔助參考)

重要性

從下面曲線圖可以看出39因子的時候分數最高

4.開始進行特征消除

代碼如下

import pandas as pd from sklearn.ensemble import RandomForestClassifier as RFC from sklearn.model_selection import cross_val_score import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.feature_selection import RFECV from sklearn.feature_selection import RFE import numpy as np # 1.讀取訓練數據集 filepath = r"G:\zwh\付老師\河南\1221\2010和2020建模數據\4.高砷點與篩選后的低砷點合并2010.xls" #特征因子個數 feature_number = 45 data = pd.read_excel(filepath) # reading file data = np.array(data) X=data[:,0:feature_number] Y=data[:,-1]# 1.標準化處理 #標準差標準化(standardScale)使得經過處理的數據符合標準正態分布,即均值為0,標準差為1 #概念 #標準化:縮放和每個點都有關系,通過均值μ和標準差σ體現出來;輸出范圍是負無窮到正無窮 #優點 #提升模型的收斂速度 #提升模型的精度 #使用場景 #如果數據存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響 scaler = StandardScaler() X_train = scaler.fit_transform(X)# 2.構建RF模型 #參數是基于個人數據優化的結果 RFC_model = RFC(n_estimators=41,max_depth=12,max_features=1,min_samples_leaf=1,min_samples_split=14,criterion='gini') # 隨機森林 #feature_importances_基于雜質的特征重要性 RFC_feature_importances = RFC_model.fit(X, Y).feature_importances_ # 特征重要性 print("模型特征因子重要性:") print(RFC_feature_importances)# 3.遞歸特征消除法和曲線圖選取最優特征數量 # 建立得分列表 score = [] #range創建的結果不包括feature_number+1 for i in range(1, feature_number+1, 1):#fit_transform適合數據,然后轉換它#為什么y不進行分類,因為數據的類別是事前確定的,如果更改y,那么數據就與現實情況不符X_transform = RFE(RFC_model, n_features_to_select=i, step=1).fit_transform(X, Y)# 交叉驗證RFE_score = cross_val_score(RFC_model, X_transform, Y, cv=10).mean()# 交叉驗證結果保存到列表score.append(RFE_score) print('輸出所有分類結果',score) print('輸出最優分類結果',max(score),'對應的特征數量', (score.index(max(score))*1)+1)# 輸出最優分類結果和對應的特征數量 plt.figure(figsize=[20, 5]) plt.plot(range(1, 46, 1), score) plt.xticks(range(1, 46, 1)) plt.show()# 4.遞歸特征消除法 # n_features_to_select表示篩選最終特征數量,step表示每次排除一個特征 selector1 = RFE(RFC_model, n_features_to_select=(score.index(max(score))*1)+1, step=1).fit(X, Y) #所選特征的掩碼和 print('RFE所選特征的掩碼',selector1.support_) print('RFE特征排除排序',selector1.ranking_) print('RFE選擇特征數量',selector1.n_features_) X_transform1 = selector1.transform(X) RFE_optimal_score =cross_val_score(RFC_model, X_transform1, Y, cv=10).mean() print('RFE最優特征交叉驗證分數',RFE_optimal_score)# 5. 交叉驗證遞歸特征消除法 #使用交叉驗證進行遞歸特征消除以選擇特征數量。 # 采用交叉驗證,每次排除一個特征,篩選出最優特征 selector = RFECV(RFC_model, step=1, cv=10) selector = selector.fit(X, Y) RFECV_X_transform = selector.transform(X) # 最優特征分類結果 RFECV_optimal_score =cross_val_score(RFC_model , RFECV_X_transform, Y, cv=10).mean() print('RFECV最優特征交叉驗證分數',RFECV_optimal_score) print("最佳數量和排序") print('RFECV選取結果',selector.support_) print('RFECV選取特征數量',selector.n_features_) print('RFECV依次排數特征排序',selector.ranking_)

總結

以上是生活随笔為你收集整理的python特征递归消除的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲国产精品久久久久久6q | 日韩欧美国产一区二区三区在线观看 | 国产思思99re99在线观看 | 亚洲超碰在线观看 | 亚洲视频在线观看视频 | 激情午夜av | 黄色片免费观看视频 | av网站大全在线 | 伊人久久久 | 国产女无套免费视频 | 亚洲精品一二三四 | 欧美亚洲精品在线观看 | 欧美变态绿帽cuckold | 色导航在线 | 一区二区三区不卡在线观看 | 国产精品无码电影 | 亚洲一在线 | 97精品国产97久久久久久春色 | 日韩亚洲欧美在线 | 日韩精品免费电影 | 四虎激情| 亚洲视屏一区 | 妓院一钑片免看黄大片 | 国产一级二级三级在线 | 日本黄色高清 | 1024福利 | 国产精品资源 | 久久久久久久一区 | 性xxxxxxxxx18欧美 | 久久人妻少妇嫩草av蜜桃 | av手机免费在线观看 | 娇妻第一次尝试交换的后果 | 福利在线网站 | 亚洲免费三级 | 邵氏电影《金莲外传2》免费观看 | 人妻少妇精品无码专区 | 国产资源在线免费观看 | 97色干| 久久精品综合视频 | 成人国产精品一区二区 | 国产成人av一区二区三区不卡 | 男女交性视频播放 | 综合激情网站 | 最新激情网 | 人人草人人干 | 国产一级二级毛片 | 九九视频免费观看 | 欧美久久久久久久久 | 中国xxxx性xxxx产国 | 男人的天堂在线播放 | www.欧美一区二区三区 | 亚洲精品无码久久久久久久 | 成人www| 亚洲欧洲久久久 | 日韩大片在线免费观看 | jizzjizz在线播放 | 亚洲一区国产 | 日本高清有码 | 快射视频在线观看 | 欧美大片a | 男人天堂成人网 | 亚洲成人精品在线观看 | 精品影院 | av小说在线观看 | 成人录像 | 日批黄色片 | 欧美人与性动交α欧美片 | 91你懂的 | 欧美日韩一级片在线观看 | 亚洲免费综合 | 亚洲国产精品毛片 | 国产123区在线观看 91国产一区二区 | 一级日韩一级欧美 | 成人免费av在线 | 91看片黄 | 91麻豆精品国产理伦片在线观看 | 中文字幕第20页 | 天天射日日 | 奇米狠狠干 | 波多野结衣网站 | 97超碰免费观看 | 老熟妇毛片 | av卡一卡二 | 免费看欧美黄色片 | 亚洲精品美女网站 | 伊人影视大全 | 亚洲大片免费观看 | 青娱网电信一区电信二区电信三区 | 成人在线观看小视频 | 一炮成瘾1v1高h | 亚洲大色 | 婷婷综合六月 | 69堂视频| 亚洲天堂伊人网 | 欧美另类在线视频 | 7777精品视频 | 欧美国产成人精品一区二区三区 | 快射视频网 | 亚洲最大福利网站 |