lap trinh logic

Hồi quy là một trong những công cụ học máy và thống kê quan trọng nhất. Chúng tôi sẽ không sai khi nói rằng hành trình học máy bắt đầu từ hồi quy. Nó có thể được định nghĩa là kỹ thuật tham số cho phép chúng ta đưa ra quyết định dựa trên dữ liệu hay nói cách khác cho phép chúng ta đưa ra dự đoán dựa trên dữ liệu bằng cách tìm hiểu mối quan hệ giữa các biến đầu vào và đầu ra. Ở đây, các biến đầu ra phụ thuộc vào các biến đầu vào, là các số thực có giá trị liên tục. Trong hồi quy, mối quan hệ giữa các biến đầu vào và đầu ra rất quan trọng và nó giúp chúng ta hiểu giá trị của biến đầu ra thay đổi như thế nào với sự thay đổi của biến đầu vào. Hồi quy thường được sử dụng để dự đoán giá cả, kinh tế, biến thể, v.v.

Xây dng hi quy trong Python

Trong phần này, chúng ta sẽ tìm hiểu cách xây dựng biến hồi quy đơn biến cũng như đa biến trong python

Hi quy tuyến tính / Hi quy biến đơn

Hãy để chúng tôi quan trọng một vài gói cần thiết

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

Bây giờ, chúng tôi cần cung cấp dữ liệu đầu vào và chúng tôi đã lưu dữ liệu của mình trong tệp có tên linear.txt.

input = 'D:/ProgramData/linear.txt'

Chúng ta cần tải dữ liệu này bằng cách sử dụng hàm np.loadtxt .

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

Bước tiếp theo sẽ là đào tạo mô hình. Hãy để chúng tôi cung cấp các mẫu đào tạo và thử nghiệm.

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ây giờ, chúng ta cần tạo một đối tượng hồi quy tuyến tính.

reg_linear = linear_model.LinearRegression()

Huấn luyện đối tượng với các mẫu huấn luyện.

reg_linear.fit(X_train, y_train)

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ây giờ vẽ đồ thị và trực quan hóa dữ liệu

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

đầu ra

xây dựng ai python

Bây giờ, chúng ta có thể tính toán hiệu suất của hồi quy tuyến tính như sau

print("Performance of Linear regressor:")
print("Mean absolute error =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error =", 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))

đầu ra

Hiệu suất của hồi quy tuyến tính

Mean absolute error = 1.78
Mean squared error = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

Trong đoạn mã trên, chúng tôi đã sử dụng dữ liệu nhỏ này. Nếu bạn muốn một số tập dữ liệu lớn thì bạn có thể sử dụng sklearn.dataset để nhập tập dữ liệu lớn hơn.

2,4.82.9,4.72.5,53.2,5.56,57.6,43.2,0.92.9,1.92.4,
3.50.5,3.41,40.9,5.91.2,2.583.2,5.65.1,1.54.5,
1.22.3,6.32.1,2.8

hi quy đa biến

Đầu tiên, chúng ta hãy nhập một vài gói cần thiết

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures

Bây giờ, chúng tôi cần cung cấp dữ liệu đầu vào và chúng tôi đã lưu dữ liệu của mình trong tệp có tên linear.txt.

input = 'D:/ProgramData/Mul_linear.txt'

Chúng tôi sẽ tải dữ liệu này bằng cách sử dụng chức năng np.loadtxt .

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

Bước tiếp theo sẽ là đào tạo mô hình; chúng tôi sẽ cung cấp các mẫu đào tạo và thử nghiệm.

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ây giờ, chúng ta cần tạo một đối tượng hồi quy tuyến tính.

reg_linear_mul = linear_model.LinearRegression()

Huấn luyện đối tượng với các mẫu huấn luyện.

reg_linear_mul.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.

lập trinh Ai
y_test_pred = reg_linear_mul.predict(X_test)

print("Performance of Linear regressor:")
print("Mean absolute error =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error =", 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))

đầu ra

Hiệu suất của hồi quy tuyến tính

Mean absolute error = 0.6
Mean squared error = 0.65
Median absolute error = 0.41
Explain variance score = 0.34
R2 score = 0.33

Bây giờ, chúng ta sẽ tạo một đa thức bậc 10 và huấn luyện biến hồi quy. Chúng tôi sẽ cung cấp điểm dữ liệu mẫu.

polynomial = PolynomialFeatures(degree = 10)
X_train_transformed = polynomial.fit_transform(X_train)
datapoint = [[2.23, 1.35, 1.12]]
poly_datapoint = polynomial.fit_transform(datapoint)

poly_linear_model = linear_model.LinearRegression()
poly_linear_model.fit(X_train_transformed, y_train)
print("\nLinear regression:\n", reg_linear_mul.predict(datapoint))
print("\nPolynomial regression:\n", poly_linear_model.predict(poly_datapoint))

đầu ra

Hồi quy tuyến tính –

[2.40170462]

Hồi quy đa thức –

[1.8697225]

Trong đoạn mã trên, chúng tôi đã sử dụng dữ liệu nhỏ này. Nếu bạn muốn có một tập dữ liệu lớn, thì bạn có thể sử dụng sklearn.dataset để nhập tập dữ liệu lớn hơn.

2,4.8,1.2,3.22.9,4.7,1.5,3.62.5,5,2.8,23.2,5.5,3.5,2.16,5,
2,3.27.6,4,1.2,3.23.2,0.9,2.3,1.42.9,1.9,2.3,1.22.4,3.5,
2.8,3.60.5,3.4,1.8,2.91,4,3,2.50.9,5.9,5.6,0.81.2,2.58,
3.45,1.233.2,5.6,2,3.25.1,1.5,1.2,1.34.5,1.2,4.1,2.32.3,
6.3,2.5,3.22.1,2.8,1.2,3.6

Xem thêm : AI với Python – Lập trình logic

Để lại một bình luận