確かな情報です!機械学習で知っておくべき 5 つの回帰アルゴリズム!

確かな情報です!機械学習で知っておくべき 5 つの回帰アルゴリズム!

回帰アルゴリズムといえば、理解しやすく非常に単純なため、多くの人が線形回帰を思い浮かべると思います。ただし、線形回帰は、その基本的な機能と移動の自由度の制限のため、実際のデータには適用できないことがよくあります。

実際、新しい方法を評価および研究する際に、比較のためのベンチマーク モデルとして使用されることがよくあります。実際のシナリオでは、回帰予測の問題に遭遇することがよくあります。今日は、5 つの回帰アルゴリズムをまとめて紹介します。

1. ニューラルネットワーク回帰

理論

ニューラル ネットワークは非常に強力ですが、通常は分類に使用されます。信号はニューロンの層を通過し、いくつかのクラスにまとめられます。ただし、最後に活性化関数を変更することで、回帰モデルに非常に迅速に適応できます。

各ニューロンは活性化関数を通じて以前の接続の値を渡して、一般化と非線形性の目的を達成します。よく使用される活性化関数: シグモイドまたは ReLU 関数。

最後の活性化関数(出力ニューロン)を線形活性化関数に置き換えることで、出力を固定カテゴリ外のさまざまな値にマッピングすることができます。この方法では、出力は入力をいずれかのカテゴリに分類する確率ではなく、ニューラル ネットワークが観測値を配置する連続値になります。この意味では、線形回帰のニューラル ネットワーク補完のようなものです。

ニューラル ネットワーク回帰には、非線形性 (複雑さに加えて) の利点があり、シグモイドやその他の非線形活性化関数を介してプロセスの比較的早い段階でニューラル ネットワークに導入できます。ただし、ReLU は負の値間の相対的な差を無視するため、活性化関数として ReLU を過度に使用すると、モデルが負の値の出力を回避する傾向がある可能性があります。これは、ReLU の使用を制限し、より負の適切な活性化関数を追加するか、トレーニング前にデータを厳密に正の範囲に正規化することで対処できます。

成し遂げる

Keras を使用して、最後の層が線形活性化層を持つ密な層、または単純な線形活性化層である限り、次の人工ニューラル ネットワーク構造を構築しました。

  1. モデル = シーケンシャル()
  2. モデルを追加します(Dense(100, input_dim=3, activation= 'sigmoid' ))
  3. モデルを追加します(ReLU(アルファ=1.0))
  4. model.add (Dense(50, activation= 'sigmoid' ))
  5. モデルを追加します(ReLU(アルファ=1.0))
  6. model.add (Dense(25, activation= 'softmax' ))
  7. #重要な部分
  8. model.add (Dense(1, activation= 'linear' ))

ニューラル ネットワークの問題は、常にその高い分散性と過剰適合の傾向にあります。上記のコード例には、SoftMax や Sigmoid など、非線形性のソースが多数あります。ニューラル ネットワークが純粋に線形構造のトレーニング データで適切に機能する場合は、ニューラル ネットワークの線形性と高い変動性を模倣しながらも、データ サイエンティストが深さ、幅、その他のプロパティをより細かく制御して過剰適合を制御できる、剪定決定木回帰を使用する方がよい場合があります。

2. 決定木回帰

理論

分類と回帰は、どちらも yes/no ノードのツリーを構築することによって機能するため、決定木では非常によく似ています。分類終了ノードは単一のクラス値 (バイナリ分類問題の場合は 1 または 0 など) になりますが、回帰ツリーは連続した値 (4593.49 または 10.98 など) で終了します。

機械学習タスクとしての回帰の特殊な性質と高い分散のため、決定木回帰変数は慎重に剪定する必要があります。ただし、回帰を実行する方法は、連続的に値を計算するのではなく、不規則です。したがって、決定木は自由度が最大になるように剪定する必要があります。

成し遂げる

決定木回帰は sklearn で簡単に作成できます。

  1. sklearn.treeからDecisionTreeRegressor をインポートします
  2. モデル = DecisionTreeRegressor()
  3. モデルをフィット(X_train, y_train)

決定木回帰パラメータは非常に重要なので、モデルに適切な基準を見つけるには、sklearn の GridCV パラメータ検索最適化ツールを使用することをお勧めします。パフォーマンスを正式に評価する場合は、標準のトレーニング分割ではなく K 分割テストを使用して、標準のトレーニング分割のランダム性が高分散モデルの優れた結果に干渉するのを回避します。

3. LASSO回帰

理論

LASSO 回帰は線形回帰の変形であり、多重共線性(特徴が互いに強い相関関係にある)のあるデータに特に適しています。変数の選択やパラメータの除去など、モデル選択の一部を自動的に実行できます。

縮小のプロセスにより、回帰モデルに多くの利点が追加されます。

  • 真のパラメータの推定はより正確で安定しています。
  • サンプリングエラーと非サンプリングエラーを削減します。
  • 空間的な変動がよりスムーズになります。

ニューラル ネットワークや決定木回帰などの高分散手法のように、データの複雑さを補うためにモデルの複雑さを調整するのではなく、LASSO は、空間を変形して単純な回帰手法で処理できるようにすることで、データの複雑さを軽減しようとします。このプロセス中、LASSO は、相関性が高く冗長な特徴を低分散方法で自動的に除去または歪曲するのに役立ちます。

LASSO 回帰では L1 正則化が使用されます。つまり、エラーは絶対値によって重み付けされます。この正規化により、通常は係数の少ないスパース モデルが生成され、解釈可能になります。

成し遂げる

Sklearn では、LASSO 回帰には、さまざまな基本パラメータとトレーニング パスを持つ多数のトレーニング済みモデルの中から最もパフォーマンスの高いモデルを選択するクロス検証モデルが付属しており、手動で実行する必要のあるタスクを自動化します。

  1. sklearn.linear_modelからLassoCV をインポートします
  2. モデル = LassoCV()
  3. モデルをフィット(X_train, y_train)

4. リッジリターンズ

理論

リッジ回帰は、収縮に適用できるという点で LASSO 回帰と非常によく似ています。 Ridge 回帰と LASSO 回帰はどちらも、互いに独立していない (共線性がある) 多数の特徴を持つデータセットに非常に適していますが、2 つの回帰の最大の違いは、Ridge が L2 正則化を利用し、L2 正則化の性質上、係数はゼロに近づいていきますが、ゼロに到達することはできないことです。

このため、優先度への影響が小さい変数を優先したい場合は、Ridge の方が適しています。モデル内で、それぞれが中程度から大きな効果を持つ複数の変数を考慮する場合は、LASSO の方が適しています。

成し遂げる

リッジ回帰は、以下に示すように sklearn で実装できます。 LASSO 回帰と同様に、sklearn には、クロス検証を使用して、多数のトレーニング済みモデルの中から最適なモデルを選択する実装があります。

  1. sklearn.linear_modelからRidgeCV をインポートします
  2. モデル = リッジ()
  3. モデルをフィット(X_train, y_train)

5. ElasticNet回帰

理論

ElasticNet は、L1 正則化と L2 正則化を組み合わせることで、リッジ回帰と LASSOb 回帰の長所を活用しようとします。

LASSO と Ridge は 2 つの異なる正規化手法を提案しました。 λ はペナルティの強度を制御する遷移係数です。

  • λ = 0 の場合、目的は単純線形回帰に似たものとなり、結果として単純線形回帰と同じ係数になります。
  • λ = ∞ の場合、係数の二乗の重みが無限大となるため、係数はゼロになります。値が 0 未満の場合、ターゲットは無限になります。
  • 0 < λ < ∞ の場合、λ のサイズによって目的のさまざまな部分に与えられる重みが決まります。

λ パラメータに加えて、ElasticNet は、L1 正規化と L2 正規化をどのように「混合」するかを測定する追加のパラメータ α を追加します。

  • α が 0 の場合、モデルは純粋なリッジ回帰モデルです。
  • α が 1 の場合、純粋な LASSO 回帰モデルになります。

「混合係数」α は、損失関数で L1 および L2 正則化をどの程度考慮する必要があるかを決定します。

成し遂げる

ElasticNet を実装するには、sklearn のクロス検証モデルを使用できます。

  1. sklearn.linear_modelからElasticNetCV をインポートします
  2. モデル = ElasticNetCV()
  3. モデルをフィット(X_train, y_train)

<<:  ドローンが田舎に飛来、その価値は想像もできない

>>:  機械学習でデータを実用的な洞察に変換する

ブログ    
ブログ    

推薦する

AI 開発の世界では、自然言語処理を真に習得することはどれほど重要ですか?

人工知能開発の分野で最も重要な目標は、自然言語処理 (NLP) を真に習得したシステムを作成すること...

世界人工知能会議の最高栄誉である2020年SAIL賞のトップ30プロジェクトが発表されました

世界人工知能会議の最高賞であるSAIL賞(スーパーAIリーダー)は、「卓越性を追求し、未来をリードす...

Java プログラミング スキル - データ構造とアルゴリズム「分割統治アルゴリズム」

[[398991]]アルゴリズムの紹介分割統治アルゴリズムは非常に重要です。文字通りの説明は「分割...

GitHub のスター数は 10 万近くに達しています。インド人男性がすべての AI アルゴリズムを Python と Java で実装しました。

[[326676]]今日、アルゴリズムを実装した 2 つのプロジェクトが GitHub のホット ...

...

...

GPT-4 は P≠NP であると結論付け、Terence Tao の予測は実現しました。世界の数学の問題を解く「ソクラテス的推論」対話97ラウンド

大規模言語モデルは実際に数学の定理の研究に使用できます。最近、Microsoft Research ...

AIがワールドカップの初代審判員になるチャンスはあるでしょうか?

著者 | ユン・チャオ最近、国際サッカー連盟(FIFA)は、2022年にカタールで開催されるワールド...

...

2020 年の人工知能に関するトップ 10 の予測

[[318614]] [51CTO.com クイック翻訳] 2019年、世界中の意思決定者の53%が...

AIがあなたをビデオから消去しました!効果はシルキーで跡が残りません

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

今後10年間で、AIは次の10の分野で世界に革命を起こすだろう

21 世紀に実現可能かつ実現されるであろう AI の驚くべき応用例をすべて紹介します。 AI が世界...

オープンソース! Gartner の 100 ページの機械学習ブックが無料でダウンロードできるようになりました。

今日の大企業は、産業化以来最大の変革を経験しています。人工知能は、産業や私たちの働き方、考え方、交流...

...

人間とコンピュータのインタラクション技術の現状と進化 将来、私たちはどのように機械とコミュニケーションをとるのでしょうか

コンピューターやその他の機械は、生産性を高め、より多くのことを学び、お互いのつながりを保つことを可能...