Machine Learning Thuật toán Multiple Regression

Multiple Regression là gì?

Multiple Regression là một thuật toán hồi quy tuyến tính đa biến trong Machine Learning , nó giống như Thuật toán Linear Regression.

Thuật toán Machine Learning Multiple Regression dùng để dự đoán một giá trị của biến phụ thuộc y dựa vào 2 hoặc nhiều biến độc lập x1, x2, x3…xn.

 

Thuật toán Multiple Regression trong toán học.

Dạng tổng quát của thuật toán Multiple Regression có phương trình như sau:

yi = w0 + w1xi1 + w1xi2 + w1xi3 + …. + w1xip = wTxi

Trong đó:

yi: là biến phụ thuộc.

xi1, xi2, xi3…xip: là các biến độc lập.

w0: là hằng số.

w1, w2, w3,wn: là các hệ số quan hệ.,

Gọi xi là một véc tơ đại diện cho quan sát thứ i, các giá trị cụ thể tương ứng là (xi1, xi2, xi3…xip).Ma trận X có kích thước n x p có mỗi hàng là một quan sát và mỗi cột là một biến. Giá trị xip là quan sát thứ i của biến thứ p.

Gọi ma trận mở rộng của ma trận X là ma trận có thêm véc tơ cột 1 được thêm vào ở cột đầu tiên.Khi đó các tập dữ liệu được biểu diễn như sau:

Bằng cách triển khai đại số tuyến tính ta tính được đạo hàm của hàm mất mát như sau:

Nghiệm của phương trình hồi quy là:

Trên đây là cách giải bài toán hồi quy tuyến tính đa thức trong toán học, vậy để áp dụng thuật toán này vào trong lập trình machine learning cho các bài toán trong thực tiễn như thế nào? Bài toán dưới đây chúng tôi sẽ giúp bạn hiểu được ứng dụng của nó.

 

Thuật toán Multiple Regression trong Machine Learning sử dụng thư viện sklearn.

Lập trình machine learning sử dụng thuật toán Multiple Regression.Bạn có thể sử dụng hàm LinearRegression() trong thư viện sklearn của Python để dự đoán cho bài toán hồi quy đa thức,nhiều biến.

Ví dụ: Bài toán về dự đoán lượng khí thải CO2 của ô tô theo trọng lượng (Weight) và kích thước dung tích năng lượng (Volume).

Giả sử chúng ta có danh sách dữ liệu của các ô tô trong file csv: cars.csv như sau:

CarModelVolumeWeightCO2
ToyotaVios100078099
MitsubishiXpander1200116095
SkodaCitigo100092995
Fiat50090086590
MiniCooper15001140105
VWUp!1000929105
SkodaFabia1400110990
MercedesA-Class1500136592
FordFiesta1500111298
AudiA11600115099
HyundaiI20110098099
SuzukiSwift1300990101
FordFiesta1000111299
HondaCivic1600125294
HundaiI301600132697
OpelAstra1600133097
BMW11600136599
Mazda322001280104
SkodaRapid16001119104
FordFocus20001328105
FordMondeo1600158494
OpelInsignia2000142899
MercedesC-Class2100136599
SkodaOctavia1600141599
VolvoS602000141599
MercedesCLA15001465102
AudiA420001490104
AudiA620001725114
VolvoV7016001523109
BMW520001705114
MercedesE-Class21001605115
VolvoXC7020001746117
FordB-Max16001235104
BMW216001390108
OpelZafira16001405109
MercedesSLK25001395120

Yêu cầu của bài toán là dự đoán khí thải CO2 dựa vào trọng lượng (Weight) và kích thước dung tích năng lượng (Volume) của xe ô tô. Hãy dự đoán khí thải CO2 của ô tô có trọng lượng là 2300 kg và kích thước dung tích là 1300 cm3?

Như chúng ta nhận thấy đây là bài toán dự báo, dự đoán hồi quy đa thức, đa biến với biến các biến độc lập XWeight , Volume và biến phụ thuộc  y CO2.

Chúng ta sẽ sử dụng hàm LinearRegression() trong thư viện sklearn để giải bài toán này.

Bước 1: Thu thập dữ liệu

Sử dụng thư viện pandas để thu tập dữ liệu từ file csv : cars.csv

import pandas as pd
df = pd.read_csv("cars.csv")

Bước 2: Phân tích dữ liệu

Lượng khí CO2 của ô tô thải ra phụ thuộc vào 2 yếu tố là trọng lượng (Weight) và kích thước (Volume).

Tập giá trị các biến độc lập X là trọng lượng (Weight) và kích thước dung tích (Volume).

X = df[['Weight','Volume']]

Giá trị biến phụ thuộc y chính là lượng khí CO2.

y = df['CO2']

Bước 3: Dự đoán

Sử dụng thuật toán Multiple Regression với hàm LinearRegression() trong thư viện sklearn để đào tạo và dự đoán lượng CO2.

from sklearn import linear_model

regr_model = linear_model.LinearRegression()
regr_model = regr_model.fit(X,y)
predictedCO2 = regr_model.predict([[2300, 1300]])
print(regr_model.intercept_)

Sau đây là toàn bộ Code Python:  Thuật toán machine learning multiple regression sử dụng thư viện sklearn trong Python.

Ví dụ

import pandas as pd

from sklearn import linear_model

# Thu thập dữ liệu từ file csv

df = pd.read_csv("cars.csv")

# Phân tích dữ liệu 

X = df[['Weight','Volume']]
y = df['CO2']

# Sử dụng mô hình Linear Regression
regr_model = linear_model.LinearRegression()
regr_model = regr_model.fit(X,y)

# Dự đoán kết quả predict
predictedCO2 = regr_model.predict([[2300, 1300]])
print(predictedCO2 )

Kết quả :

[107.48477193]

Như vậy chúng tôi đã dự đoán rằng một chiếc ô tô với trọng lượng 2300 kg và động cơ kích thước dung tích 1300 cm3 (1,3 lít), sẽ thải ra khoảng 107 gram CO2 cho mỗi km.

 

Ứng dụng của thuật toán Multiple Regression.

Thuật toán Multiple Regression được ứng dụng cho các bài toán dự đoán dựa vào nhiều tiêu chí.Ví dụ các bài toán dự báo giá nhà, dự báo lương, dự báo tài chính, dự báo phí taxi...