成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

機器學(xué)習(xí)中必知必會的 3 種特征選取方法!

人工智能 機器學(xué)習(xí)
隨著深度學(xué)習(xí)的蓬勃發(fā)展,越來越多的小伙伴開始嘗試搭建深層神經(jīng)網(wǎng)絡(luò)應(yīng)用于工作場景中,認為只需要把數(shù)據(jù)放入模型中,調(diào)優(yōu)模型參數(shù)就可以讓模型利用自身機制來選擇重要特征,輸出較好的數(shù)據(jù)結(jié)果。

 隨著深度學(xué)習(xí)的蓬勃發(fā)展,越來越多的小伙伴開始嘗試搭建深層神經(jīng)網(wǎng)絡(luò)應(yīng)用于工作場景中,認為只需要把數(shù)據(jù)放入模型中,調(diào)優(yōu)模型參數(shù)就可以讓模型利用自身機制來選擇重要特征,輸出較好的數(shù)據(jù)結(jié)果。

 

[[377236]]

在現(xiàn)實工作場景中,受限制數(shù)據(jù)和時間,這樣的做法其實并不可取,一方面大量數(shù)據(jù)輸入將導(dǎo)致模型訓(xùn)練周期增長,另一方面在當(dāng)前細分市場中,并非所有場景都有海量數(shù)據(jù),尋找海量數(shù)據(jù)中的重要特征迫在眉睫。

本文我將教你三個選擇特征的方法,這是任何想從事數(shù)據(jù)科學(xué)領(lǐng)域的都應(yīng)該知道。本文的結(jié)構(gòu)如下:

  • 數(shù)據(jù)集加載和準備
  • 方法1:從系數(shù)獲取特征重要性
  • 方法2:從樹模型獲取特征重要性
  • 方法3:從 PCA 分數(shù)中獲取特征重要性
  • 結(jié)論

數(shù)據(jù)集加載和準備

為了方便介紹,我這里使用"load_breast_cancer"數(shù)據(jù)集,該數(shù)據(jù)內(nèi)置于 Scikit-Learn 中。

以下代碼段演示如何導(dǎo)入庫和加載數(shù)據(jù)集:

 

  1. import numpy as np 
  2. import pandas as pd 
  3. from sklearn.datasets import load_breast_cancer 
  4. import matplotlib.pyplot as plt 
  5. from matplotlib import rcParams 
  6. rcParams['figure.figsize'] = 14, 7 
  7. rcParams['axes.spines.top'] = False 
  8. rcParams['axes.spines.right'] = False 
  9. Load data 
  10. data = load_breast_cancer() 

調(diào)用以下代碼,輸出結(jié)果。

 

  1. df = pd.concat([pd.DataFrame(data.data, columns=data.feature_names),pd.DataFrame(data.target, columns=['y'])], axis=1) 
  2. df.head() 

上述數(shù)據(jù)中有 30 個特征變量和一個目標變量。所有值都是數(shù)值,并且沒有缺失的值。在解決縮放問題之前,還需要執(zhí)行訓(xùn)練、測試拆分。

 

  1. from sklearn.preprocessing import StandardScaler 
  2. from sklearn.model_selection import train_test_split 
  3. X = df.drop('y', axis=1) 
  4. y = df['y'
  5. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) 
  6. ss = StandardScaler() 
  7. X_train_scaled = ss.fit_transform(X_train) 
  8. X_test_scaled = ss.transform(X_test) 

方法1:從系數(shù)獲取特征重要性

檢查特征重要性的最簡單方法是檢查模型的系數(shù)。例如,線性回歸和邏輯回歸都歸結(jié)為一個方程,其中將系數(shù)(重要性)分配給每個輸入值。

簡單地說,如果分配的系數(shù)是一個大(負或正)數(shù)字,它會對預(yù)測產(chǎn)生一些影響。相反,如果系數(shù)為零,則對預(yù)測沒有任何影響。

邏輯非常簡單,讓我們來測試一下,邏輯回歸是一種合適的算法。擬合模型后,系數(shù)將存儲在屬性中coef_。

 

  1. from sklearn.linear_model import LogisticRegression 
  2.  
  3. model = LogisticRegression() 
  4. model.fit(X_train_scaled, y_train) 
  5. importances = pd.DataFrame(data={ 
  6.     'Attribute': X_train.columns, 
  7.     'Importance': model.coef_[0] 
  8. }) 
  9. importances = importances.sort_values(by='Importance', ascending=False
  10. # 可視化 
  11. plt.bar(x=importances['Attribute'], height=importances['Importance'], color='#087E8B'
  12. plt.title('Feature importances obtained from coefficients'size=20) 
  13. plt.xticks(rotation='vertical'
  14. plt.show() 

下面是相應(yīng)的可視化效果:

 


該方法最大特點:「簡單」、「高效」。系數(shù)越大(在正方向和負方向),越影響預(yù)測效果。

 

 

方法2:從樹模型獲取重要性

訓(xùn)練任何樹模型后,你都可以訪問 feature_importances 屬性。這是獲取功特征重要性的最快方法之一。

以下代碼演示如何導(dǎo)入模型并在訓(xùn)練數(shù)據(jù)上擬合模型,以及重要性的獲取:

 

  1. from xgboost import XGBClassifier 
  2.  
  3. model = XGBClassifier() 
  4. model.fit(X_train_scaled, y_train) 
  5. importances = pd.DataFrame(data={ 
  6.     'Attribute': X_train.columns, 
  7.     'Importance': model.feature_importances_ 
  8. }) 
  9. importances = importances.sort_values(by='Importance', ascending=False
  10. # 可視化 
  11. plt.bar(x=importances['Attribute'], height=importances['Importance'], color='#087E8B'
  12. plt.title('Feature importances obtained from coefficients'size=20) 
  13. plt.xticks(rotation='vertical'
  14. plt.show() 

相應(yīng)的可視化效果如下所示:

 

方法3:從 PCA 分數(shù)獲取特征重要性

主成分分析(PCA)是一種出色的降維技術(shù),也可用于確定特征的重要性。

PCA 不會像前兩種技術(shù)那樣直接顯示最重要的功能。相反,它將返回 N 個主組件,其中 N 等于原始特征的數(shù)量。

 

  1. from sklearn.decomposition import PCA 
  2. pca = PCA().fit(X_train_scaled) 
  3. # 可視化 
  4. plt.plot(pca.explained_variance_ratio_.cumsum(), lw=3, color='#087E8B'
  5. plt.title('Cumulative explained variance by number of principal components'size=20) 
  6. plt.show() 

 

但這是什么意思呢?這意味著你可以使用前五個主要組件解釋源數(shù)據(jù)集中 90%的方差。同樣,如果你不知道這意味著什么,繼續(xù)往下看。

 

  1. loadings = pd.DataFrame( 
  2.     data=pca.components_.T * np.sqrt(pca.explained_variance_),  
  3.     columns=[f'PC{i}' for i in range(1, len(X_train.columns) + 1)], 
  4.     index=X_train.columns 
  5. loadings.head() 

 

第一個主要組成部分至關(guān)重要。它只是一個要素,但它解釋了數(shù)據(jù)集中超過 60% 的方差。從上圖中可以看到,它與平均半徑特征之間的相關(guān)系數(shù)接近 0.8,這被認為是強正相關(guān)。

讓我們可視化所有輸入要素與第一個主組件之間的相關(guān)性。下面是整個代碼段(包括可視化):

 

  1. pc1_loadings = loadings.sort_values(by='PC1', ascending=False)[['PC1']] 
  2. pc1_loadings = pc1_loadings.reset_index() 
  3. pc1_loadings.columns = ['Attribute''CorrelationWithPC1'
  4.  
  5. plt.bar(x=pc1_loadings['Attribute'], height=pc1_loadings['CorrelationWithPC1'], color='#087E8B'
  6. plt.title('PCA loading scores (first principal component)'size=20) 
  7. plt.xticks(rotation='vertical'
  8. plt.show() 

 

這就是如何"破解"PCA,使用它作為特征重要性的方法。

結(jié)論

上述總結(jié)來 3 個機器學(xué)習(xí)特征重要性的方法,這三個可根據(jù)場景靈活運用。如果你對機器學(xué)習(xí)感興趣,可以關(guān)注我。

責(zé)任編輯:華軒 來源: 機器學(xué)習(xí)社區(qū)
相關(guān)推薦

2021-04-18 22:06:29

機器學(xué)習(xí)算法數(shù)據(jù)

2022-08-26 14:46:31

機器學(xué)習(xí)算法線性回歸

2021-08-02 18:04:25

機器學(xué)習(xí)數(shù)據(jù)集工具

2023-12-26 12:10:13

2020-07-10 07:58:14

Linux

2023-10-13 00:00:00

設(shè)計模式GO語言

2018-05-04 08:20:39

機器學(xué)習(xí)深度學(xué)習(xí)人工智能

2024-11-15 11:11:48

2021-04-01 22:19:54

機器學(xué)習(xí)模型數(shù)據(jù)

2024-01-03 07:56:50

2022-05-18 09:01:19

JSONJavaScript

2018-10-26 14:10:21

2023-04-20 14:31:20

Python開發(fā)教程

2023-05-08 15:25:19

Python編程語言編碼技巧

2022-02-16 07:00:00

機器學(xué)習(xí)特征選擇過濾法

2022-08-19 10:31:32

Kafka大數(shù)據(jù)

2023-10-09 18:52:14

SOLIDJava

2024-07-26 08:32:44

panic?Go語言

2023-10-19 21:30:36

架構(gòu)CQRS模式

2015-10-20 09:46:33

HTTP網(wǎng)絡(luò)協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产一级在线 | 久久精品亚洲 | 欧美黄色网络 | 国产一区二区三区在线看 | 久久国产精品99久久久大便 | 好好的日在线视频 | 久久网国产 | 日本电影免费完整观看 | 欧美精品久久久 | 国产中文字幕在线 | 久久久久久免费毛片精品 | 国产黄色大片 | 久久亚洲国产 | 日韩精品视频一区二区三区 | 97免费视频在线观看 | 亚洲高清av在线 | 亚洲v日韩v综合v精品v | 91在线网站 | 亚洲天堂中文字幕 | 91精品国产综合久久久久蜜臀 | 91综合网 | 国产精品久久久久久久久久东京 | 黄色毛片在线看 | 欧美日韩国产一区二区三区 | avtt国产 | 国产99视频精品免费播放照片 | 中国91av| 国产在线精品免费 | 中文字幕高清 | 精品久久久久久久久久 | 蜜桃臀av一区二区三区 | 欧美视频一区二区三区 | 在线看片国产精品 | 久久国产精品亚洲 | 爱爱爱av| 亚洲日韩欧美一区二区在线 | 国产精品一区二区免费 | 丁香六月伊人 | 亚洲一区二区三区国产 | 国产精品一区二区久久 | 91大神在线看 |