Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Có hai loại thuật toán học máy được giám sát: hồi quy và phân loại. Cái trước dự đoán đầu ra giá trị liên tục trong khi cái sau dự đoán các đầu ra riêng biệt. Ví dụ, dự đoán giá của một ngôi nhà bằng đô la là một vấn đề hồi quy trong khi dự đoán liệu một khối u có ác tính hay lành tính là một vấn đề phân loại.

Trong bài viết này, chúng tôi sẽ nghiên cứu ngắn gọn về hồi quy tuyến tính là gì và làm thế nào nó có thể được thực hiện cho cả hai biến và nhiều biến sử dụng & nbsp; scikit-learn, & nbsp; đây là một trong những thư viện học máy phổ biến nhất cho Python.Scikit-Learn, which is one of the most popular machine learning libraries for Python.

Lý thuyết hồi quy tuyến tính

& nbsp; Thuật ngữ tuyến tính của người Viking trong đại số đề cập đến mối quan hệ tuyến tính giữa hai hoặc nhiều biến. Nếu chúng ta vẽ mối quan hệ này trong một không gian hai chiều (giữa hai biến), chúng ta sẽ nhận được một đường thẳng.
The term “linearity” in algebra refers to a linear relationship between two or more variables. If we draw this relationship in a two-dimensional space (between two variables), we get a straight line.

Hồi quy tuyến tính thực hiện nhiệm vụ để dự đoán giá trị biến phụ thuộc (y) dựa trên một biến độc lập (x) nhất định. Vì vậy, kỹ thuật hồi quy này tìm ra mối quan hệ tuyến tính giữa x (đầu vào) và y (đầu ra). Do đó, tên là hồi quy tuyến tính. Nếu chúng ta vẽ biểu đồ biến độc lập (x) trên trục x và biến phụ thuộc (y) trên trục y, hồi quy tuyến tính cho chúng ta một đường thẳng phù hợp nhất với các điểm dữ liệu, như trong hình bên dưới.

Chúng tôi biết rằng phương trình của một đường thẳng về cơ bản là:

Phương trình của dòng trên là & nbsp ;:

Y = mx + b

Trong đó B là chặn và M là độ dốc của đường. Vì vậy, về cơ bản, thuật toán hồi quy tuyến tính cho chúng ta giá trị tối ưu nhất cho việc chặn và độ dốc (theo hai chiều). Các biến Y và X vẫn giữ nguyên, vì chúng là các tính năng dữ liệu và không thể thay đổi. Các giá trị mà chúng ta có thể kiểm soát là chặn (b) và độ dốc (m). Có thể có nhiều đường thẳng tùy thuộc vào các giá trị của chặn và độ dốc. Về cơ bản, những gì thuật toán hồi quy tuyến tính làm là nó phù hợp với nhiều dòng trên các điểm dữ liệu và trả về dòng dẫn đến lỗi ít nhất.

Khái niệm tương tự này có thể được mở rộng cho các trường hợp có nhiều hơn hai biến. Điều này được gọi là hồi quy tuyến tính nhiều. Chẳng hạn, hãy xem xét một kịch bản mà bạn phải dự đoán giá của ngôi nhà dựa trên khu vực của nó, số lượng phòng ngủ, thu nhập trung bình của người dân trong khu vực, tuổi của ngôi nhà, v.v. Trong trường hợp này, biến phụ thuộc (biến mục tiêu) phụ thuộc vào một số biến độc lập. Một mô hình hồi quy liên quan đến nhiều biến có thể được biểu diễn là:

y = b0 + m1b1 + m2b2 + m3b3 + & nbsp; ... mnbn0 + m1b1 + m2b2 + m3b3 + ... mnbn

Đây là phương trình của A & NBSP; Hyperplane. Hãy nhớ rằng, một mô hình hồi quy tuyến tính theo hai chiều là một đường thẳng; Trong ba chiều, nó là một mặt phẳng, và trong hơn ba chiều, một siêu phẳng.

Trong phần này, chúng ta sẽ thấy thư viện Scikit-learn của Python có thể được sử dụng như thế nào để thực hiện các chức năng hồi quy. Chúng tôi sẽ bắt đầu với hồi quy tuyến tính đơn giản liên quan đến hai biến và sau đó chúng tôi sẽ tiến tới hồi quy tuyến tính liên quan đến nhiều biến.

Hồi quy tuyến tính cơ bản

Trong khi khám phá các hoạt động ném bom trên không của bộ dữ liệu trong Thế chiến thứ hai và nhớ lại rằng các cuộc đổ bộ D-Day gần như bị hoãn lại do thời tiết kém, tôi đã tải xuống các báo cáo thời tiết này từ khoảng thời gian để so sánh với các nhiệm vụ trong bộ dữ liệu hoạt động ném bom.

Bạn có thể tải xuống bộ dữ liệu từ & nbsp; tại đây.here.

Bộ dữ liệu chứa thông tin về điều kiện thời tiết được ghi lại mỗi ngày tại các trạm thời tiết khác nhau trên khắp thế giới. Thông tin bao gồm mưa, tuyết rơi, nhiệt độ, tốc độ gió và liệu ngày có bao gồm giông bão hoặc các điều kiện thời tiết kém khác.

Vì vậy, nhiệm vụ của chúng tôi là dự đoán tính năng đầu vào nhiệt độ tối đa là nhiệt độ tối thiểu.

Hãy bắt đầu mã hóa & nbsp ;:

Nhập tất cả các thư viện cần thiết & nbsp ;:

import pandas as pd  
import numpy as np  
import matplotlib.pyplot as plt  
import seaborn as seabornInstance 
from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LinearRegression
from sklearn import metrics
%matplotlib inline

Lệnh sau nhập bộ dữ liệu CSV bằng Pandas:

dataset = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')

Hãy cùng khám phá dữ liệu một chút bằng cách kiểm tra số lượng hàng và cột trong bộ dữ liệu của chúng tôi.

Bạn sẽ nhận được đầu ra là (119040, 31), có nghĩa là dữ liệu chứa 119040 hàng và 31 cột.

Để xem các chi tiết thống kê của bộ dữ liệu, chúng ta có thể sử dụng & nbsp; ________ 14:

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Quan điểm thống kê của & nbsp; bộ dữ liệu

Và cuối cùng, hãy để Lôi vẽ các điểm dữ liệu của chúng tôi trên biểu đồ 2 chiều để nhãn dữ liệu của chúng tôi và xem liệu chúng tôi có thể tìm thấy bất kỳ mối quan hệ nào giữa dữ liệu bằng cách sử dụng tập lệnh dưới đây & NBSP ;:

dataset.plot(x='MinTemp', y='MaxTemp', style='o')  
plt.title('MinTemp vs MaxTemp')  
plt.xlabel('MinTemp')  
plt.ylabel('MaxTemp')  
plt.show()

Chúng tôi đã lấy Mintemp và MaxTemp để thực hiện phân tích của chúng tôi. Dưới đây là biểu đồ 2 chiều giữa Mintemp và MaxTemp.

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Hãy để kiểm tra nhiệt độ tối đa trung bình và một khi chúng ta vẽ nó, chúng ta có thể quan sát rằng nhiệt độ tối đa trung bình nằm trong khoảng gần 25 đến 35.

plt.figure(figsize=(15,10))
plt.tight_layout()
seabornInstance.distplot(dataset['MaxTemp'])

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Nhiệt độ tối đa trung bình nằm trong khoảng từ 25 đến & NBSP; 35.

Bước tiếp theo của chúng tôi là chia dữ liệu thành các thuộc tính của các thuộc tính và các nhãn hiệu và các nhãn hiệu.

Các thuộc tính là các biến độc lập trong khi các nhãn là các biến phụ thuộc có giá trị sẽ được dự đoán. Trong bộ dữ liệu của chúng tôi, chúng tôi chỉ có hai cột. Chúng tôi muốn dự đoán MaxTemp tùy thuộc vào Mintemp được ghi lại. Do đó, bộ thuộc tính của chúng tôi sẽ bao gồm cột Mint Mint Mintemp được lưu trữ trong biến X và nhãn sẽ là cột Max MaxTemp được lưu trữ trong biến Y.

X = dataset['MinTemp'].values.reshape(-1,1)
y = dataset['MaxTemp'].values.reshape(-1,1)

Tiếp theo, chúng tôi chia 80% dữ liệu cho tập huấn luyện trong khi 20% dữ liệu để kiểm tra tập hợp sử dụng mã dưới đây.

Biến Test_Size là nơi chúng tôi thực sự chỉ định tỷ lệ của tập kiểm tra.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Sau khi chia dữ liệu vào các bộ đào tạo và thử nghiệm, cuối cùng, đã đến lúc đào tạo thuật toán của chúng tôi. Vì vậy, chúng tôi cần nhập lớp tuyến tính, khởi tạo nó và gọi phương thức & nbsp; ____ 15 & nbsp; cùng với dữ liệu đào tạo của chúng tôi.

regressor = LinearRegression()  
regressor.fit(X_train, y_train) #training the algorithm

Như chúng ta đã thảo luận rằng mô hình hồi quy tuyến tính về cơ bản tìm thấy giá trị tốt nhất cho việc chặn và độ dốc, dẫn đến một dòng phù hợp nhất với dữ liệu. Để xem giá trị của đánh chặn và dốc được tính bằng thuật toán hồi quy tuyến tính cho bộ dữ liệu của chúng tôi, thực thi mã sau.

#To retrieve the intercept:
print(regressor.intercept_)

#For retrieving the slope:
print(regressor.coef_)

Kết quả phải tương ứng là khoảng 10,66185201 và 0,92033997.

Điều này có nghĩa là với mỗi một đơn vị thay đổi nhiệt độ tối thiểu, sự thay đổi của nhiệt độ tối đa là khoảng 0,92%.

Bây giờ chúng tôi đã đào tạo thuật toán của chúng tôi, đã đến lúc đưa ra một số dự đoán. Để làm như vậy, chúng tôi sẽ sử dụng dữ liệu thử nghiệm của chúng tôi và xem thuật toán của chúng tôi dự đoán chính xác mức độ chính xác của chúng tôi dự đoán điểm phần trăm. Để đưa ra dự đoán về dữ liệu kiểm tra, hãy thực hiện tập lệnh sau:

y_pred = regressor.predict(X_test)

Bây giờ so sánh các giá trị đầu ra thực tế cho & nbsp; ________ 16 & nbsp; với các giá trị dự đoán, thực hiện tập lệnh sau:

df = pd.DataFrame({'Actual': y_test.flatten(), 'Predicted': y_pred.flatten()})
df

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

So sánh giá trị thực tế và dự đoán

Chúng ta cũng có thể trực quan hóa kết quả so sánh như một biểu đồ thanh bằng cách sử dụng tập lệnh dưới đây & nbsp ;:

Lưu ý: Vì số lượng hồ sơ là rất lớn, vì mục đích đại diện, tôi đã lấy chỉ 25 hồ sơ.

dataset = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')
0

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Biểu đồ thanh hiển thị so sánh các giá trị thực tế và dự đoán.

Mặc dù mô hình của chúng tôi không chính xác lắm, tỷ lệ dự đoán gần với các mô hình thực tế.

Hãy vẽ đường thẳng của chúng tôi với dữ liệu kiểm tra & nbsp ;:

dataset = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')
1

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

Dự đoán vs Test & NBSP; Dữ liệu

Đường thẳng trong biểu đồ trên cho thấy thuật toán của chúng tôi là chính xác.

Bước cuối cùng là đánh giá hiệu suất của thuật toán. Bước này đặc biệt quan trọng để so sánh mức độ khác nhau của các thuật toán trên một bộ dữ liệu cụ thể. Đối với các thuật toán hồi quy, ba số liệu đánh giá thường được sử dụng:

1. Lỗi tuyệt đối trung bình & nbsp; (MAE) là giá trị trung bình của giá trị tuyệt đối của các lỗi. Nó được tính là:(MAE) is the mean of the absolute value of the errors. It is calculated as:

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

& nbsp; 2. Lỗi bình phương trung bình & nbsp; (MSE) là giá trị trung bình của các lỗi bình phương và được tính là:
2. Mean Squared Error (MSE) is the mean of the squared errors and is calculated as:

Hướng dẫn what does linearregression fit () do in python? - linearregression fit() làm gì trong python?

& nbsp; 3. Lỗi bình phương trung bình gốc & nbsp; (RMSE) là căn bậc hai của giá trị trung bình của các lỗi bình phương:
3. Root Mean Squared Error (RMSE) is the square root of the mean of the squared errors:

May mắn thay, chúng tôi không phải thực hiện các tính toán này theo cách thủ công. Thư viện Scikit-learn đi kèm với các chức năng được xây dựng trước có thể được sử dụng để tìm ra các giá trị này cho chúng tôi.

Hãy để tìm các giá trị cho các số liệu này bằng cách sử dụng dữ liệu thử nghiệm của chúng tôi.

dataset = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')
2

Bạn sẽ nhận được đầu ra như thế này (nhưng có lẽ hơi khác nhau):

dataset = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')
3

Bạn có thể thấy rằng giá trị của lỗi bình phương trung bình gốc là 4,19, cao hơn 10% giá trị trung bình của tỷ lệ phần trăm của tất cả các nhiệt độ, tức là 22,41. Điều này có nghĩa là thuật toán của chúng tôi không chính xác lắm nhưng vẫn có thể đưa ra dự đoán hợp lý tốt.

Điều gì phù hợp trong Python?

Phương pháp Fit () lấy dữ liệu đào tạo làm đối số, có thể là một mảng trong trường hợp học tập không giám sát, hoặc hai mảng trong trường hợp học tập có giám sát.takes the training data as arguments, which can be one array in the case of unsupervised learning, or two arrays in the case of supervised learning.

Sự tuyến tính trong học máy là gì?

Hồi quy tuyến tính là một thuật toán học máy dựa trên học tập có giám sát.Nó thực hiện một nhiệm vụ hồi quy.Mô hình hồi quy Một giá trị dự đoán mục tiêu dựa trên các biến độc lập.Nó chủ yếu được sử dụng để tìm ra mối quan hệ giữa các biến và dự báo.a machine learning algorithm based on supervised learning. It performs a regression task. Regression models a target prediction value based on independent variables. It is mostly used for finding out the relationship between variables and forecasting.

Phù hợp có nghĩa là gì có nghĩa là hồi quy?

Giá trị được trang bị là dự đoán của mô hình thống kê về giá trị phản hồi trung bình khi bạn nhập các giá trị của các yếu tố dự đoán, mức yếu tố hoặc các thành phần vào mô hình.Giả sử bạn có phương trình hồi quy sau: y = 3x + 5. Nếu bạn nhập giá trị 5 cho bộ dự đoán, giá trị được trang bị là 20.a statistical model's prediction of the mean response value when you input the values of the predictors, factor levels, or components into the model. Suppose you have the following regression equation: y = 3X + 5. If you enter a value of 5 for the predictor, the fitted value is 20.