分類モデルを改善する

完了

演習では、モデルにより雪崩がある程度予測できることがわかりましたが、まだ約 40% の時間は間違っていました。 この誤差の量は、雪崩に関わっているのがこの特徴 (弱い雪の層の数) だけではないためです。

それでは、分類モデルのパフォーマンスを向上させる 2 つの主要な方法について説明します。つまり、追加の特徴を用意する方法と、モデルに入力するデータを選ぶ方法です。

追加の特徴を用意する

線形回帰と同様に、ロジスティック回帰も 1 つの入力に制限する必要はありません。 特徴を組み合わせて予測することができます。 たとえば、降雪量と、トレールに散らばっているハイカーの数に基づいて、雪崩を予測してみることができます。 これらの特徴の両方を同じモデルに入力して、雪崩の確率を計算できます。

内部的には、線形回帰と同様に、ロジスティック回帰によって特徴が組み合わされます。 つまり、すべての特徴は独立したものとして扱われ、特徴が互いに影響を与え合わないと見なされます。 たとえば、このモデルでは、降雪量によって、トレールを訪れる人の数は変わらないものと仮定されます。 また、既定では、トレールを歩いているハイカーの数に関係なく、雪が降ると一定の大きさで雪崩のリスクが高まるものと想定されています。

独立した特徴の良い面と悪い面

ロジスティック回帰では、関連の仕方をモデル化できるように特徴を組み合わせるよう明示的に指定できますが、既定では行われません。 これは、ロジスティック回帰が、"デシジョン ツリー" や "ニューラル ネットワーク" などの、他のほとんどのよく知られた分類アルゴリズムと異なる点です。

ロジスティック回帰では特徴が既定で独立して扱われるという事実は、長所であると共に、注意する必要がある制限でもあります。 たとえば、"人の数を増やすとリスクが増加する" のような、ほかのモデルでは通常は実行できない明確な予測を簡単に行うことができます。 また、トレーニング データをオーバーフィットする可能性も減少します。 これに対し、特徴が "現実の世界で実際に関連している" 場合、モデルはうまく機能しない可能性があります。 たとえば、積雪がある場合は 5 人のハイカーが山を越えると危険ですが、雪崩の原因になる雪がない場合は 5 人は安全です。 この例で、この微妙な違いを取り上げるには、降雪とハイカーの数の間の相互作用を探すよう、ロジスティック回帰モデルに明示的に指示する必要があります。

特徴について検討する

モデルを改善するもう 1 つの方法は、提供する特徴と理由を実際に考えることです。 一般に、モデルに追加する特徴を増やすほど、モデルの動作が向上します。 ただし、この相関関係が当てはまるのは、提供する特徴が関連しており、既存の特徴では説明されない内容を説明している場合のみです。

オーバートレーニングの回避

役に立たない特徴を追加すると、モデルは "過剰トレーニング" になる可能性があります。 動作が良くなるように見えますが、実際には現実世界での動作は悪くなります。

たとえば、降雪量、ハイカーの数、気温、見つかった鳥の数の日次記録があったものとします。 見つかった鳥の数は、おそらく関連性の高い情報ではありません。 しかし、指定すると、モデルにより、特定の日に見つかった鳥の数と雪崩の間の関係がモデル化されてしまいます。 雪崩があった日に鳥が多く見つかった場合、このモデルでは、鳥が雪崩を引き起こす原因になる可能性が示唆されます。 そして、雪崩を予測するために体系的な鳥監視プログラムを設定し、全く機能しないことがわかるだけです。

アンダートレーニングの回避

よく考えずに特徴を使用すると、"アンダートレーニング" になり、予測を可能な限り正しく行うことができなくなる可能性があります。 たとえば、気温とハイカーの数はどちらも、雪崩と密接に関連している可能性があります。 しかし、人が天気の良い日にのみ歩く場合、モデルでは、気温と比較してハイカー数の重要性を区別するのが難しくなる場合があります。 同様に、number_of_hikers を単に high または low ではなく、正確な訪問者数として指定すると、モデルがより適切に機能することがわかることがあります。 次に、モデルのトレーニングによって、より正確な関係を見つけましょう。