如何從資料集中選擇重要變數?
介紹
在機器學習中,資料特徵是最影響模型效能的引數之一。資料的特徵或變數應該具有資訊量且足夠好,以便將其饋送到機器學習演算法中,因為據觀察,即使提供少量高質量資料,模型也能達到最佳效能。
傳統的機器學習演算法在饋送更多資料時效能更好。然而,在達到某個資料量值之後,模型的效能會保持不變,不再提高。此時,變數的選擇仍然可以幫助我們提高效能。
本文將討論一些最佳方法,以幫助我們從資料集中選擇最佳變數,從而獲得具有核心直覺、工作機制和示例的準確模型。
特徵選擇
特徵選擇是一種用於從資料集中選擇最佳特徵的技術。在每個機器學習問題中,不可能擁有資料集中最佳的特徵。在訓練和構建機器學習模型時,必須丟棄或忽略一些無用的特徵。
有很多方法可以從資料集中選擇變數。
方法 1:利用你的知識
在直接跳到一些複雜的特徵選擇方法之前,利用關於資料的常識,然後丟棄無用的特徵是節省時間和計算資源的最佳方法。
你可以利用你對資料的瞭解,然後據此做出決定。例如,帶有序列號列的資料大多被忽略且不實用,迴歸資料集中的ID或編號之類的列沒有幫助,可以直接刪除。
方法 2:使用皮爾遜相關係數
相關特徵選擇方法是特徵選擇中最簡單和計算量最小的方法之一。這裡計算每個自變數與因變數之間的相關性,並根據相關值手動選擇最佳特徵。
#importing pandas import pandas as pd #dataframe df = pd.read_csv("data.csv") #correlations df.corr()
方法 3:使用 SelectKBest
SelectKBest 是選擇資料最佳和最合適的特徵最著名和最有價值的方法之一。此方法在因變數和自變數或列為數字形式的情況下最有用。
可以使用 Sci-kit Learn 輕鬆實現此方法。只需傳入我們想要的最佳特徵數量,它就會計算所有相關性並將指定的最佳特徵作為輸出返回。
#importing libraries from sklearn.datasets import make_regression from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_regression # dataset generation X, y = make_regression(n_samples=50, n_features=5, n_informative=5) # feature selection fs = SelectKBest(score_func=f_regression, k=5) # apply feature selection X_best = fs.fit_transform(X, y)
正如我們在上面的程式碼中看到的,我們可以使用名為“k”的引數定義我們想要的最佳特徵數量。將此程式碼應用於資料後,最終形狀將為 (100,5),其中 100 指定行數,5 是選擇的五個最佳特徵。
方法 4:使用方差分析檢驗 (ANOVA)
方差分析檢驗 (ANOVA) 也是一種常用的著名技術,用於從資料中選擇最佳特徵。使用此檢驗,我們也可以定義我們想要的最佳特徵數量,它將據此生成新資料。
當我們的資料集中有數值資料和類別資料時,主要使用此方法。
示例
# ANOVA feature selection from sklearn.datasets import make_classification from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_classif # generate dataset X, y = make_classification(n_samples=100, n_features=100, n_informative=10) # define feature selection fs = SelectKBest(score_func=f_classif, k=10) # apply feature selection X_best = fs.fit_transform(X, y)
上述程式碼的輸出可能是從給定的 100 個特徵中選擇的最佳十個特徵。
方法 5:使用卡方檢驗
卡方檢驗是資料科學家最著名的特徵選擇統計方法之一。此方法應用於自變數和因變數為類別資料的情況。
透過為 score_func 使用引數值“chi2”,我們可以快速地在 SKLearn 中實現和計算資料的最佳變數。
示例
# Chi2 feature selection from sklearn.datasets import make_classification from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2 # generate dataset X, y = make_classification(n_samples=100, n_features=100, n_informative=10) # define feature selection fs = SelectKBest(score_func=chi2, k=10) # apply feature selection X_best = fs.fit_transform(X, y)
與上面的程式碼類似,也將計算所有特徵的卡方值,並根據卡方值,最佳特徵將作為最終輸出顯示。
關鍵要點
特徵選擇是必須採取的重要步驟之一,因為它可以減少計算和儲存能力的需求,並在模型部署期間提高模型的效能。
在需要在有限時間內構建模型的情況下,可以使用領域知識和標準的皮爾遜相關係數方法進行快速特徵選擇。
方差分析和卡方檢驗可用於對類別和數值形式的資料進行準確的特徵選擇。
結論
在本文中,我們討論了一些用於從資料集中選擇最佳特徵或變數以提高模型效能的最佳特徵選擇技術。瞭解這些方法將幫助人們非常有效地對任何資料執行特徵選擇,並能夠據此做出最佳決策。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP