回帰アルゴリズム-概要
回帰入門
回帰は、もう1つの重要で、広く使用されている統計および機械学習ツールです。回帰ベースのタスクの主な目的は、指定された入力データについて、継続的な数値である出力ラベルまたは応答を予測することです。出力は、モデルがトレーニングフェーズで学習した内容に基づいています。基本的に、回帰モデルは、入力データの特徴(独立変数)とそれに対応する連続数値出力値(従属変数または結果変数)を使用して、入力と対応する出力の間の特定の関連付けを学習します。
回帰モデルの種類
回帰モデルには次の2つのタイプがあります-
Simple regression model −これは、予測がデータの単一の単変量特徴から形成される最も基本的な回帰モデルです。
Multiple regression model −名前が示すように、この回帰モデルでは、予測はデータの複数の特徴から形成されます。
Pythonでリグレッサを構築する
Pythonのリグレッサーモデルは、分類子を作成したのと同じように作成できます。機械学習用のPythonライブラリであるScikit-learnを使用して、Pythonでリグレッサを構築することもできます。
次の例では、データに線を当てはめる基本的な回帰モデル、つまり線形回帰モデルを構築します。Pythonでリグレッサを構築するために必要な手順は次のとおりです-
ステップ1:必要なPythonパッケージをインポートする
scikit-learnを使用してリグレッサを構築するには、他の必要なパッケージと一緒にリグレッサをインポートする必要があります。次のスクリプトを使用してをインポートできます-
import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
ステップ2:データセットをインポートする
必要なパッケージをインポートした後、回帰予測モデルを構築するためのデータセットが必要です。sklearnデータセットからインポートすることも、要件に応じて他のデータセットを使用することもできます。保存した入力データを使用します。次のスクリプトを使用してインポートできます-
input = r'C:\linear.txt'
次に、このデータをロードする必要があります。np.loadtxt関数を使用してロードしています。
input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]
ステップ3:データをトレーニングセットとテストセットに整理する
したがって、見えないデータでモデルをテストする必要があるため、データセットをトレーニングセットとテストセットの2つの部分に分割します。次のコマンドはそれを実行します-
training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training
X_train, y_train = X[:training_samples], y[:training_samples]
X_test, y_test = X[training_samples:], y[training_samples:]
ステップ4:モデルの評価と予測
データをトレーニングとテストに分割した後、モデルを構築する必要があります。この目的のために、Scikit-learnのLineaRegression()関数を使用します。次のコマンドは、線形リグレッサオブジェクトを作成します。
reg_linear= linear_model.LinearRegression()
次に、次のようにトレーニングサンプルを使用してこのモデルをトレーニングします。
reg_linear.fit(X_train, y_train)
さて、最後に、テストデータを使用して予測を行う必要があります。
y_test_pred = reg_linear.predict(X_test)
ステップ5:プロットと視覚化
予測後、次のスクリプトを使用してプロットおよび視覚化できます-
Example
plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()
Output
上記の出力では、データポイント間の回帰直線を確認できます。
ステップ6:パフォーマンスの計算
次のように、さまざまなパフォーマンスメトリックを使用して、回帰モデルのパフォーマンスを計算することもできます。
Example
print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))
Output
Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09
ML回帰アルゴリズムの種類
最も有用で人気のあるML回帰アルゴリズムは線形回帰アルゴリズムであり、さらに2つのタイプに分けられます。
単純な線形回帰アルゴリズム
多重線形回帰アルゴリズム。
次の章では、それについて説明し、Pythonで実装します。
アプリケーション
ML回帰アルゴリズムのアプリケーションは次のとおりです-
Forecasting or Predictive analysis−回帰の重要な用途の1つは、予測または予測分析です。たとえば、GDP、石油価格、または簡単に言えば、時間の経過とともに変化する定量的データを予測できます。
Optimization−回帰の助けを借りてビジネスプロセスを最適化できます。たとえば、店長は統計モデルを作成して、顧客の来店のピーク時間を理解できます。
Error correction−ビジネスでは、正しい意思決定を行うことは、ビジネスプロセスを最適化することと同様に重要です。回帰は、すでに実装されている決定を修正する際にも、正しい決定を下すのに役立ちます。
Economics−これは経済学で最も使用されているツールです。回帰を使用して、需要、需要、消費、在庫投資などを予測できます。
Finance−金融会社は常にリスクポートフォリオを最小化することに関心があり、顧客に影響を与える要因を知りたいと考えています。これらはすべて、回帰モデルを使用して予測できます。