迴歸演算法 - 概述



迴歸簡介

迴歸是另一個重要且廣泛使用的統計和機器學習工具。基於迴歸的任務的主要目標是預測給定輸入資料的連續數值輸出標籤或響應。輸出將基於模型在訓練階段學到的內容。基本上,迴歸模型使用輸入資料特徵(自變數)及其相應的連續數值輸出值(因變數或結果變數)來學習輸入和相應輸出之間的特定關聯。

Variables

迴歸模型的型別

Resgression

迴歸模型有以下兩種型別:

簡單迴歸模型 - 這是最基本的迴歸模型,其中預測是從資料的單個單變數特徵形成的。

多元迴歸模型 - 顧名思義,在此迴歸模型中,預測是從資料的多個特徵形成的。

在Python中構建迴歸器

Python中的迴歸器模型可以像我們構建分類器一樣構建。Scikit-learn,一個用於機器學習的Python庫,也可以用於在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:將資料組織成訓練集和測試集

由於我們需要在未見過的資料上測試我們的模型,因此我們將資料集分成兩部分:訓練集和測試集。以下命令將執行此操作:

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()

輸出

Line

在上面的輸出中,我們可以看到資料點之間的迴歸線。

步驟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

機器學習迴歸演算法的型別

最有用的和流行的機器學習迴歸演算法是線性迴歸演算法,它進一步分為兩種型別:

  • 簡單線性迴歸演算法

  • 多元線性迴歸演算法。

我們將在下一章討論它並在Python中實現它。

應用

機器學習迴歸演算法的應用如下:

預測或預測分析 - 迴歸的重要用途之一是預測或預測分析。例如,我們可以預測GDP、油價或簡單來說是隨時間推移而變化的定量資料。

最佳化 - 我們可以藉助迴歸最佳化業務流程。例如,商店經理可以建立一個統計模型來了解客戶到來的高峰時間。

錯誤修正 - 在業務中,做出正確的決策與最佳化業務流程同樣重要。迴歸也可以幫助我們做出正確的決策以及糾正已實施的決策。

經濟學 - 它是經濟學中最常用的工具。我們可以使用迴歸來預測供給、需求、消費、庫存投資等。

金融 - 金融公司始終對最小化風險投資組合感興趣,並希望瞭解影響客戶的因素。所有這些都可以透過迴歸模型來預測。

廣告