Machine-learning-with-python-regression-algorithms-overview
回帰アルゴリズム-概要
回帰の概要
回帰は、重要で広く使用されている別の統計および機械学習ツールです。 回帰ベースのタスクの主な目的は、与えられた入力データについて、数値が続く出力ラベルまたは応答を予測することです。 出力は、トレーニングフェーズでモデルが学習した内容に基づきます。 基本的に、回帰モデルは入力データ機能(独立変数)および対応する連続数値出力値(従属変数または結果変数)を使用して、入力と対応する出力の間の特定の関連を学習します。
回帰モデルの種類
回帰モデルは、次の2つのタイプがあります-
単純回帰モデル-これは、データの単一の単変量特徴から予測が形成される最も基本的な回帰モデルです。
多重回帰モデル-名前が示すように、この回帰モデルでは、予測はデータの複数の特徴から形成されます。
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:プロットと視覚化
予測後、次のスクリプトの助けを借りてプロットして視覚化することができます-
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()
出力
上記の出力では、データポイント間の回帰直線を見ることができます。
ステップ6:パフォーマンスの計算-さまざまなパフォーマンスメトリックを使用して、次のように回帰モデルのパフォーマンスを計算することもできます。
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))
出力
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回帰アルゴリズムのアプリケーションは次のとおりです-
予測分析または予測分析-回帰の重要な用途の1つは、予測分析または予測分析です。 たとえば、GDP、原油価格、または時間の経過とともに変化する定量データを予測できます。
最適化-回帰を利用してビジネスプロセスを最適化できます。 たとえば、店長は統計モデルを作成して、顧客の来店のピーク時間を把握できます。
エラー修正-ビジネスでは、正しい決定を下すことはビジネスプロセスを最適化することと同様に重要です。 回帰は、すでに実施されている決定を修正する際にも、正しい決定を下すのに役立ちます。
経済-それは経済学で最も使用されるツールです。 回帰を使用して、供給、需要、消費、在庫投資などを予測できます。
金融-金融会社は常にリスクポートフォリオの最小化に関心があり、顧客に影響を与える要因を知りたいと考えています。 これらはすべて、回帰モデルを使用して予測できます。