[英]Machine learning with incomplete data
我有一百萬個樣本,大約有1000個功能。 但是,每個樣本僅測量特征的一個子集。 我想進行機器學習以根據功能預測結果,但是,我不知道如何處理丟失的數據。 由於數據是按隨機順序丟失的,因此我無法根據丟失的功能對數據進行分類,因為類的數量很大,每個類中的樣本很少。 解決此類問題的最佳解決方案是什么?
處理缺失值的方法
1.刪除:
在逐列表刪除中,我們刪除缺少任何變量的觀察值。 簡單性是此方法的主要優點之一,但是此方法降低了模型的功效,因為它減小了樣本量。
在成對刪除中,我們對所有存在目標變量的情況進行分析。 這種方法的優點是,它可以保留盡可能多的案例以供分析。 這種方法的缺點之一是,它對不同的變量使用不同的樣本量。
當缺失數據的性質為“完全隨機缺失”時,將使用刪除方法,否則非隨機缺失值可能會偏向模型輸出。
2.均值/眾數/中位數推算 :
插補是一種用估計值填充缺失值的方法。 目的是采用可以在數據集的有效值中識別的已知關系,以幫助估計缺失值。 均值/眾數/中位數插補是最常用的方法之一。 它包括用該變量所有已知值的均值或中位數(定量屬性)或眾數(定性屬性)替換給定屬性的缺失數據。 它可以有兩種類型:
廣義歸因:在這種情況下,我們計算該變量所有非缺失值的均值或中位數,然后用均值或中位數替換缺失值。 像上表一樣,缺少變量“ Manpower”,因此我們取“ Manpower”的所有非缺失值的平均值(28.33),然后用它替換缺失值。
相似情況的推算:在這種情況下,我們分別計算性別“男”(29.75)和“女”(25)的平均值,這些平均值均不含缺失值,然后根據性別替換缺失值。 對於“男性”,我們將缺失的人力值替換為29.75,對於“女性”將替換為25。
3.預測模型:
預測模型是處理丟失數據的復雜方法之一。 在這里,我們創建了一個預測模型來估計將替代缺失數據的值。 在這種情況下,我們將數據集分為兩組:一組沒有變量的缺失值,另一組沒有值。 第一個數據集成為模型的訓練數據集,而具有缺失值的第二個數據集是測試數據集,具有缺失值的變量被視為目標變量。 接下來,我們基於訓練數據集的其他屬性創建一個模型來預測目標變量並填充測試數據集的缺失值,我們可以使用回歸,ANOVA,Logistic回歸和各種建模技術來執行此操作。 這種方法有兩個缺點:
模型估計值通常比真實值表現得更好
如果數據集中的屬性與缺少值的屬性之間沒有關系,則該模型將無法精確估計缺失值。
4. KNN歸因:
在這種估算方法中,使用給定數量的屬性來估算屬性的缺失值,這些給定數量的屬性最類似於其值缺失的屬性。 使用距離函數確定兩個屬性的相似性。 還已知具有某些優點和缺點。
好處:
k近鄰可以預測定性和定量屬性
不需要為每個缺少數據的屬性創建預測模型
具有多個缺失值的屬性可以輕松處理
考慮數據的相關結構
壞處:
在分析大型數據庫時,KNN算法非常耗時。 它搜索所有數據集以查找最相似的實例。
k值的選擇非常關鍵。 k的較高值將包含與我們需要的屬性明顯不同的屬性,而k的較低值意味着缺少重要屬性。
資料來源: https : //www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/
您的問題是機器學習中數據分析的常見情況。 雖然很難說出如何准確解決問題的方法-不知道數據,您要預測的內容或所考慮的模型(例如生成或區分模型),但我將盡力為您提供一些指導。
參考文獻
首先,提供一些參考:我發現(Benjamin Marlin的博士學位論文)( http://www.cs.ubc.ca/~bmarlin/research/phd_thesis/marlin-phd-thesis.pdf )是一個不錯的起點。還沒有閱讀完整的博士學位論文,只是翻閱了幾篇,這可能有助於您快速入門,還有Little和Rubin撰寫的關於“缺少數據的統計分析”的書可能會有用對於您而言,該主題有很多基礎知識,該評論可能會幫助您獲得概述: 數據丟失方法的評論(該評論示例性地討論了有關哮喘症狀的研究研究,但方法仍可能是在文獻之下,還有一個關於缺失數據的Wikipedia頁面,該頁面可能提供一些基本見解。
摘要
一些簡單的方法可以幫助您入門:
總體而言,有許多有效的方法,並且這在很大程度上取決於您的任務/應用程序。 不過,首先要確定為什么丟失數據以及丟失什么數據。 然后,遵循一些參考資料並開始嘗試簡單的方法,以查看適合您的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.