Làm thế nào để bạn phù hợp với một tập dữ liệu trong python?

Đây là thời đại của máy tính, máy móc và trí tuệ nhân tạo. Lĩnh vực Khoa học dữ liệu ngày càng mở rộng đến mức bất kỳ kỹ năng nào bạn thêm vào kho vũ khí của mình đều đủ ngắn. Khi bạn nói về Khoa học dữ liệu, Thống kê là một lĩnh vực quan tâm tự động vì hầu hết mọi Kỹ thuật học máy bạn sử dụng đều dựa trên một số khái niệm thống kê cốt lõi. Hiểu tầm quan trọng của thống kê trong khoa học dữ liệu thông qua liên kết

Một trong những khái niệm thống kê cơ bản đang được sử dụng trong học máy là Hồi quy tuyến tính. Trong bài viết này, chúng tôi sẽ đưa bạn vào cuộc hành trình nơi chúng ta sẽ cùng nhau khám phá các khả năng của python khi điều chỉnh và chạy mô hình hồi quy tuyến tính trong đó

Hồi quy là gì?

Hồi quy là một kỹ thuật thống kê cho phép chúng ta tìm mối quan hệ giữa một số biến. Nó cho phép chúng ta tìm ra tác động của một hoặc nhiều biến đối với biến khác. Ví dụ: Bạn có thể quan sát tất cả học sinh từ lớp 12 trong một trường đại học và tìm ra các yếu tố sẽ ảnh hưởng đến điểm cuối kỳ của học sinh.  

Các biến số phụ thuộc vào điểm cuối kỳ có thể là số giờ học, số giờ ngủ, môi trường mà học sinh sống, số giờ chơi, số bài giảng trên giường của học sinh, v.v.  

Đây là một bài toán hồi quy kinh điển trong đó mỗi sinh viên là một quan sát và các yếu tố như số giờ học, số giờ ngủ, số tiết giảng bài, v.v. được giả định là độc lập với nhau.  

Vì chúng độc lập với nhau nên chúng thường được gọi là biến độc lập hoặc biến hồi quy. Mặt khác, điểm cuối kỳ phụ thuộc vào tất cả các biến này và do đó điểm cuối kỳ được coi là biến phụ thuộc hoặc biến hồi quy

[ Đọc tương tự. phân tích hồi quy là gì?]

Hồi quy tuyến tính là gì?

Hồi quy tuyến tính là một kỹ thuật hồi quy thống kê trong đó chúng ta có một biến hồi quy hoặc biến phụ thuộc và một hoặc nhiều biến hồi quy. Cách tiếp cận mô hình hóa hoặc tìm mối quan hệ giữa hai điều này là tuyến tính và do đó nó được gọi là hồi quy tuyến tính. Nếu chúng ta có một biến hồi quy thì đó là hồi quy tuyến tính đơn giản, nếu chúng ta có nhiều hơn một biến hồi quy thì nó được gọi là hồi quy tuyến tính bội

Tập dữ liệu đã sử dụng

Bộ dữ liệu chúng ta sẽ sử dụng trong ví dụ này có tên là “Bộ dữ liệu MPG tự động” được lấy từ thư viện StatLib được duy trì bởi Đại học Carnegie Mellon. Bộ dữ liệu cung cấp các khía cạnh kỹ thuật và thông số kỹ thuật của ô tô.  

Dữ liệu được thiết kế theo cách mà chúng tôi có thể dự đoán mức tiêu thụ nhiên liệu trong chu kỳ thành phố tính bằng dặm trên mỗi gallon dựa trên ba biến rời rạc đa biến và năm biến liên tục. Dữ liệu gồm 398 quan sát với 9 biến.  

Chúng tôi có một bản sao csv của dữ liệu này và nó là một tập dữ liệu rất phổ biến đang được sử dụng cho vấn đề hồi quy. Xem ảnh chụp màn hình bên dưới

Bộ dữ liệu Auto-MPG

Bây giờ, chúng ta hãy hướng tới việc thực sự thiết lập mô hình hồi quy.  

Nhập thư viện

Có một số thư viện chúng tôi sẽ nhập và sử dụng trong khi chạy mô hình hồi quy trong python và khớp đường hồi quy với các điểm. Chúng tôi sẽ nhập gấu trúc, numpy, số liệu từ sklearn, LinearRegression từ linear_model là một phần của sklearn và r2_score từ các số liệu lại là một phần của sklearn. Xem mã dưới đây để bạn tham khảo

# importing libraries



import pandas as pd

import numpy as np

from sklearn import metrics



from sklearn.linear_model import LinearRegression

from sklearn.metrics import r2_score

Không có gì để hiển thị trong cửa sổ đầu ra cho mã này vì nó chỉ đang nhập các gói này để chúng tôi có thể sử dụng chúng trong khi xây dựng mã của mình

[Phải kiểm tra. Bước đầu tiên hướng tới Python]

Bước 1. Đọc tập dữ liệu

Chúng ta có thể sử dụng phương thức read_csv[] để đọc tập dữ liệu mpg mà chúng ta có ở định dạng csv tại thư mục làm việc của python. Sau đây là mã cho cùng. Tệp được lưu trữ trên đường dẫn “C. \Users\lsalunkhe”

#readig dataset into the python environment



mpg_df = pd.read_csv[r"C:\Users\lsalunkhe\mpg_data.csv"]

mpg_df

Lưu ý rằng có chữ “r” này trước đường dẫn tệp thực tế bên trong hàm. Nó là viết tắt của “raw” và nó cho phép hệ thống coi những dấu gạch chéo ngược đó là một phần của đường dẫn tệp. Nếu không, hệ thống sẽ coi chúng là ký tự đặc biệt và sẽ báo lỗi

Khung dữ liệu sẽ trông giống như được hiển thị bên dưới

Đọc tập dữ liệu mpg vào python dưới dạng khung dữ liệu

Bước 2. Thiết lập mục tiêu và Regressors lên

Biến mục tiêu cho chúng tôi sẽ là mpg. Vì chúng ta đang làm việc với hồi quy tuyến tính, nên chúng ta sẽ sử dụng hồi quy tuyến tính một biến. Biến hồi quy của chúng ta sẽ là sự dịch chuyển. Chúng tôi quan tâm đến việc kiểm tra mức độ dịch chuyển đang ảnh hưởng đến mpg. Đặt hai biến này tách biệt khỏi khung dữ liệu để chúng tôi có thể làm việc với chúng.  

#Setting target and regressor variables separate from dataframe

part_df = mpg_df[["mpg", "displacement"]]

part_df



#Setting target and regression variables up

y = mpg_df.mpg

X = part_df[["displacement"]]

 

Khung dữ liệu một phần

Bước 3. Lắp mô hình hồi quy tuyến tính và dự đoán kết quả

Bây giờ, bước quan trọng, chúng ta cần xem tác động của độ dịch chuyển đối với mpg. Để quan sát điều này, chúng ta cần điều chỉnh mô hình hồi quy. Chúng tôi sẽ sử dụng phương thức LinearRegression[] từ sklearn. mô-đun linear_model để phù hợp với một mô hình trên dữ liệu này. Sau đó, chúng tôi sẽ đưa ra dự đoán dựa trên mô hình được trang bị. Xem mã dưới đây


​​​​​​​#Fitting simple Linear Regression Model



linr_model = LinearRegression[].fit[X, y]

linr_model

Không có gì mã này có thể tạo ra dưới dạng đầu ra và chúng tôi không thể thấy gì là đầu ra cho mã này

Bây giờ, phần quan trọng của việc khớp mô hình là tạo hệ số chặn và hệ số. Hệ số chặn và hệ số cho phép chúng ta điều chỉnh một phương trình cho hồi quy tuyến tính và sau đó các dự đoán nằm trên thẻ

#Model Fitting Results

linr_model.coef_

linr_model.intercept_

 



The equation of linear regression is as below:

y = 0 + 1X



Where,

y -  is the target variable

0 - is the intercept [weight predicted by the model]. It is often referred to as the mean value of the target variable [y] when the regressor is zero [x = 0].

1 - is the regression coefficient or slope [again a predicted weight by model].

X - is the regressor that helps in predicting the target.

Nếu chúng tôi chạy mã ở trên, chúng tôi có thể thấy các giá trị chặn và độ dốc như được hiển thị bên dưới

Giá trị chặn và độ dốc

Bây giờ, nếu bạn muốn sử dụng các giá trị hệ số góc và hệ số chặn này để xây dựng phương trình hồi quy tuyến tính, nó sẽ như hình bên dưới

mpg = 35. 1748 + -0. 0603*độ dịch chuyển

Bây giờ, dựa trên phương trình này, tất cả các dự đoán sẽ xảy ra trong mô hình

Hãy cho chúng tôi xem đoạn mã dưới đây dự đoán mpg dựa trên sự dịch chuyển

#Making Predictions based on the coefficient and intercept

linr_model.predict[part_df[["displacement"]]]

Ở đây, chúng ta vừa gọi phương thức predict[] từ linear_model trên biến độ dịch chuyển từ khung dữ liệu một phần, sau đó hệ thống sẽ dự đoán các giá trị mpg dựa trên phương trình trên cho từng giá trị độ dịch chuyển. Kết quả sẽ là một mảng như thể hiện trong đầu ra bên dưới

Một mảng mpg được dự đoán cho các giá trị dịch chuyển tương ứng

[Cũng đọc. Làm thế nào để hồi quy tuyến tính và hậu cần hoạt động trong ML?]

Bước 4. Nhìn vào sự thay đổi được giải thích bởi Regressor

Một phép đo quan trọng xác định hiệu quả của mô hình của bạn là giá trị bình phương R. Đây là thước đo thống kê cho phép bạn xem mức độ biến thiên giữa các biến phụ thuộc được giải thích bởi biến độc lập. Nó còn được gọi là hệ số xác định.  

Không có giá trị ngưỡng nào được đặt cho R-squared. Nhưng nhìn chung, giá trị R bình phương càng nhiều thì mô hình phù hợp càng tốt. Hãy để chúng tôi tính toán giá trị bình phương R và xem mô hình được trang bị tốt như thế nào

#variation explained

 

r2_score[

    y_true = part_df.mpg, 

    y_pred = linr_model.predict[part_df[["displacement"]]]

]

Ở đây, r2_score[] là một hàm cung cấp cho bạn hệ số của giá trị xác định. Các giá trị thực tế và dự đoán được đặt trong các đối số y_true và y_pred. Bây giờ hãy xem kết quả bên dưới để biết mô hình của bạn tốt như thế nào

​​​​​​​​

Hệ số xác định đo mức độ phù hợp của mô hình

Bây giờ ở đây, bạn có thể thấy rằng giá trị của hệ số xác định là 0. 6467 có nghĩa là biến hồi quy [độ dịch chuyển] đã có thể giải thích 64. 67% [gần 65%] khả năng thay đổi của mục tiêu [mpg]. Nói cách khác, các giá trị mpg được dự đoán gần bằng 65% so với các giá trị mpg thực tế. Và đây là một sự phù hợp tốt trong trường hợp này

Bước 5. Vẽ sơ đồ mối quan hệ giữa mpg xe và sự dịch chuyển

Chúng tôi sẽ sử dụng thư viện plotnine để tạo một biểu đồ phân tán tùy chỉnh với đường hồi quy trên đó cho các giá trị mpg so với chuyển vị. Biểu đồ này sẽ giải thích mối quan hệ giữa hai biến này và điều tốt nhất là nó có chủ đề và màu sắc tùy chỉnh. Xem mã dưới đây

#making custom visualization of mpg vs displacement



from plotnine import ggplot, aes, geom_point, geom_line

from plotnine.themes import theme_minimal

 

part_df["fitted"] = linr_model.predict[part_df[["displacement"]]]

part_df

 

ggplot[aes["displacement", "mpg" ], part_df] \

    + geom_point[alpha = 0.5, color = "#2c3e50"] \

    + geom_line[aes[y = "fitted"], color = 'blue'] \

    + theme_minimal[]

Nếu chúng tôi chạy mã này, chúng tôi có thể thấy biểu đồ phân tán với đường hồi quy trên đó bên dưới

Biểu đồ hồi quy cho mpg so với chuyển vị

Bài viết này kết thúc tại đây. Hãy để chúng tôi kết thúc bài viết này với một số điểm cần ghi nhớ

[Blog gợi ý. Thư viện NLP với Python]

Tóm lược

  1. Hàm LinearRegression[] từ sklearn. mô-đun linear_regression để phù hợp với mô hình hồi quy tuyến tính

  2. Giá trị mpg được dự đoán gần bằng 65% [hoặc khớp với] giá trị mpg thực tế. Có nghĩa là dựa trên sự dịch chuyển gần 65% độ biến thiên của mô hình được giải thích

  3. Thư viện Plotnine và các phương thức từ nó được sử dụng để vẽ biểu đồ phân tán tùy chỉnh với đường hồi quy trên đó

  4. Dựa trên biểu đồ phân tán, chúng ta có thể nói rằng giá trị dịch chuyển càng thấp thì giá trị mpg sẽ càng cao. Nghĩa là có mối tương quan âm giữa hai biến này. Điều này cũng được thể hiện rõ qua giá trị âm của độ dốc [hãy nhớ độ dốc hoặc hệ số beta là -0. 0603]

    Làm thế nào để phù hợp với dữ liệu trong gấu trúc?

    Phù hợp với Dữ liệu trong Khung dữ liệu gấu trúc .
    nhập gấu trúc dưới dạng pd từ lmfit. mô hình nhập khẩu LorentzianModel
    in [kết quả
    kết quả. cốt truyện_fit[]

    SciPy Curve_fit hoạt động như thế nào?

    API SciPy cung cấp chức năng 'curve_fit' trong thư viện tối ưu hóa của nó để khớp dữ liệu với một chức năng nhất định. Phương pháp này áp dụng bình phương nhỏ nhất phi tuyến tính để khớp với dữ liệu và trích xuất các tham số tối ưu từ dữ liệu đó

Chủ Đề