機械学習
現実世界では。 データは、しばしば想定されるほどクリーンなものではありません。 クエリーを用いて構造化されたデータから洞察を得るために、データマイニングやデータ整理が行われるのですが、このデータにはおそらく欠損値や肉眼で見ることのできないパターンが含まれています。 そこで登場するのが機械学習です。 アルゴリズムの深さを理解するためには、データ内の変数と、それらの変数が表すものに目を通す必要があります。 データの理解に基づいて、自分の成果を証明する必要があるため、これを理解することは重要です。 もし、データに5つ、あるいは50の変数が含まれていたとして、それらをすべて調べられたとしましょう。 しかし、200の変数が含まれていたらどうでしょうか? 1つ1つの変数に目を通す時間はないだろう。 その上、様々なアルゴリズムがカテゴリデータを扱えないため、カテゴリ列をすべて定量変数に変換し(定量的に見えるが、メトリクスはカテゴリであることを正当化する)、モデルに押し込まなければならない。 そのため、データ内の変数の数が増え、今では500の変数が存在することになります。 どうやってそれを処理するのでしょうか? すぐに次元削減で解決できると思うかもしれません。 次元削減アルゴリズムは次元を削減しますが、その解釈のしやすさはあまりよくありません。
分析が回帰ベースか分類ベースかによって、特徴選択技術は異なることがありますが、それを実装する方法の一般的な考え方は変わりません。
この問題に対処するための特徴選択技法をいくつか紹介します。
互いに相関の高い変数は、モデルに同じ情報を与えるので、分析にすべてを含める必要はありません。 例えば 例えば、あるデータセットに「閲覧時間」という特徴量と「閲覧中のデータ使用量」という特徴量があった場合、この2つの変数にはある程度の相関があり、偏りのないデータサンプルを採取してもこの高い相関が見られることが想像できるだろう。 このような場合、モデルの予測変数としてどちらか一方だけが必要です。なぜなら、両方を使用すると、モデルがオーバーフィットして、この特定の特徴に偏ってしまうからです。
P-Values
線形回帰などのアルゴリズムで、このようなことがあります。 そのモデルを使用して得られたP値を使用して、特徴の重要性を視覚化するのに役立つからです。 有意水準を設定した上で、得られたP値を確認し、この値が有意水準より小さければ、その特徴は有意である、つまり、この値が変化すれば、Targetの値も変化する可能性が高いということになる。
Forward Selection
Forward Selectionとはステップワイズ回帰を用いた手法のことで、この手法を用いています。 つまり、ゼロ地点、すなわち空のモデルから構築を開始し、その後、各反復は、構築されるモデルに改善があるように変数を追加する。 各反復で追加される変数は、その有意性によって決定されます。有意性は、すべての変数を用いて構築された最初の統計モデルから得られるP値など、さまざまな指標を用いて計算することが可能です。 時には、Forward Selectionは、モデルに同じデータを提供する場合でも、相関性の高い変数をモデルに追加することができるため、オーバーフィットを引き起こすことがあります(ただし、モデルは改善を示しています)。
Backward Elimination
Backward Elimination も段階的に特徴選択を行いますが、Forward Selection とは逆の方法で、段階的な特徴が含まれます。 この場合、初期モデルはすべての独立変数で始まり、各反復で新しく形成された回帰モデルに値を提供しない場合、これらの変数は1つずつ(反復ごとに1つ)除去されます。 これも、最初の統計モデルを用いて得られたP値に基づいて、このP値に基づいて、モデルから特徴量が排除される。 この方法も用いると、相関の強い変数の除去に不確実性がある。
Recursive Feature Elimination (RFE)
RFE とは広く用いられており、有意な数の特徴を正確に選択する手法/アルゴリズムである。 ビジネスに影響を与える「最も重要な」特徴の数を説明することもあれば、非常に多くの特徴(例えば200~400程度)を、モデルに少しでも影響を与えるものだけに絞り込み、残りを削除する手法として使用することもあります。 RFEでは、データセットに含まれる特徴のランクを表示し、そのランクを元に、特徴間の共線性、そしてもちろんモデルにおけるこれらの特徴の重要性に基づいて、再帰的ループで特徴を除去していきます。 RFEは、特徴量のランク付けとは別に、選択した特徴量について、その特徴量が重要かどうかを示すことができます(我々が選択した特徴量の数は、重要な特徴量の最適な数を表していない可能性が非常に高く、最適な特徴量は、ユーザーが選んだこの数より多いか少ないかもしれませんので)。
Charted Feature Importance
機械学習アルゴリズムの解釈可能性について話すとき、我々は、「機械学習アルゴリズムがどのように解釈できるか」ということに重きを置いています。 通常、線形回帰(P値を用いて特徴の重要度を分析できる)や決定木(特徴の重要度を実質的に木の形で示す)について議論します。 一方、ランダムフォレスト分類器、Light Gradient Boosting Machine、XG Boostなどのアルゴリズムでは、変数とその「重要度」をプロットする変数重要度表を使うことが多いようです。 これは、特徴の重要性をよく構造化して、分析対象のビジネスに提示する必要がある場合に特に便利です。
Regularization
Bias と variance 間のトレードオフは正規化によってモニターされる。 バイアスはモデルが学習データセットにどの程度オーバーフィットしたかを示す。 Varianceは、学習データとテストデータセットで作られた予測がどの程度違っていたかを教えてくれます。 理想的には、バイアスと分散の両方が減少する必要があります。 ここで、正則化が役に立ちます。 正則化には主に 2 つのタイプがあります。
L1 正則化 – Lasso: Lasso はモデルのベータ係数にペナルティを与えて、モデル内での重要度を変え、さらにそれらを接地(それらをゼロに変える、つまり、基本的に最終モデルからこれらの変数を削除)することができます。 一般に、Lasso は、データセットに多数の変数があり、重要な特徴がモデルにどのように影響するかをよりよく理解するために、それらの一部を削除する必要がある場合に使用します (つまり、Lasso によって最終的に選択され、それらの重要度が割り当てられる特徴)。 Ridgeの機能は、すべての変数を維持すること、すなわち、すべての変数を使用してモデルを構築し、同時に、モデルのパフォーマンスが向上するように、それらの変数を重要視することである。 Ridge は、データセット内の変数の数が少なく、したがって、得られた洞察や予測される目標結果を解釈するために、それらの変数のすべてが必要な場合に最適な選択です。
Ridge はすべての変数をそのまま維持し、Lasso は変数に重要度を割り当てる際に優れた仕事をするので、Ridge と Lasso の最高の機能を組み合わせて、アルゴリズム開発の方法として Elastic-Net として知られている両者を組み合わせて開発しました。 Elastic-Netはそのように理想的な選択肢となります。