2016-08-29 26 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

不均衡データの処理は、データマイニングおよび機械学習分野で最も困難な分野の1つです。したがって、すぐにあなたの質問に簡単に答えを出すことはできません。

私の経験では、罰金(または加重)評価指標を使用するのが最善の方法の1つ(短期間の回答)ですが、(常に!があります)、以下のリソースを参照して効果的なアプローチを見つけることができます。あなたの問題は、ツールの問題ではなく、科学的な問題の多くです。

Thisは状況を処理する必要がありますが、使用する前に背景を知っていることを確認してください。

Free

Not Free but more valuable

1

どのように貧しい精度が原因でデータの不均衡であるという結論に来たのか?あなたが提供したコードに基づいて、loans_dataはバランスの取れたデータ(50%のリスクのあるローンと50%の安全なローン)を持つべきです。確認するためにloans_dataを作成した後、リスクのあるローンと安全なローンの数を確認してください。

精度が低いのは、モデルまたはデータ自体をトレーニングするために選択した機能が原因である可能性があります。

0

ブーストツリーでパラメータ"class_weights="auto"を使用することもできます。これは、不均衡なデータをある程度処理します。詳細はこちらをご覧ください:default paramters

関連する問題