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

歡迎訪問 生活随笔!

生活随笔

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

python

Python 随机森林特征重要度

發布時間:2024/9/27 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 随机森林特征重要度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ?Python 隨機森林特征重要度

1 聲明

本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。

2 隨機森林特征重要度簡介

決策樹的優點是通過樹形結構以規則的形式查看模型的內在結構,但隨機森林是由幾十、上百甚至上千棵決策樹組成的,這樣很難再可視化查看模型的結構。但是我們可以通過隨機森林查看特征的重要度。

關于特征的重要性,需要注意兩點:

第一點scikit-learn要求我們將名義分類特征分解為多個二元特征(一種名義變量轉化為數值型的常見方法 One-Hot編碼);第二點如果兩個特征高度相關,則會考慮其中一個特征,另外個特征將被弱化,如果不這么處理模型將難以解釋。

在scikit-learn中,分類回歸決策樹和隨機森林可以使用特征重要性方法來查看每個特征的相對重要性。

通過特征重要性篩選的步驟

第一步隨機森林用到所有特征建立模型,此時會計算出特征的重要性并形成特征矩陣,第二步對該該矩陣通過SelectFromModel的threshold閾值參數進行過濾,用這個模型作為最終的模型。

?

3 隨機森林特征重要度代碼示例

# 導入相關庫和包 import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestClassifier from sklearn import datasets # 裝載數據 iris = datasets.load_iris() features = iris.data target = iris.target # 創建隨機森林模型并計算特征重要度 randomforest = RandomForestClassifier(random_state=0, n_jobs=-1) model = randomforest.fit(features, target) importances = model.feature_importances_ indices = np.argsort(importances)[::-1] names = [iris.feature_names[i] for i in indices] #print(names) #print(range(features.shape[1]), importances[indices]) # 畫圖 plt.figure() from matplotlib.font_manager import FontProperties #設置支持中文字體 fp= FontProperties(fname="c:/windows/fonts/simsun.ttc", size=12) plt.suptitle('特征重要性',fontproperties=fp) plt.bar(range(features.shape[1]), importances[indices]) plt.xticks(range(features.shape[1]), names, rotation=90) plt.show() # 通過重要度的閾值篩選特征 # 定義重要度的閾值 selector = SelectFromModel(randomforest, threshold=0.3) features_important = selector.fit_transform(features, target) # 訓練新的模型 model = randomforest.fit(features_important, target)

4 總結

?

?

總結

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

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