在機器學習方面,人們可以采取的改進 ML 模型預測的方法是選擇正確的特征并刪除對模型性能影響微不足道的特征。因此,選擇正確的特征可能是數據科學家或機器學習工程師需要做的最重要的步驟之一,他們通常負責構建那些能夠很好地概括測試數據集的復雜模型。
例如,考慮預測一個人是否會患心臟病的任務,可以產生良好影響的最強指標之一就是體重指數 (BMI)。當我們試圖預測一個人可能患有的血壓 (BP) 水平時,沒有考慮這個特征并且沒有在我們的數據集中使用它,通常會導致結果不太準確。在這種情況下,BMI 可以強烈表明一個人患有這些疾病。因此,考慮這個特征很重要,因為它會對結果產生很大的影響。
考慮另一個預測某人是否會拖欠貸款的案例研究。在向某人提供貸款之前,所考慮的銀行會詢問一系列問題,例如工資、凈資產和他們的信用記錄。如果我們要讓一個人根據上述一系列因素來決定是否必須向某人提供貸款,他/她會查看總工資和他們的整體信用記錄。
同樣,當數據以與人類相同的方式提供給 ML 模型時,它會學會獲得重要的表示,以便它決定一個人是否會償還貸款。如果我們刪除諸如工資之類的特征,ML 模型將缺少關鍵信息,無法完美地解讀一個人是否會償還貸款。因此,它的預測可能會非常錯誤,因為數據中缺少最重要的特征之一(工資)。因此,這凸顯了擁有正確的特征對于我們的機器學習和深度學習模型在測試集和實時數據上表現良好的重要性。
現在我們已經了解了確定正確特征對于確定模型預測質量的重要性,我們現在將繼續尋找有助于我們的模型預測并改善其結果的各種特征化技術。
插值
這是我們在數據中填充缺失值的一種方法。我們在互聯網上找到了大量數據集,例如包含幾乎所有特征和標簽而沒有異?;蛉笔祿耐婢邤祿?。然而,這在現實生活中可能遠非如此,因為大多數現實世界數據都包含缺失值。因此,必須采取特定步驟來確保以某種方式填充缺失的值。
我們可以使用各種方法來執行插值。我們可以使用特征的平均值或平均值來填充缺失值。還有其他方法,例如特征的中位數插值和眾數插值。因此,通過執行這些方法,我們不會得到包含缺失值的數據。
如果我們要預測一個人是否會拖欠貸款,我們會將薪水作為我們機器學習模型的重要特征之一。但是,所有參與者的薪水信息可能不存在于我們的數據中。因此,最好的方法之一是分別用整個薪資特征的平均值來估算或填充這些缺失值。
縮放我們傾向于為我們的模型提供一組不同的特征,基于此,模型將確定用于預測結果或目標變量的最佳特征。但需要注意的是,我們使用的特征在我們最初收到數據時可能具有不同的尺度。
以用于確定房價的特征為例。在這種情況下,特征可能是臥室數量和利率。我們無法比較這兩個特征,因為臥室數量以單位為單位,而利率以美元 ($) 為單位。如果我們將這些數據提供給我們的 ML 模型,它只會理解美元比臥室數量特征高出很多單位。然而,正如我們上面所看到的,這遠非事實。因此,在將特征提供給模型進行預測之前,執行特征的縮放操作非常重要。
歸一化這是我們執行縮放操作的一種方式,在轉換數據中的其他值之前,先對所考慮的各個特征取最大值和最小值。我們確保特征的最小值為 0,最大值為 1。這將確保我們能夠使用模型產生最佳結果并獲得良好的預測。以客戶是否會流失(離開)或繼續使用互聯網服務為例,月費和使用期限等特征是一些重要特征。月費可以以美元 ($) 為單位,而使用期限可以以年或月為單位。由于它們的規模不同,因此規范化在這種情況下非常方便,并確保我們獲得最佳的模型預測。
標準化標準化在轉換特征方面與規范化類似,不同之處在于我們以這樣一種方式轉換數據,即我們得到一個輸出,該輸出對于每個單獨的特征都具有單位方差和零均值。我們已經看到,對各種特征使用不同的尺度常常會使模型感到困惑,因為模型會因為數據的尺度而假設一個特征比另一個特征更重要,執行標準化操作有助于確保我們獲得最佳預測。因此,這是機器學習從業者在構建最佳預測時經常采取的一步。
在預測汽車價格時,我們會分別考慮氣缸數和里程數等特征。由于這兩個特征的尺度不同,我們必須執行標準化,以便在給出預測模型之前,我們可以在特征之間找到共同點。
獨熱編碼想象一個場景,我們的數據中有大量分類特征。我們數據中的一些分類特征可以包括國家、州、名稱等特征。從這些特征中,我們看到,我們只生成這些實例的出現,而沒有得到數字表示。為了使我們的 ML 模型能夠很好地工作并利用數據,分類特征(如上所示)應該轉換為數字特征,以便模型執行計算。因此,我們執行這一步獨熱編碼,以便將分類特征轉換為數字特征?,F在人們可能會質疑算法實際上是如何做到這一點的。它只是將每個特征的每個類別視為單獨的列。特定類別的存在或不存在將被標記為 1 或 0。如果我們發現特定類別存在,反之亦然,我們將值設為 1。
響應編碼這是另一種與獨熱編碼非常相似的方法,因為它可以處理分類數據。但是,將分類特征轉換為數值特征的過程與之前的方法不同。在響應編碼中,我們最感興趣的是每個類別的目標平均值。例如,以確定房價為例。為了預測各個地區的房價,我們將對各個地區進行分組,并找出每個地區的平均房價。稍后,我們將用每個地區特定的平均房價替換地區,以表示先前作為分類特征的數值。因此,我們的模型可以固有地了解社區在確定房價方面有多大影響。因此,響應編碼在這種情況下非常方便。考慮到預測汽車價格的問題,可能會有 SUV 或轎車等汽車。有時可以通過這兩個特征來確定價格。因此,當使用響應編碼轉換此分類特征(汽車類型)時,響應編碼會很有用。我們僅取 SUV 和轎車的平均價格。如果車型為 SUV,我們將其替換為 SUV 車型細分市場的平均價格。如果車型為轎車,我們將其替換為轎車車型細分市場的平均價格。
處理異常值異常值是被視為數據異常的數據點。但是,還需要注意的是,數據中的某些異常值對于模型正確確定結果非常有用且重要。如果我們發現數據中存在大量異常值,則可能會使模型無法對異常值做出正確的預測,而無法很好地概括實時數據。因此,我們必須采取正確的步驟,確保在訓練模型并將其投入生產之前將其移除。有多種方法可以去除數據中的異常值。其中一些方法包括找到每個特征的標準差。如果數據點高于或低于平均值 3 個標準差,我們可以自動將它們歸類為異常值并將其移除,這樣它們就不會影響機器學習模型的預測。
考慮到一個人是否會拖欠貸款,可能會有關于此人工資的信息。薪資信息可能并不總是準確的,并且這個特征中可能存在相當多的異常值。使用這些數據訓練我們的 ML 模型通常會導致它在測試集或未見過的數據上表現不佳。因此,最好的方法是在將數據提供給 ML 模型之前從數據中刪除異常值。這可以通過了解薪資的標準差來實現,并且高于或低于 3 個標準差的值會自動被刪除,以便模型做出可靠的預測。
對數轉換
當我們發現數據中存在嚴重偏差時,可以使用這種技術。如果存在大量偏差,即數據包含大量集中在特定區域的值,而一些異常值和數據點遠離平均值,則我們的模型更有可能無法理解這種復雜的關系。
因此,我們將使用對數變換來轉換這些數據并減少偏差,以便模型對異常值更具魯棒性,并且能夠很好地概括實時數據。對數變換可以是一種方便的特征工程技術,可以分別提高 ML 模型的性能。
與上述預測一個人是否會拖欠貸款的問題類似,我們也可以將對數變換應用于工資,因為我們看到工資信息中普遍存在很多偏差。大量人(約 80%)獲得基本工資,而一小部分人(約 20%)獲得大量工資。數據中存在相當大的偏差,實際上可以通過使用對數變換來消除。
結論讀完這篇文章后,我相信您能夠理解對您的機器學習模型很重要的各種特征工程技術。在正確的時間使用最佳的特征工程技術確實非常方便,并且可以通過使用人工智能為公司生成有價值的預測。
來源:PyTorch研習社
-
人工智能
+關注
關注
1791文章
47344瀏覽量
238728 -
數據模型
+關注
關注
0文章
49瀏覽量
10032 -
機器學習
+關注
關注
66文章
8421瀏覽量
132710
發布評論請先 登錄
相關推薦
評論