Thuật toán hồi quy - Tổng quan
Giới thiệu về hồi quy
Hồi quy là một công cụ thống kê và máy học quan trọng và được sử dụng rộng rãi. Mục tiêu chính của các nhiệm vụ dựa trên hồi quy là dự đoán các nhãn hoặc phản hồi đầu ra là các giá trị số tiếp tục, cho dữ liệu đầu vào đã cho. Đầu ra sẽ dựa trên những gì mô hình đã học được trong giai đoạn đào tạo. Về cơ bản, mô hình hồi quy sử dụng các đặc trưng dữ liệu đầu vào (các biến độc lập) và các giá trị đầu ra số liên tục tương ứng của chúng (biến phụ thuộc hoặc biến kết quả) để tìm hiểu mối liên hệ cụ thể giữa đầu vào và đầu ra tương ứng.
Các loại mô hình hồi quy
Mô hình hồi quy có hai loại sau:
Simple regression model - Đây là mô hình hồi quy cơ bản nhất, trong đó các dự đoán được hình thành từ một đặc trưng duy nhất, đơn biến của dữ liệu.
Multiple regression model - Như tên của nó, trong mô hình hồi quy này, các dự đoán được hình thành từ nhiều đặc điểm của dữ liệu.
Xây dựng Regressor bằng Python
Mô hình bộ hồi quy trong Python có thể được xây dựng giống như chúng ta đã xây dựng bộ phân loại. Scikit-learning, một thư viện Python dành cho học máy cũng có thể được sử dụng để xây dựng một bộ hồi quy bằng Python.
Trong ví dụ sau, chúng tôi sẽ xây dựng mô hình hồi quy cơ bản sẽ phù hợp với một dòng với dữ liệu tức là hồi quy tuyến tính. Các bước cần thiết để xây dựng một bộ hồi quy trong Python như sau:
Bước 1: Nhập gói python cần thiết
Để xây dựng một bộ hồi quy bằng scikit-learning, chúng ta cần nhập nó cùng với các gói cần thiết khác. Chúng tôi có thể nhập bằng cách sử dụng tập lệnh sau:
import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
Bước 2: Nhập tập dữ liệu
Sau khi nhập gói cần thiết, chúng ta cần một tập dữ liệu để xây dựng mô hình dự đoán hồi quy. Chúng tôi có thể nhập nó từ tập dữ liệu sklearn hoặc có thể sử dụng tập dữ liệu khác theo yêu cầu của chúng tôi. Chúng tôi sẽ sử dụng dữ liệu đầu vào đã lưu của chúng tôi. Chúng tôi có thể nhập nó với sự trợ giúp của tập lệnh sau:
input = r'C:\linear.txt'
Tiếp theo, chúng ta cần tải dữ liệu này. Chúng tôi đang sử dụng hàm np.loadtxt để tải nó.
input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]
Bước 3: Tổ chức dữ liệu thành các bộ đào tạo và kiểm tra
Do đó, khi chúng ta cần kiểm tra mô hình của mình trên dữ liệu không nhìn thấy, chúng ta sẽ chia tập dữ liệu của mình thành hai phần: tập huấn luyện và tập thử nghiệm. Lệnh sau sẽ thực hiện nó:
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:]
Bước 4: Đánh giá và dự đoán mô hình
Sau khi phân chia dữ liệu thành đào tạo và thử nghiệm, chúng ta cần xây dựng mô hình. Chúng tôi sẽ sử dụng hàm LineaRegression () của Scikit-learning cho mục đích này. Lệnh sau sẽ tạo một đối tượng hồi quy tuyến tính.
reg_linear= linear_model.LinearRegression()
Tiếp theo, đào tạo mô hình này với các mẫu đào tạo như sau:
reg_linear.fit(X_train, y_train)
Bây giờ, cuối cùng chúng ta cần thực hiện dự đoán với dữ liệu thử nghiệm.
y_test_pred = reg_linear.predict(X_test)
Bước 5: Vẽ và hình dung
Sau khi dự đoán, chúng ta có thể vẽ và hình dung nó với sự trợ giúp của tập lệnh sau:
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
Trong kết quả trên, chúng ta có thể thấy đường hồi quy giữa các điểm dữ liệu.
Bước 6: Tính toán hiệu suất
Chúng tôi cũng có thể tính toán hiệu suất của mô hình hồi quy với sự trợ giúp của các số liệu hiệu suất khác nhau như sau:
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
Các loại thuật toán hồi quy ML
Thuật toán hồi quy ML hữu ích và phổ biến nhất là thuật toán hồi quy tuyến tính được chia thành hai loại cụ thể là:
Thuật toán hồi quy tuyến tính đơn giản
Thuật toán hồi quy nhiều tuyến tính.
Chúng ta sẽ thảo luận về nó và triển khai nó bằng Python trong chương tiếp theo.
Các ứng dụng
Các ứng dụng của thuật toán hồi quy ML như sau:
Forecasting or Predictive analysis- Một trong những ứng dụng quan trọng của hồi quy là dự báo hoặc phân tích dự báo. Ví dụ, chúng ta có thể dự báo GDP, giá dầu hay nói cách đơn giản là dữ liệu định lượng thay đổi theo thời gian.
Optimization- Chúng tôi có thể tối ưu hóa các quy trình kinh doanh với sự trợ giúp của hồi quy. Ví dụ, một người quản lý cửa hàng có thể tạo một mô hình thống kê để hiểu thời gian xuất hiện của khách hàng.
Error correction- Trong kinh doanh, việc đưa ra quyết định đúng đắn cũng quan trọng không kém việc tối ưu hóa quy trình kinh doanh. Hồi quy có thể giúp chúng ta đưa ra quyết định chính xác cũng như điều chỉnh quyết định đã được thực hiện.
Economics- Nó là công cụ được sử dụng nhiều nhất trong kinh tế học. Chúng ta có thể sử dụng hồi quy để dự đoán cung, cầu, tiêu dùng, đầu tư hàng tồn kho, v.v.
Finance- Một công ty tài chính luôn quan tâm đến việc giảm thiểu danh mục rủi ro và muốn biết các yếu tố ảnh hưởng đến khách hàng. Tất cả những điều này có thể được dự đoán với sự trợ giúp của mô hình hồi quy.