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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用随机森林进行特征重要性排序

發布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用随机森林进行特征重要性排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一步就是導包,這里我們主要需要用到的就是sklearn和pandas
我們先對自己的數據集進行一下處理

import numpy as np import pandas as pd testset=pd.read_csv("data.csv") testset.head(5)

數據集導入

dataset=testset dataset.target=testset['標簽'] dataset.target.head(5)


因為數據集比較大就放前幾個拿出來給大家看看,提取完標簽之后,為了讓后面的步驟更加簡潔,直接在數據集中刪除掉最后的一列target

testset.drop(columns=['currentdepth'],inplace=True) testset.head(5)

除去target這一列的標簽,剩下的都是需要進行排序的特征

dataset.feature_names=testset.columns dataset.feature_names

特征都被輸出來了

dataset.data=testset[['特征1','特征2', '特征3', '特征4'......]] dataset.data.head(5)

這里我賦給dataset的data值都是根據上面輸出的特征屬性來的,需要對部分屬性排序也可以,為了方便可以多drop掉幾個特征然后賦給新的dataset

print("data shape:{}".format(dataset.data.shape)) print("target shape:{}".format(dataset.target.shape)) print("line head 5:\n{}".format(dataset.data[:5])) print("target head 5:\n{}".format(dataset.target[:5]))

分別輸出前五個數據看看有沒有缺特征或者data和target有空值的

數據集處理完成后檢查一下是不是data、target、feature_names這三個都有賦值,它們在數據集中對應的位置應該是這樣的(以西瓜數據集為例)

色澤、根蒂、敲聲、紋理、臍部、觸感這些是feature_names,好瓜這一列是target,中間的青綠、烏黑這些是data,在數據處理時最好把data以行的形式存儲起來,這樣一行是一個實例

第二步是處理我們通過處理初始的數據集得到的data、target和feature_names

X=dataset.data X.shape Y=dataset.target names=dataset.feature_names print(names)

第三步利用sklearn這個包中的隨機森林對特征進行排序,前面都是準備工作,如果是網上可下載的那種數據集不需要花那么多功夫在處理數據集上

from sklearn.ensemble import RandomForestClassifier rf=RandomForestClassifier() rf.fit(X,Y) print("Features sorted by their score:") print(sorted(zip(map(lambda x:round(x,4),rf.feature_importances_),names)))

這里也可以不用隨機森林,看到有人用線性回歸的,有興趣的同學也可以實現下,后面會附上相關鏈接

一般來說維數比較小的數據集得出來的重要性排序都不會有很低的,針對維數比較大的數據集可以利用這個方法剔除掉數據集中影響比較小的特征,在保證準確度的情況下訓練速度更快。

線性回歸進行重要性排序
使用標準數據集對特征進行重要性排序
兩種重要性排序的方法

總結

以上是生活随笔為你收集整理的利用随机森林进行特征重要性排序的全部內容,希望文章能夠幫你解決所遇到的問題。

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