機械学習に線形回帰を実装する方法は?



この記事では、さまざまな用語を使用した機械学習の線形回帰の概念と、線形回帰を実装するためのユースケースについて説明します。

の焦点 結果を予測するアルゴリズムを使用して、入力変数と出力変数を中心に展開します。新しい入力変数が登場した場合。の線形回帰アルゴリズム は、最適な予測を得るためにマッピング関数を近似する教師あり学習手法です。この記事では、機械学習の線形回帰について学習します。このブログでは、次のトピックについて説明しています。

回帰とは何ですか?

回帰の主な目標は、一連の属性変数から従属属性を予測するための効率的なモデルの構築です。回帰問題は、出力変数が実数値または連続値、つまり給与、体重、面積などの場合です。





回帰は、住宅、投資などのアプリケーションで使用される統計的手段として定義することもできます。これは、従属変数と一連の独立変数の間の関係を予測するために使用されます。さまざまなタイプの回帰手法を見てみましょう。

例-機械学習の線形回帰-edureka

回帰の種類

以下は回帰のタイプです。



  1. 単純な線形回帰
  2. 多項式回帰
  3. ベクトル回帰をサポートする
  4. デシジョンツリー回帰
  5. ランダムフォレスト回帰

単純な線形回帰

最も興味深く一般的な回帰手法の1つは、単純な線形回帰です。ここでは、独立変数に基づいて従属変数の結果を予測します。変数間の関係は線形です。したがって、線形回帰という言葉。

多項式回帰

この回帰手法では、元の特徴を特定の次数の多項式特徴に変換してから、回帰を実行します。

ベクトル回帰をサポートする

ために 回帰またはSVRでは、データポイントの最大数がそれらのマージン内にあるように、最大​​マージンを持つ超平面を識別します。これは、サポートベクターマシン分類アルゴリズムと非常によく似ています。



デシジョンツリー回帰

に 回帰と回帰の両方に使用できます 。回帰の場合、ID3アルゴリズム(Iterative Dichotomiser 3)を使用して、標準偏差を減らすことによって分割ノードを識別します。

ランダムフォレスト回帰

ランダムフォレスト回帰では、いくつかの決定木回帰の予測をアンサンブルします。さまざまなタイプの回帰について理解したので、単純な線形回帰を詳しく見てみましょう。

線形回帰とは何ですか?

単純線形回帰は、独立変数が従属変数と線形関係にある回帰手法です。図の直線が最適な線です。単純線形回帰の主な目標は、与えられたデータポイントを考慮し、可能な限り最良の方法でモデルに適合するように最適な線をプロットすることです。

線形回帰アルゴリズムのしくみに移る前に、単純な線形回帰のいくつかの重要な用語を見てみましょう。

線形回帰の用語

次の用語は、線形回帰アルゴリズムに進む前に理解しておくことが重要です。

コスト関数

最適な線は、以下に示す線形方程式に基づくことができます。

  • 予測される従属変数はYで示されます。
  • y軸に接する線は、切片bで示されます。0
  • b1は直線の傾き、xはYの予測を決定する独立変数を表します。
  • 結果の予測の誤差はeで表されます。

コスト関数は、bに可能な限り最良の値を提供します0およびb1データポイントに最適な線を作成します。この問題を最小化問題に変換して、bの最適値を取得します。0およびb1。この問題では、実際の値と予測値の間の誤差が最小限に抑えられます。

エラーを最小限に抑えるために、上記の関数を選択します。エラーの差を2乗し、すべてのデータポイントのエラーを合計します。これは、データポイントの総数の除算です。次に、生成された値は、すべてのデータポイントの平均二乗誤差を提供します。

これはMSE(Mean Squared Error)とも呼ばれ、bの値を変更します。0およびb1MSE値が最小になるようにします。

最急降下法

線形回帰を理解するための次の重要な用語は次のとおりです。 最急降下法。 bを更新する方法です0およびb1MSEを減らすための値。この背後にある考え方は、bを繰り返し続けることです0およびb1MSEを最小にするまでの値。

bを更新するには0およびb1、コスト関数から勾配を取ります。これらの勾配を見つけるために、bに関する偏導関数を取ります0およびb1。これらの偏導関数は勾配であり、bの値を更新するために使用されます0およびb1

__init__ python 3

学習率が小さいほど最小値に近づきますが、学習率が高い場合は時間がかかります。時間がかかりますが、最小値を超える可能性があります。線形回帰の用語を終えたので、機械学習の線形回帰のいくつかの長所と短所を見てみましょう。

長所と短所

利点 短所
線形回帰は、線形分離可能なデータに対して非常に優れたパフォーマンスを発揮します従属変数と独立変数の間の線形性の仮定
実装、解釈が簡単で、トレーニングが効率的多くの場合、ノイズや過剰適合が発生しやすい傾向があります。
次元縮小手法、正則化、および交差検定を使用して、過剰適合をかなりうまく処理します。線形回帰は外れ値に非常に敏感です
もう1つの利点は、特定のデータセットを超えた外挿です。多重共線性になりやすい

線形回帰のユースケース

  • 販売予測

  • リスク分析

  • 価格やその他の要因を予測するための住宅アプリケーション

  • 株価、投資評価などを予測するためのファイナンスアプリケーション。

線形回帰の背後にある基本的な考え方は、従属変数と独立変数の間の関係を見つけることです。これは、最小のエラーで結果を予測する最適な線を取得するために使用されます。学習時間数やその他の決定的な要因に関してSATスコアを予測するなど、単純な実際の状況で線形回帰を使用できます。

これを念頭に置いて、ユースケースを見てみましょう。

ユースケース–線形回帰の実装

このプロセスは、次の手順で実行されます。

  1. データの読み込み
  2. データの調査
  3. データのスライス
  4. データのトレーニングと分割
  5. モデルを生成する
  6. 精度を評価する

線形回帰を実装するための各ステップの詳細を見てみましょう。

1.データのロード

sklearn(scikit-learn)データセットモジュールにすでに存在する基本的な糖尿病データセットから始めて、線形回帰から旅を始めることができます。

sklearnからインポートデータセットdisease = datasets.load_diabetes()print(disease)

出力:

2.データの調査

データの読み込みが完了したら、次のコードを使用してラベルを確認するだけで探索を開始できます。

print(disease.keys())

出力:

上記のコードは、データセットのすべてのラベルを提供します。この後、データをスライスして、最後に線をプロットできるようにします。また、すべてのデータポイントを使用します。ここでは、データから列2をスライスします。

numpyをnpとしてインポートdisease_X = disease.data [:、np.newaxis、2] print(disease_X)

出力:

このステップの後、データをトレインセットとテストセットに分割します。

3.データの分割

disease_X_train = disease_X [:-30] disease_X_test = disease_X [-20:] disease_Y_train = disease.target [:-30] disease_Y_test = disease.target [-20:]

次の部分では、モデルの生成を行います。これには、sklearnからのlinear_modelのインポートが含まれます。

4.モデルの生成

sklearnからimportlinear_model reg = linear_model.LinearRegression()reg.fit(disease_X_train、disease_Y_train)y_predict = reg.predict(disease_X_test)

モデルの精度を評価するために、scikit-learnからの平均二乗誤差を使用します。

5.評価

精度= mean_squared_error(disease_Y_test、y_predict、)print(accuracy)weights = reg.coef_intercept = reg.intercept_ print(weights、intercept)

出力:

データポイントがグラフ上でどのように見えるかをより明確にするために、グラフもプロットしてみましょう。

matplotlib.pyplotをpltplt.scatter(disease_X_test、disease_Y_test)としてインポートします。plt.plot(disease_X_test、y_predict)plt.show()

出力:

このシナリオでより正確なモデルを取得するには、列2だけでなく、データ全体を使用できます。これにより、以下に示すような精度が得られます。

#上記のコードに少し変更を加え、エラーを回避するためにプロットコードを削除しますdisease_X = disease.data

出力:

これで、機械学習の線形回帰について学習したこの記事の終わりになります。このチュートリアルで共有されているすべてのことを明確に理解していただければ幸いです。

「機械学習の線形回帰」に関するこの記事が関連していると思われる場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。

ご不明な点がございましたら、「機械学習の線形回帰」のコメントセクションでお気軽にご質問ください。チームが喜んでお答えします。