2017-06-20 13 views
-2

我有一個形狀的數據幀2701x128它有很多缺失的值。事情是有些行可以有95%的填充數據,有些只有5%。讓我試着想象它:如何輸入不均勻缺失的數據

X軸是行(後排序)的數量,y軸是非零值的數量(排序,直方圖等)

enter image description here

X - 軸是(後排序),y軸顯示,非零的專欄中有多少在所有行(排序的,直方圖等)

enter image description here

我需要的列數:我需要儘可能準確地輸入數據,因爲這是我需要解決的問題。 問題:我不能使用均值,中值和其他統計時刻對所有內容進行插值,因爲它非常粗糙。我也不能創建一個通常的學習模型,因爲在缺失數據中沒有任何結構。

你能否建議一些與學習模型一樣準確的模型,它可以對分佈建模,但能夠處理完全隨機的錯過。所以,顯然,主要的問題是從這種非結構化的遺漏中創建數據集。目前我找不到解決方案。

回答

2

我想第一個問題是考慮你的數據作爲行結構 去想想它作爲一個基於列的

有被稱爲日本的遊戲數獨,我可以建議你按照它的戰略

首先你需要找出最多(但不是100%填充的列) 我們稱這一列爲B列 丟失數據的百分比是多少?如果它是一小部分 - 建立一個直方圖並看看它的PDF - 可能是簡單的平均值和中位數都可以解決這個問題?

是否有任何100%填充列?讓我們稱這個爲G列 試圖找出是否有任何非完全填充的列與填充的列強相關。如果是這樣 - 根據這種相關性推算缺失值 - 您可以嘗試使用多於2個填充列並進行基本回歸

您甚至可以嘗試從其他一組非全部列的B列中恢復部分數據填充列和其他部分由另一套非完全填充列,你可以做很多次

當然,你會有一種科學怪人的怪物 - 但它是值得嘗試,你總是可以驢多麼好它是基於CV的效果

但是它只是一個簡短的草圖

+0

1.我不認爲它是一個行結構 - 我ev恩繪製2圖:一個顯示未命中是行,其他 - 在列。 2.這些迭代alghoritm是好的,實際上,這是我的基準線,但從「錯誤」的角度來看,這並不好。我的意思是,對於數獨而言,它會運行良好,因爲條件是嚴格確定的,但在數據集中甚至沒有。因此,如果插入列/行,則忽略,行/列可能是某個其他行/列的非常接近的鄰居,並且迫使這種觀察具有普遍分佈。 你能想到這個「bayessian」的問題嗎? –

+0

那麼爲什麼不使用貝葉斯方法 - 基於列中的填充數據,您可能有一個概率類別的連續變量的概率範圍 - 比你有其他列中的一些數據,並嘗試計算後驗概率並因此在整個範圍內進行。或者你可以用python中的sklearn來使用Naive Bayes –