2016-09-22 76 views
0

我有這種分類/迴歸任務,但最有趣的是每個記錄的特徵數量是不同的。特徵已經被提取並且已經準備好,因此數據的上下文是未知的,並且特徵的值在-10到10之間波動。具有超過200個特徵的記錄,同樣存在特徵數量低於20的記錄。處理具有不同數量特徵的數據

數據幀df有兩列:IDATTRIBUTES和輸出看起來是這樣的:

 ID           ATTRIBUTES     
    0 1 1.1 2.1 3.3 4.4 5.5 6.6 ... 99.9 100.0 101.1 102.2 
    1 2 1.1 2.1 3.3 4.4 5.5 6.6 ... 45.0 46.0 47.0 49.0 
    2 3 1.1 2.1 3.3 4.4 5.5 6.6 ... 9.0 10.0 11.0 12.0 
    3 4 1.1 2.1 3.3 4.4 5.5 6.6 ... 70.0 71.0 72.0 73.0 
    4 5 1.1 2.1 3.3 4.4 5.5 6.6 ... 131.0 132.0 134.0 135.0 

我已經列ATTRIBUTES分成單獨的列:

df['ATTRIBUTES'].str.split(' ', expand=True).astype(float)

現在df看起來是這樣的:

 0 1 2 3 4 5 6 7 8 9 ... 131 132 133 134 135 
     0 1.1 2.1 3.3 4.4. 5.5. 6.6. 7.7 8.8 9.9 ... NaN NaN NaN NaN NaN 
     1 1.1 2.1 3.3 4.4. 5.5. 6.6. 7.7 8.8 9.9 ... NaN NaN NaN NaN NaN 
     2 1.1 2.1 3.3 4.4. 5.5. 6.6. 7.7 8.8 9.9 ... NaN NaN NaN NaN NaN 
     3 1.1 2.1 3.3 4.4. 5.5. 6.6. 7.7 8.8 9.9 ... NaN NaN NaN NaN NaN 
     4 1.1 2.1 3.3 4.4. 5.5. 6.6. 7.7 8.8 9.9 ... 131.0 132.0 133.0 134.0 135.0 

假設RECORD1有102層的功能,REC2 - 49,rec3- 12,rec4-73,rec5 - 135後分割操作記錄rec1, rec2, rec3, rec4被填充了NaN值填充數據框。

一些谷歌上搜索我已經與以下思路上來後:

  1. 首先想到的是改變使用 Imputer有意義的功能NaN值;
  2. 丟棄少於20(40,60等)特徵的記錄。

對於分類我選擇了RandomForest

基準性能約爲0.4117,同時驗證訓練集的10%(使用train_test_split)。

儘管這一切我曾嘗試:用ExtraTreesClassifier

基準性能早已不是通過主成分分析(PCA)

  1. Feature scaling - standardisation
  2. 降維
  3. 基於樹的特徵選擇提出了高於0.4 ... 所以我的問題是 - 如何應該繼續缺乏有限元特定記錄的特徵?

回答

0

數據歸集威力工作時

  • 與缺少的屬性數據點代表你的數據點
  • 的一小部分缺少的屬性的用量爲每數據點並不大。

原因你得到不好的結果 - 至少就數據完整性而言 - 是你真的扭曲數據中的數據變化,其歸集和有效,你都是如假包換的任何潛在的問題具體,隱藏在您的原始數據中的元信息。您在分類問題上的工作結果非常依賴於您的數據質量和模型的「正確性」。

我就開始嘗試一些不同的方式來處理這類數據的問題。無論如何,這些不是唯一的前進方向,哪一個最適合您取決於您​​的問題和數據的具體情況。

  1. 看看是否可以聚合一些「缺失」或「額外」屬性。是否會出現這樣的情況,即每個數據點具有固定數量的功能,然後是可以以某種方式聚合的「可選」功能?

  2. 看看你能不能細分的方式,你的數據 - 在各段內的 - 你必須持有的功能相同數量的數據點。然後嘗試將這些分類符合在這些分段中。

  3. 檢查是否有功能量和數據點之間的階級一些模式。

  4. 下降,二者具有數據集中NaN價值的所有功能。

我希望這會有所幫助!

+0

1.記錄之間缺少特徵(在某些情況下超過200個特徵)存在巨大差距,因此我不確定額外的特徵聚合是否有幫助。 2.我做了類似的事情 - 通過「切斷」附加特徵列來減少特徵的數量,因此所有記錄可以具有相同數量的特徵,儘管可能消除了一些重要特徵。假設有這樣的模式,我應該如何處理這些信息? –

+0

如果檢測到這種模式,那麼也許它會幫助添加一個新功能 - 所有數據點 - 封裝此信息,您可以使用一個比例尺,然後「切斷」「額外」功能,並嘗試適合所有數據點都具有的功能加上新功能。此功能將用作您在特徵量和類標籤之間找到的相關性的「指標」。 – Thanos

相關問題