分類アルゴリズム~決定木~おまけ編
こんにちは!EMです^^
今回は分類アルゴリズム関連の知って得する知識を
さらっと学んでいこうと思っています!
分類アルゴリズムのヒント(Classification Tips)
高いカーディナリティ(high cardinality)
機械学習の世界では、「カーディナリティ」とは、特徴(feature)が想定できる
ありうる限りの値の数を指します。
たとえば、変数「US State」は、50通りの可能性を持つ値の変数です。
それを踏まえた上で、列のカーディナリティが高い場合
その列にはユニークな値が高い状態にあると言えます。
例えばカーディナリティの高い「列50」のデータを使用すると
情報が多すぎて一般化できない可能性が高く
トレーニングデータを過学習する可能性が高くなります。
高いカーディナリティへの対応方法
高いカーディナリティの一例として、郵便番号があげられます。
今回は郵便番号に焦点を当てた対応法としては
・ドメイン知識を使用して、これらの特徴を地域などのカーディナリティが
低いグループとして分けていきます。
(米国北東部などは、人気がある地域なのか?低いカーディナリみたいです)
*ドメイン知識とは、特定の分野の知識や理解、トレンドなどの情報です。
・最も頻度の高い値(トップ10など)をピックアップし
残りを「その他」としてグループ化します。
アンバランスなクラス(Unbalanced classes)
ターゲット変数の分布がかなり偏っている場合(たとえば、1が異常に少なく、0が多い場合)
モデルのパフォーマンスを検証するために使用される一般的なメトリックが破棄されます。
たとえば、1クラスの発生率が1%しかない場合、全部0だと呼ぶことが出来て
かつ99%の確率で正しいと言えるでしょう。
ただこれは、精度は高いですが、まったく役に立たないモデルです。
アンバランスなクラスを対処する方法の1つとして
発生率の低いクラスのオーバーサンプリング(重複の作成など)と
発生率の高いクラスのアンダーサンプリングを行って、発生率をバランスに近づけることです。
*オーバーサンプリング/アンダーサンプリング…
データ分析の中で、データセットのクラス分布を調整する為のテクニックの事
今回は分類アルゴリズムのおまけ編という事で
豆知識を盛り込んでみました。
ちなみに、もしもっと知りたい!という方は、ぜひコメントを残して頂くか
プロのエンジニアの方に効率的に学んでいくのをオススメしています。