DataRobotのデータサイエンティスト中野です。
以前、線形モデルのように係数が確認可能で、多くのデータセットで機械学習のモデルと同レベルの精度の予測が可能と言われている一般化加法モデル (Generalized Additive Model, GAM)を紹介しました*1。同時に格付表と呼ばれる一般化加法モデルの構造を形作る係数の表の見方も説明しました。こちらの表の数字を読むことで、モデルを理解し予測値を計算することが可能になります。
今回は最近DataRobotに加わった格付表を編集し、その表の通りの一般化加法モデルを生成するという機能を説明します。このような編集が必要な場面としては、以下のような場面が考えられます。
- モデルが見つけた係数(ルール)が現場のビジネス感覚と合わない、あるいは納得感がない場合。このような場合現場の人の理解・同意が得られるような係数のモデルに変更することができます、
- モデルが見つけた係数(ルール)がビジネス的な係数の要件と相反する場合。例えば高級車を運転している人が事故に合いにくいという事実が仮に存在しているとしても、現実として高級車ほど保険料が安くなると行ったルールはビジネス的な側面からい受け入れられないといった事になります。そのような場合ビジネス的な要件を考慮した係数に変更することができます。
変更可能な項目
この機能で変更可能となっている項目は2つです。
- Intercept : 切片の値
- Coefficient : 特徴量のValueで指定された値域への係数
変更方法
格付表に変更を加えるプロセスは非常に簡単です。ダウンロードしたcsvの格付表の変更したいCoefficientあるいはInterceptに変更を加えます。そのファイルをドラッグ&ドロップで再度アップロードします(※ファイル名は英数字にする必要があります)。アップロードのプロセスで格付表に加えた変更点やそのフォーマットが所定のフォーマットであるかの検定が行われます。検定に失敗した場合、そのアップロードする格付表を再度確認してください。以下のように問題なくアップロードできた状態で、「Add to Leaderboard」をクリックしていただけるとその格付表通りのモデルが生成されます。
このように作成したモデルは元になった親モデル(Parent Model)と結びついた子モデル(Child Model)と呼ばれます。一般的に子モデルはビジネスルールを重視した係数のモデルであるがゆえに、精度の面では最適な係数でないため精度は親モデルより悪くなります。
まとめ
今回は一般化加法モデルの係数を変更してモデルを生成する方法を紹介しました。この機能を使ってい使っていただく事で一般化加法モデルの係数をビジネスルールに従うように変更したモデルを生成することが可能になりました。生命保険業界での利用事例の紹介であったように、規制の強い現場で特に活躍する機能となっていますので活用して下さい。
*1 : 一般化加法モデルと格付表の記事を参照