確かな情報です!機械学習で知っておくべき 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)

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

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

ブログ    

推薦する

MIT とハーバード大学が協力して、ニューラル ネットワークが自身の強みを理解する方法を研究しています。

ニューラルネットワークはますます使用されるようになっています。 [[357551]]医療診断であれ、...

自動運転の知識 ポピュラーサイエンス 自動運転車の7つのコア技術

自動運転技術の本質は、機械の観点から人間のドライバーの行動をシミュレートすることです。その技術的フレ...

AI は製造業と産業用 IoT をどのように変えるのでしょうか?

Business Insider によると、製造業ではモノのインターネット (IoT) と AI ...

デフォルトの心配はありません!ファーウェイとSTマイクロエレクトロニクスが共同でチップを設計

ファーウェイにとって、独自のチップを開発することは必ず進むべき道であり、さらなる発展を遂げたいのであ...

人工知能の時代が到来し、教育は大きく変わるかもしれません。未来の教育は人工知能をベースにしたものになるのでしょうか?

「大作 SF 映画」を見るのが好きな学生にとって、最も気に入っているのは、映画に遍在する人工知能か...

PillarNeSt: Pillar ベースの 3D オブジェクト検出のパフォーマンスをさらに向上させるにはどうすればよいでしょうか?

著者の個人的な理解に基づいて書かれた現在、自動運転の分野では、点群データを収集するためのLIDARセ...

...

Ctrip の AI 推論パフォーマンスの自動最適化プラクティス

[[424530]] 1. 背景近年、人工知能はセキュリティ、教育、医療、観光などの産業や生活の場面...

Githubの包括的なレビュー! 2021 年の最も素晴らしい AI 論文 38 件

[[443053]] 2021年は人工知能が飛躍的に進歩し続ける年です。最近、Github で誰かが...

自然言語処理(NLP)はソーシャルエンジニアリング攻撃の解決に役立ちます

新しいツールは、件名や URL に基づいてソーシャル エンジニアリング攻撃を検出するのではなく、テキ...

教師なし学習アルゴリズム: 異常検出

外れ値とは何でしょうか? Hawkins (1980) は外れ値の基本的な定義を与えました: 外れ値...

...

アナーキストとの対話: ノーム・チョムスキーが語るディープラーニングの未来

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

OpenAIはニューヨークタイムズの声明は一方的であると不公平だと叫び、アンドリュー・ン氏もそれを擁護した。

2023年末、ニューヨーク・タイムズはマイクロソフトとOpenAIを訴えるための強力な証拠を提示し...

データ構造と区間マージアルゴリズム、貪欲

[[439314]]マージ間隔LeetCode の問題へのリンク: https://leetcode...