18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Python計算機(jī)器學(xué)習(xí)中特征的重要程度?

倩倩 ? 來源:deephub ? 2020-04-15 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

特征重要性評分是一種為輸入特征評分的手段,其依據(jù)是輸入特征在預(yù)測目標(biāo)變量過程中的有用程度。

特征重要性有許多類型和來源,盡管有許多比較常見,比如說統(tǒng)計相關(guān)性得分,線性模型的部分系數(shù),基于決策樹的特征重要性和經(jīng)過隨機(jī)排序得到重要性得分。

特征重要性在預(yù)測建模項(xiàng)目中起著重要作用,包括提供對數(shù)據(jù)、模型的見解,以及如何降維和選擇特征,從而提高預(yù)測模型的的效率和有效性。

在本教程中,我將會闡述用于python機(jī)器學(xué)習(xí)的特征重要性。完成本教程后,你將會知道:

特征重要性在預(yù)測建模中的作用

如何計算和查看來自線性模型和決策樹的特征重要性

如何計算和查看隨機(jī)排序重要性得分

現(xiàn)在讓我們開始吧。

教程概述

本教程分為五部分,分別是:

1.特征重要性

2.準(zhǔn)備

2.1. 檢查Scikit-Learn版本

2.2. 創(chuàng)建測試數(shù)據(jù)集

3.特征重要性系數(shù)

3.1. 基于線性回歸系數(shù)的特征重要性

3.2. 基于Logistic回歸的特征重要性

4.基于決策樹的特征重要性

4.1. 基于CART的特征重要性

4.2. 基于隨機(jī)森林的特征重要性

4.3. 基于XGBoost的特征重要性

5.隨機(jī)排序特征重要性

5.1. 隨機(jī)排序(回歸)中的特征重要性

5.2. 隨機(jī)排序(分類)中的特征重要性

1.特征重要性

特征重要性是一種為預(yù)測模型的輸入特征評分的方法,該方法揭示了進(jìn)行預(yù)測時每個特征的相對重要性。

可以為涉及預(yù)測數(shù)值的問題(稱為回歸)和涉及預(yù)測類別標(biāo)簽的問題(稱為分類)計算特征重要性得分。

這些得分非常有用,可用于預(yù)測建模問題中的多種情況,例如:

更好地理解數(shù)據(jù)

更好地理解模型

減少輸入特征的數(shù)量

特征重要性得分可以幫助了解數(shù)據(jù)集

相對得分可以突出顯示哪些特征可能與目標(biāo)最相關(guān),反之則突出哪些特征最不相關(guān)。這可以由一個領(lǐng)域?qū)<医忉?,并且可以用作收集更多的或不同的?shù)據(jù)的基礎(chǔ)。

特征重要性得分可以幫助了解模型

大多數(shù)重要性得分是通過數(shù)據(jù)集擬合出的預(yù)測模型計算的。查看重要性得分可以洞悉該特定模型,以及知道在進(jìn)行預(yù)測時哪些特征最重要和哪些最不重要。這是一種模型解釋,適用于那些支持它的模型。

特征重要性可用于改進(jìn)預(yù)測模型

可以使用的重要性得分來選擇要刪除的特征(最低得分)或要保留的特征(最高得分)。這是一種特征選擇,可以簡化正在建模的問題,加快建模過程(刪除特征稱為降維),在某些情況下,還可以改善模型的性能。

特征重要性得分可以被輸入到包裝器模型,如SelectFromModel或SelectKBest,以進(jìn)行特征選擇。

有許多方法和模型可以計算特征重要性得分。

也許最簡單的方法是計算每個特征和目標(biāo)變量之間的統(tǒng)計學(xué)相關(guān)系數(shù)。

在本教程中,我們將研究三種比較高級的特征重要性,即:

從模型系數(shù)得知的特征重要性。

決策樹中的特征重要性。

隨機(jī)排序檢驗(yàn)中的特征重要性。

現(xiàn)在讓我們深入了解這三個!

2.準(zhǔn)備

在深入學(xué)習(xí)之前,我們先確認(rèn)我們的環(huán)境并準(zhǔn)備一些測試數(shù)據(jù)集。

檢查Scikit-Learn版本

首先,確認(rèn)你已安裝最新版本的scikit-learn庫。這非常重要,因?yàn)樵诒窘坛讨?,我們我們研究的一些模型需要最新版的庫?/p>

您可以使用以下示例代碼來查看已安裝的庫的版本:

# check scikit-learn version

import sklearn

print(sklearn.__version__)

運(yùn)行示例代碼將會打印出庫的版本。在撰寫本文時,大概是version 0.22。你需要使用此版本或更高版本的scikit-learn。

0.22.1

生成測試數(shù)據(jù)集

接下來,讓我們生成一些測試數(shù)據(jù)集,這些數(shù)據(jù)集可以作為基礎(chǔ)來證明和探索特征重要性得分。每個測試問題有五個重要特征和五不重要的特征,看看哪種方法可以根據(jù)其重要性找到或區(qū)分特征可能會比較有意思。

分類數(shù)據(jù)集

我們將使用make_classification()函數(shù)創(chuàng)建一個用于測試的二進(jìn)制分類數(shù)據(jù)集。

數(shù)據(jù)集將包含1000個實(shí)例,且包含10個輸入特征,其中五個將會提供信息,其余五個是多余的。

為了確保每次運(yùn)行代碼時都得到相同的實(shí)例,我們將使用假隨機(jī)數(shù)種子。下面列出了創(chuàng)建數(shù)據(jù)集的示例。

# test classification dataset

from sklearn.datasets import make_classification

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# summarize the dataset

print(X.shape, y.shape)

運(yùn)行示例,創(chuàng)建數(shù)據(jù)集,并確保所需的樣本和特征數(shù)量。

(1000, 10) (1000,)

回歸數(shù)據(jù)集

我們將使用make_regression()函數(shù)創(chuàng)建一個用于測試的回歸數(shù)據(jù)集。

像分類數(shù)據(jù)集一樣,回歸數(shù)據(jù)集將包含1000個實(shí)例,且包含10個輸入特征,其中五個將會提供信息,其余五個是多余的。

# test regression dataset

from sklearn.datasets import make_regression

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# summarize the dataset

print(X.shape, y.shape)

運(yùn)行示例,創(chuàng)建數(shù)據(jù)集,并確保所需的樣本和特征數(shù)量。

(1000, 10) (1000,)

接下來,我們仔細(xì)看一下特征重要性系數(shù)。

3.特征重要性系數(shù)

線性的機(jī)器學(xué)習(xí)能夠擬合出預(yù)測是輸入值的加權(quán)和的模型。

案例包括線性回歸,邏輯回歸,和正則化的擴(kuò)展案例,如嶺回歸和彈性網(wǎng)絡(luò)。

所有這些算法都是找到一組要在加權(quán)求和中使用的系數(shù),以便進(jìn)行預(yù)測。這些系數(shù)可以直接用作粗略類型的特征重要性得分。

我們來仔細(xì)研究一下分類和回歸中的特征重要性系數(shù)。我們將在數(shù)據(jù)集中擬合出一個模型以找到系數(shù),然后計算每個輸入特征的重要性得分,最終創(chuàng)建一個條形圖來了解特征的相對重要性。

3.1線性回歸特征重要性

我們可以在回歸數(shù)據(jù)集中擬合出一個LinearRegression模型,并檢索coeff_屬性,該屬性包含為每個輸入變量(特征)找到的系數(shù)。這些系數(shù)可以為粗略特征重要性評分提供依據(jù)。該模型假設(shè)輸入變量具有相同的比例或者在擬合模型之前已被按比例縮放。

下面列出了針對特征重要性的線性回歸系數(shù)的完整示例。

# linear regression feature importance

from sklearn.datasets import make_regression

from sklearn.linear_model import LinearRegression

from matplotlib import pyplot

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# define the model

model = LinearRegression()

# fit the model

model.fit(X, y)

# get importance

importance = model.coef_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

得分表明,模型找到了五個重要特征,并用零標(biāo)記了剩下的特征,實(shí)際上,將他們從模型中去除了。

Feature: 0, Score: 0.00000

Feature: 1, Score: 12.44483

Feature: 2, Score: -0.00000

Feature: 3, Score: -0.00000

Feature: 4, Score: 93.32225

Feature: 5, Score: 86.50811

Feature: 6, Score: 26.74607

Feature: 7, Score: 3.28535

Feature: 8, Score: -0.00000

Feature: 9, Score: 0.00000

然后為特征重要性得分創(chuàng)建條形圖。

這種方法也可以用于嶺回歸和彈性網(wǎng)絡(luò)模型。

3.2 Logistic回歸特征重要性

就像線性回歸模型一樣,我們也可以在回歸數(shù)據(jù)集中擬合出一個LogisticRegression模型,并檢索coeff_屬性。這些系數(shù)可以為粗略特征重要性評分提供依據(jù)。該模型假設(shè)輸入變量具有相同的比例或者在擬合模型之前已被按比例縮放。

下面列出了針對特征重要性的Logistic回歸系數(shù)的完整示例。

# logistic regression for feature importance

from sklearn.datasets import make_classification

from sklearn.linear_model import LogisticRegression

from matplotlib import pyplot

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# define the model

model = LogisticRegression()

# fit the model

model.fit(X, y)

# get importance

importance = model.coef_[0]

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

回想一下,這是有關(guān)0和1的分類問題。請注意系數(shù)既可以為正,也可以為負(fù)。正數(shù)表示預(yù)測類別1的特征,而負(fù)數(shù)表示預(yù)測類別0的特征。

從這些結(jié)果,至少從我所知道的結(jié)果中,無法清晰的確定出重要和不重要特征。

Feature: 0, Score: 0.16320

Feature: 1, Score: -0.64301

Feature: 2, Score: 0.48497

Feature: 3, Score: -0.46190

Feature: 4, Score: 0.18432

Feature: 5, Score: -0.11978

Feature: 6, Score: -0.40602

Feature: 7, Score: 0.03772

Feature: 8, Score: -0.51785

Feature: 9, Score: 0.26540

然后為特征重要性得分創(chuàng)建條形圖。

現(xiàn)在我們已經(jīng)看到了將系數(shù)用作重要性得分的示例,接下來讓我們看向基于決策樹的重要性得分的常見示例

4.基于決策樹的特征重要性

決策樹算法,比如說classification and regression trees(CART)根據(jù)Gini系數(shù)或熵的減少來提供重要性得分。這個方法也可用于隨機(jī)森林和梯度提升算法。

OK.現(xiàn)在讓我們看看相應(yīng)的運(yùn)行示例。

4.1基于CART的特征重要性

對于在scikit-learn中實(shí)現(xiàn)的特征重要性,我們可以將CART算法用于DecisionTreeRegressor和DecisionTreeClassifier類

擬合后,模型提供feature_importances_屬性,可以訪問該屬性以檢索每個輸入特征的相對重要性得分。

讓我們看一個用于回歸和分類的示例。

基于CART(回歸)的特征重要性

下面列出了擬合DecisionTreeRegressor和計算特征重要性得分的完整示例。

# decision tree for feature importance on a regression problem

from sklearn.datasets import make_regression

from sklearn.tree import DecisionTreeRegressor

from matplotlib import pyplot

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# define the model

model = DecisionTreeRegressor()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的三個可能對預(yù)測很重要。

Feature: 0, Score: 0.00294

Feature: 1, Score: 0.00502

Feature: 2, Score: 0.00318

Feature: 3, Score: 0.00151

Feature: 4, Score: 0.51648

Feature: 5, Score: 0.43814

Feature: 6, Score: 0.02723

Feature: 7, Score: 0.00200

Feature: 8, Score: 0.00244

Feature: 9, Score: 0.00106

然后為特征重要性得分創(chuàng)建條形圖。

基于CART(分類)的特征重要性

下面列出了擬合DecisionTreeClassifier和計算特征重要性得分的完整示例

# decision tree for feature importance on a classification problem

from sklearn.datasets import make_classification

from sklearn.tree import DecisionTreeClassifier

from matplotlib import pyplot

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# define the model

model = DecisionTreeClassifier()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的四個可能對預(yù)測很重要。

Feature: 0, Score: 0.01486

Feature: 1, Score: 0.01029

Feature: 2, Score: 0.18347

Feature: 3, Score: 0.30295

Feature: 4, Score: 0.08124

Feature: 5, Score: 0.00600

Feature: 6, Score: 0.19646

Feature: 7, Score: 0.02908

Feature: 8, Score: 0.12820

Feature: 9, Score: 0.04745

然后為特征重要性得分創(chuàng)建條形圖。

4.2隨機(jī)森林中的特征重要性

對于在scikit-learn中實(shí)現(xiàn)的特征重要性,我們可以將Random Forest算法用于DecisionTreeRegressor和DecisionTreeClassifier類。

擬合后,模型提供feature_importances_屬性,可以訪問該屬性以檢索每個輸入特征的相對重要性得分。

這種方法也可以與裝袋和極端隨機(jī)樹(extraTree)算法一起使用。

讓我們看一個用于回歸和分類的示例。

隨機(jī)森林(回歸)中的特征重要性

下面列出了擬合RandomForestRegressor和計算特征重要性得分的完整示例

# random forest for feature importance on a regression problem

from sklearn.datasets import make_regression

from sklearn.ensemble import RandomForestRegressor

from matplotlib import pyplot

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# define the model

model = RandomForestRegressor()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的兩個或三個可能對預(yù)測很重要。

Feature: 0, Score: 0.00280

Feature: 1, Score: 0.00545

Feature: 2, Score: 0.00294

Feature: 3, Score: 0.00289

Feature: 4, Score: 0.52992

Feature: 5, Score: 0.42046

Feature: 6, Score: 0.02663

Feature: 7, Score: 0.00304

Feature: 8, Score: 0.00304

Feature: 9, Score: 0.00283

然后為特征重要性得分創(chuàng)建條形圖。

隨機(jī)森林(分類)中的特征重要性

下面列出了擬合RandomForestClassifier和計算特征重要性得分的完整示例

# random forest for feature importance on a classification problem

from sklearn.datasets import make_classification

from sklearn.ensemble import RandomForestClassifier

from matplotlib import pyplot

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# define the model

model = RandomForestClassifier()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的兩個或三個可能對預(yù)測很重要。

Feature: 0, Score: 0.06523

Feature: 1, Score: 0.10737

Feature: 2, Score: 0.15779

Feature: 3, Score: 0.20422

Feature: 4, Score: 0.08709

Feature: 5, Score: 0.09948

Feature: 6, Score: 0.10009

Feature: 7, Score: 0.04551

Feature: 8, Score: 0.08830

Feature: 9, Score: 0.04493

然后為特征重要性得分創(chuàng)建條形圖。

4.3基于XGBoost的特征重要性

XGBoost是一個庫,它提供了隨機(jī)梯度提升算法的高效實(shí)現(xiàn)??梢酝ㄟ^XGBRegressor和XGBClassifier類將此算法與scikit-learn一起使用。

擬合后,模型提供feature_importances_屬性,可以訪問該屬性以檢索每個輸入特征的相對重要性得分。

scikit-learn還通過GradientBoostingClassifier和GradientBoostingRegressor提供了該算法,并且可以使用相同的特征選擇方法

首先,安裝XGBoost庫,例如:

sudo pip install xgboost

然后,通過檢查版本號來確認(rèn)該庫已正確安裝并且可以正常工作。

# check xgboost version

import xgboost

print(xgboost.__version__)

運(yùn)行該示例,你應(yīng)該看到以下版本號或者更高版本。

0.90

有關(guān)XGBoost庫的更多信息,請看:

XGBoost with Python

讓我們看一個用于回歸和分類問題的示例。

基于XGBoost(回歸)的特征重要性

下面列出了擬合XGBRegressor并且計算特征重要性得分的完整示例

# xgboost for feature importance on a regression problem

from sklearn.datasets import make_regression

from xgboost import XGBRegressor

from matplotlib import pyplot

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# define the model

model = XGBRegressor()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的兩個或三個可能對預(yù)測很重要。

Feature: 0, Score: 0.00060

Feature: 1, Score: 0.01917

Feature: 2, Score: 0.00091

Feature: 3, Score: 0.00118

Feature: 4, Score: 0.49380

Feature: 5, Score: 0.42342

Feature: 6, Score: 0.05057

Feature: 7, Score: 0.00419

Feature: 8, Score: 0.00124

Feature: 9, Score: 0.00491

然后為特征重要性得分創(chuàng)建條形圖。

基于XGBoost(分類)的特征重要性

下面列出了擬合XGBClassifier并且計算特征重要性得分的完整示例

# xgboost for feature importance on a classification problem

from sklearn.datasets import make_classification

from xgboost import XGBClassifier

from matplotlib import pyplot

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# define the model

model = XGBClassifier()

# fit the model

model.fit(X, y)

# get importance

importance = model.feature_importances_

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中有七個可能對預(yù)測很重要。

Feature: 0, Score: 0.02464

Feature: 1, Score: 0.08153

Feature: 2, Score: 0.12516

Feature: 3, Score: 0.28400

Feature: 4, Score: 0.12694

Feature: 5, Score: 0.10752

Feature: 6, Score: 0.08624

Feature: 7, Score: 0.04820

Feature: 8, Score: 0.09357

Feature: 9, Score: 0.02220

然后為特征重要性得分創(chuàng)建條形圖。

5.基于隨機(jī)排序的特征重要性

隨機(jī)排序特征重要性(Permutation feature importance)可以計算相對重要性,與所使用的模型無關(guān)。

首先,在數(shù)據(jù)集中擬合出一個模型,比如說一個不支持本地特征重要性評分的模型。然后,盡管對數(shù)據(jù)集中的特征值進(jìn)行了干擾,但仍可以使用該模型進(jìn)行預(yù)測。對數(shù)據(jù)集中的每個特征進(jìn)行此操作。然后,再將整個流程重新操作3、5、10或更多次。我們得到每個輸入特征的平均重要性得分(以及在重復(fù)的情況下得分的分布)。

此方法可以用于回歸或分類,要求選擇性能指標(biāo)作為重要性得分的基礎(chǔ),例如回歸中的均方誤差和分類中的準(zhǔn)確性。

可以通過permutation_importance()函數(shù)(以模型和數(shù)據(jù)集為參數(shù))和評分函數(shù)進(jìn)行隨機(jī)排序特性選擇。

讓我們看下這個特征選擇方法,其算法并不支持特征選擇,尤其是k近鄰算法( k-nearest neighbors)。

5.1隨機(jī)排序(回歸)特征重要性

下面列出了擬合KNeighborsRegressor并且計算特征重要性得分的完整示例。

# permutation feature importance with knn for regression

from sklearn.datasets import make_regression

from sklearn.neighbors import KNeighborsRegressor

from sklearn.inspection import permutation_importance

from matplotlib import pyplot

# define dataset

X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=1)

# define the model

model = KNeighborsRegressor()

# fit the model

model.fit(X, y)

# perform permutation importance

results = permutation_importance(model, X, y, scoring=‘neg_mean_squared_error’)

# get importance

importance = results.importances_mean

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的兩個或三個可能對預(yù)測很重要。

Feature: 0, Score: 175.52007

Feature: 1, Score: 345.80170

Feature: 2, Score: 126.60578

Feature: 3, Score: 95.90081

Feature: 4, Score: 9666.16446

Feature: 5, Score: 8036.79033

Feature: 6, Score: 929.58517

Feature: 7, Score: 139.67416

Feature: 8, Score: 132.06246

Feature: 9, Score: 84.94768

然后為特征重要性得分創(chuàng)建條形圖。

5.2隨機(jī)排序(分類)特征重要性

下面列出了擬合KNeighborsClassifier并且計算特征重要性得分的完整示例。

# permutation feature importance with knn for classification

from sklearn.datasets import make_classification

from sklearn.neighbors import KNeighborsClassifier

from sklearn.inspection import permutation_importance

from matplotlib import pyplot

# define dataset

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)

# define the model

model = KNeighborsClassifier()

# fit the model

model.fit(X, y)

# perform permutation importance

results = permutation_importance(model, X, y, scoring=‘accuracy’)

# get importance

importance = results.importances_mean

# summarize feature importance

for i,v in enumerate(importance):

print(‘Feature: %0d, Score: %.5f’ % (i,v))

# plot feature importance

pyplot.bar([x for x in range(len(importance))], importance)

pyplot.show()

運(yùn)行示例,擬合模型,然后輸出每個特征的系數(shù)值。

結(jié)果表明,這十個特征中的兩個或三個可能對預(yù)測很重要。

Feature: 0, Score: 0.04760

Feature: 1, Score: 0.06680

Feature: 2, Score: 0.05240

Feature: 3, Score: 0.09300

Feature: 4, Score: 0.05140

Feature: 5, Score: 0.05520

Feature: 6, Score: 0.07920

Feature: 7, Score: 0.05560

Feature: 8, Score: 0.05620

Feature: 9, Score: 0.03080

然后為特征重要性得分創(chuàng)建條形圖。

總結(jié)

在本教程中,您知道了在Python機(jī)器學(xué)習(xí)中的特征重要性得分。

具體來說,您了解到:

特征重要性在預(yù)測建模問題中的作用

如何從線性模型和決策樹中計算和查看特征重要性

如何計算和查看隨機(jī)排序特征重要性得分

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4924

    瀏覽量

    72380
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1229

    瀏覽量

    25949
  • 網(wǎng)絡(luò)模型
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    8947
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是全國產(chǎn)化導(dǎo)航計算機(jī)子卡?它有多重要

    全國產(chǎn)化導(dǎo)航計算機(jī)子卡是實(shí)現(xiàn)在國防、航天等國家關(guān)鍵領(lǐng)域技術(shù)自主的重要一環(huán)。
    的頭像 發(fā)表于 09-16 18:02 ?528次閱讀
    什么是全國產(chǎn)化導(dǎo)航<b class='flag-5'>計算機(jī)</b>子卡?它有多<b class='flag-5'>重要</b>

    工業(yè)計算機(jī)重要

    工業(yè)計算機(jī)對某些行業(yè)至關(guān)重要。我們將在下面詳細(xì)解釋這些行業(yè)的工業(yè)計算機(jī)應(yīng)用。1.制造與工業(yè)自動化工業(yè)級計算機(jī)非常適合制造工廠,特別是那些想
    的頭像 發(fā)表于 07-28 16:07 ?319次閱讀
    工業(yè)<b class='flag-5'>計算機(jī)</b>的<b class='flag-5'>重要</b>性

    自動化計算機(jī)經(jīng)過加固后有什么好處?

    讓我們討論一下部署堅固的自動化計算機(jī)的一些好處。1.溫度范圍寬自動化計算機(jī)經(jīng)過工程設(shè)計,配備了支持寬溫度范圍的組件,使自動化計算解決方案能夠在各種不同的極端環(huán)境運(yùn)行。自動化
    的頭像 發(fā)表于 07-21 16:44 ?328次閱讀
    自動化<b class='flag-5'>計算機(jī)</b>經(jīng)過加固后有什么好處?

    自動化計算機(jī)的功能與用途

    工業(yè)自動化是指利用自動化計算機(jī)來控制工業(yè)環(huán)境的流程、機(jī)器人和機(jī)械,以制造產(chǎn)品或其部件。工業(yè)自動化的目的是提高生產(chǎn)率、增加靈活性,并提升制造過程的質(zhì)量。工業(yè)自動化在汽車制造中體現(xiàn)得最為明顯,其中許多
    的頭像 發(fā)表于 07-15 16:32 ?403次閱讀
    自動化<b class='flag-5'>計算機(jī)</b>的功能與用途

    工業(yè)計算機(jī)與商用計算機(jī)的區(qū)別有哪些

    工業(yè)計算機(jī)是一種專為工廠和工業(yè)環(huán)境設(shè)計的計算系統(tǒng),具有高可靠性和穩(wěn)定性,能夠應(yīng)對惡劣環(huán)境下的自動化、制造和機(jī)器人操作。其特點(diǎn)包括無風(fēng)扇散熱技術(shù)、無電纜連接和防塵防水設(shè)計,使其在各種工業(yè)自動化場景
    的頭像 發(fā)表于 07-10 16:36 ?399次閱讀
    工業(yè)<b class='flag-5'>計算機(jī)</b>與商用<b class='flag-5'>計算機(jī)</b>的區(qū)別有哪些

    工業(yè)計算機(jī)的定義與重要

    運(yùn)行。隨著現(xiàn)代產(chǎn)業(yè)向智能化、自動化和數(shù)據(jù)化的轉(zhuǎn)型,工業(yè)計算機(jī)在制造業(yè)、交通運(yùn)輸、能源、電信等多個領(lǐng)域中扮演著越來越重要的角色。工業(yè)計算機(jī)的廣闊應(yīng)用促進(jìn)了生產(chǎn)效率的提
    的頭像 發(fā)表于 12-25 15:11 ?882次閱讀
    工業(yè)<b class='flag-5'>計算機(jī)</b>的定義與<b class='flag-5'>重要</b>性

    云端超級計算機(jī)使用教程

    云端超級計算機(jī)是一種基于云計算的高性能計算服務(wù),它將大量計算資源和存儲資源集中在一起,通過網(wǎng)絡(luò)向用戶提供按需的計算服務(wù)。下面,AI部落小編為
    的頭像 發(fā)表于 12-17 10:19 ?749次閱讀

    虛擬內(nèi)存對計算機(jī)性能的影響

    在現(xiàn)代計算機(jī)系統(tǒng),內(nèi)存管理是確保系統(tǒng)高效運(yùn)行的關(guān)鍵因素之一。虛擬內(nèi)存技術(shù)作為內(nèi)存管理的核心組成部分,對于提升計算機(jī)性能和用戶體驗(yàn)起著至關(guān)重要的作用。 一、虛擬內(nèi)存的概念 虛擬內(nèi)存是一
    的頭像 發(fā)表于 12-04 09:17 ?4145次閱讀

    工業(yè)中使用哪種計算機(jī)?

    在工業(yè)環(huán)境,工控機(jī)被廣泛使用。這些計算機(jī)的設(shè)計可承受極端溫度、灰塵和振動等惡劣條件。它們比標(biāo)準(zhǔn)消費(fèi)類計算機(jī)更耐用、更可靠。工業(yè)計算機(jī)可控制機(jī)器
    的頭像 發(fā)表于 11-29 14:07 ?925次閱讀
    工業(yè)中使用哪種<b class='flag-5'>計算機(jī)</b>?

    量子計算機(jī)與普通計算機(jī)工作原理的區(qū)別

    ? 本文介紹了量子計算機(jī)與普通計算機(jī)工作原理的區(qū)別。 量子計算是一個新興的研究領(lǐng)域,科學(xué)家們利用量子力學(xué),制造出具有革命性能力的計算機(jī)。雖然現(xiàn)在的量子
    的頭像 發(fā)表于 11-24 11:00 ?2199次閱讀
    量子<b class='flag-5'>計算機(jī)</b>與普通<b class='flag-5'>計算機(jī)</b>工作原理的區(qū)別

    什么是機(jī)器學(xué)習(xí)?通過機(jī)器學(xué)習(xí)方法能解決哪些問題?

    計算機(jī)系統(tǒng)自身的性能”。事實(shí)上,由于“經(jīng)驗(yàn)”在計算機(jī)系統(tǒng)主要以數(shù)據(jù)的形式存在,因此機(jī)器學(xué)習(xí)需要設(shè)法對數(shù)據(jù)進(jìn)行分析
    的頭像 發(fā)表于 11-16 01:07 ?1373次閱讀
    什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?通過<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問題?

    DAC和ADC對量子計算機(jī)升級的重要性解析?

    起著至關(guān)重要的作用。因此,隨著量子計算機(jī)復(fù)雜性的提高,這些模擬元件將變得越來越重要。 DAC 在量子控制至關(guān)重要。它們用于將數(shù)字控制信號轉(zhuǎn)
    的頭像 發(fā)表于 11-14 09:20 ?1089次閱讀
    DAC和ADC對量子<b class='flag-5'>計算機(jī)</b>升級的<b class='flag-5'>重要</b>性解析?

    ROM對計算機(jī)性能的影響

    只讀存儲器(ROM)是計算機(jī)硬件的一個重要組成部分,它負(fù)責(zé)存儲計算機(jī)啟動時必需的固件和基本輸入輸出系統(tǒng)(BIOS)。ROM的性能和質(zhì)量對計算機(jī)
    的頭像 發(fā)表于 11-04 10:31 ?1656次閱讀

    【小白入門必看】一文讀懂深度學(xué)習(xí)計算機(jī)視覺技術(shù)及學(xué)習(xí)路線

    一、什么是計算機(jī)視覺?計算機(jī)視覺,其實(shí)就是教機(jī)器怎么像我們?nèi)艘粯?,用攝像頭看看周圍的世界,然后理解它。比如說,它能認(rèn)出這是個蘋果,或者那邊有輛車。除此之外,還能把拍到的照片或者視頻轉(zhuǎn)換成有用的信息
    的頭像 發(fā)表于 10-31 17:00 ?1632次閱讀
    【小白入門必看】一文讀懂深度<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>計算機(jī)</b>視覺技術(shù)及<b class='flag-5'>學(xué)習(xí)</b>路線

    工業(yè)中使用哪種類型的計算機(jī)

    極端條件而不可或缺。工業(yè)計算機(jī)在現(xiàn)代工業(yè)重要性工業(yè)計算機(jī)與普通消費(fèi)級計算機(jī)的區(qū)別在于其耐用性和在惡劣環(huán)境下的性能。工業(yè)界選擇工業(yè)
    的頭像 發(fā)表于 10-22 17:10 ?887次閱讀
    工業(yè)中使用哪種類型的<b class='flag-5'>計算機(jī)</b>?