2016-08-29 124 views
1

我有一個由10^6條目組成的數據集。但問題是數據是Imbalance不平衡分類數據

我使用Adboost創建了一個線性分類器。但由於數據不平衡,我的準確性很差。如何處理不平衡數據。我正在使用Graphlab

下面是數據的平衡簡單的代碼:

safe_loans_raw = loans[loans[target] == 1] 
risky_loans_raw = loans[loans[target] == -1] 

# Undersample the safe loans. 
percentage = len(risky_loans_raw)/float(len(safe_loans_raw)) 
safe_loans = safe_loans_raw.sample(percentage, seed = 1) 
risky_loans = risky_loans_raw 
loans_data = risky_loans.append(safe_loans) 

但是精度仍然沒有批准任何人都可以爲此提供有效的方法?

回答

1

處理不平衡數據是數據挖掘和機器學習領域中最具挑戰性的領域之一。因此,你不會馬上找到簡單,直接的答案。

根據我的經驗,使用懲罰性(或加權)評估指標是最好的方法之一(短回答),但是(總是有一個但是!),您可以參考以下資源以找到有效方法。您的問題更多的是一個科學問題,而不是該工具的問題。

This應該處理這種情況,但要確保在使用它之前知道背景。

Free

Not Free but more valuable

1

你是怎樣一個結論來,窮人的準確性是因爲數據的失衡?因爲根據您提供的代碼,loans_data應該有平衡的數據(大約50%的風險貸款和大約50%的安全貸款)。請在創建loans_data確認後查看風險貸款和安全貸款的數量。

精度差可能是因爲您選擇用於訓練模型或數據本身的功能。

0

您也可以在增強樹中使用參數"class_weights="auto",它在一定程度上處理不平衡數據。欲瞭解更多信息,請看看這個:default paramters