特定のケースで特別なことは何もないと仮定すると、デフォルト(平均二乗誤差)を使用するか、ログの誤差の平均を使用するか、カイ2乗誤差を使用する場合にも、適切な議論があると思います。
コスト関数の目的は、誤った予測であなたがどれほど「動揺」しているか、具体的にはどの「間違い」があなたを最も悩ませているかを表すことです。これはバイナリ応答にとって特に重要ですが、どのような状況でも問題になる可能性があります。
平均二乗誤差(応答)
C=1n∑i(Yi−Y^i)2
MSEを使用すると、上と下のエラーに等しく敏感で、大小の予測に対して等しく敏感です。これはかなり標準的なことなので、ほとんどの状況で眉をひそめられるとは思いません。
平均二乗誤差(ログ応答の)
C=1n∑i(lnYi−lnY^i)2
カウントデータを使用しているので、対称性もサイズも無関心ではないと主張できます。10の予測で10カウント外れることは、1000の予測とは大きく異なります。これは、リンク関数までのコストを一致させているため、多少「標準的な」コスト関数です。これにより、コストがモデルで想定されている分散分布と確実に一致します。
カイ二乗誤差
C=1n∑i(Yi−Y^i)2Y^i
3番目の方法は、カイ2乗誤差を使用することです。これは、GLMを他のカウントベースのモデルと比較する場合、特にGLMに要素がある場合に特に魅力的です。エラーログレスポンスと同様に、これはサイズに応じて変化しますが、予測カウントを中心に対称です。パーセンテージエラーに基づいて適合度を評価しています。
離散性について
質問は、バイナリ応答変数があるドキュメントの例を引用しているため、別のコスト関数を使用します。バイナリ応答の問題は、応答が常に正確に0または1であっても、GLMが0と1の間の実数を予測することです。その数が正しい応答に近いほど、より良いと言えます。予測しますが、多くの場合、これは望まれません。その理由は、0または1のように振る舞うことが多いため、0の予測として0.5未満の値をとることになります。その場合、「誤った」予測の数を数えることは理にかなっています。ここでの議論は、真/偽の質問に対しては、あなたが正しいか間違っているかしかできないということです-間違っている段階はありません。
あなたのケースでは、カウントデータがあります。ここでは、応答と同じサポートにない予測を受け入れることがはるかに一般的です。たとえば、家族あたり2.4人の子供、または年間9.7人の死亡の予測。通常、これは「正しい」または「間違っている」ということではなく、できる限り近いため、何もしようとはしません。ただし、カウント率が非常に低いためか、整数である予測が本当に必要な場合は、最初に予測を四捨五入して「整数」またはエラーをカウントできない理由はありません。この場合、上記の3つの式が引き続き適用されますが、最初にを丸めるだけで済みます。Y^
cv.glmnet
パッケージ内の関数は、ポアソンファミリでglmnet
使用しますtype.measure="deviance"
。