データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

AICとBICについて


最近、重回帰分析やx-means法について調べていて、
AICBICという指標について気になったので、メモ代わりに。


簡潔に言うと、この2つの値はモデルの当てはまりの良さを表すために使われています。
定義としては以下の式で表されます。

AIC = T * log(s^2) + 2 * K
BIC = T * log(s^2) + K * log(T)

T: データ数
K: モデルに含まれるパラメータ数
s^2: モデルの誤差項の分散推定量


2項目がペナルティ項と呼ばれていて、複雑なモデルほど大きくなる値です。
この項がないとやたら複雑なモデルが良いモデルということになってしまいます。
これが違うことによって、BICを使った方がよりシンプルなモデルになります。


使い方としてはモデルに合わせて使う情報量を変えるとよいみたいです。
たとえば、モデルパラメータをBayes流で推定するならばBIC
最尤法で求めるならAICというようになります。

補足

x-means法は最適なクラスター数を自動で決定してくれるk-means法のことで、
クラスタリングされた個々のクラスターについて、そのクラスターをkmeans法で2分割し、
BICが低くなれば、その2つをクラスターとして採用し、更に分割していくというアルゴリズムになっています。