Làm thế nào để bạn phù hợp với hồi quy logistic trong python?

Những vấn đề như vậy là những vấn đề phân loại nhị phân và hồi quy logistic là một thuật toán rất phổ biến để giải quyết những vấn đề như vậy. Như đã nói, sẽ dễ hiểu hơn về hồi quy logistic là gì

Hồi quy logistic là gì?

Hồi quy logistic là một thuật toán Machine Learning được sử dụng để đưa ra dự đoán nhằm tìm ra giá trị của một biến phụ thuộc, chẳng hạn như tình trạng của khối u [ác tính hoặc lành tính], phân loại email [thư rác hoặc không phải thư rác] hoặc việc nhập học vào trường đại học [được nhận hoặc

Ví dụ, để phân loại email, thuật toán sẽ sử dụng các từ trong email làm đặc điểm và dựa vào đó đưa ra dự đoán email đó có phải là thư rác hay không

Hồi quy logistic là một thuật toán Machine Learning được giám sát, có nghĩa là dữ liệu được cung cấp để đào tạo được gắn nhãn i. e. , câu trả lời đã được cung cấp trong tập huấn luyện. Thuật toán học từ những ví dụ đó và các câu trả lời [nhãn] tương ứng của chúng, sau đó sử dụng điều đó để phân loại các ví dụ mới

Về mặt toán học, giả sử biến phụ thuộc là Y và tập hợp các biến độc lập là X thì hồi quy logistic sẽ dự đoán biến phụ thuộc P[Y=1] là một hàm của X, tập hợp các biến độc lập

Các loại hồi quy logistic

Khi chúng ta nói về Hồi quy logistic nói chung, chúng ta thường có nghĩa là Hồi quy logistic nhị phân, mặc dù cũng có các loại Hồi quy logistic khác

Hồi quy logistic có thể được chia thành các loại dựa trên loại phân loại mà nó thực hiện. Với quan điểm đó, có 3 loại hồi quy logistic. Hãy nói về từng người trong số họ

  • Hồi quy logistic nhị phân
  • Hồi quy logistic đa thức
  • Hồi quy logistic thông thường

Hồi quy logistic nhị phân

Hồi quy logistic nhị phân là loại được sử dụng phổ biến nhất. Đây là loại chúng ta đã thảo luận khi định nghĩa Hồi quy logistic. Trong loại này, biến phụ thuộc/đích có hai giá trị riêng biệt, 0 hoặc 1, ác tính hoặc lành tính, đạt hoặc không đạt, thừa nhận hoặc không thừa nhận

Hồi quy logistic đa thức

Hồi quy logistic đa thức xử lý các trường hợp khi biến mục tiêu hoặc biến độc lập có ba giá trị có thể trở lên. Ví dụ: việc sử dụng hình ảnh X-quang Ngực làm tính năng đưa ra dấu hiệu về một trong ba kết quả có thể xảy ra [Không bệnh, Viêm phổi do vi-rút, COVID-19]. Hồi quy logistic đa thức sẽ sử dụng các tính năng để phân loại ví dụ thành một trong ba kết quả có thể xảy ra trong trường hợp này. Tất nhiên có thể có nhiều hơn ba giá trị có thể có của biến mục tiêu

Hồi quy logistic thông thường

Hồi quy logistic thông thường được sử dụng trong trường hợp biến mục tiêu có tính chất thứ tự. Trong loại này, các danh mục được sắp xếp theo cách có ý nghĩa và mỗi danh mục có ý nghĩa định lượng. Hơn nữa, biến mục tiêu có nhiều hơn hai loại. Ví dụ, điểm đạt được trong một bài kiểm tra có các loại có ý nghĩa định lượng và chúng được sắp xếp theo thứ tự. Giữ cho nó đơn giản, các điểm có thể là A, B hoặc C

Sự khác biệt giữa hồi quy logistic và tuyến tính

Sự khác biệt chính giữa Hồi quy logistic và Hồi quy tuyến tính là Hồi quy tuyến tính được sử dụng để giải các bài toán hồi quy trong khi Hồi quy logistic được sử dụng cho các bài toán phân loại. Trong các bài toán hồi quy, biến mục tiêu có thể có các giá trị liên tục như giá của sản phẩm, tuổi của người tham gia, v.v. Trong khi, các bài toán phân loại xử lý dự đoán biến mục tiêu chỉ có thể có các giá trị rời rạc, ví dụ, dự đoán giới tính của một người, dự đoán khối u là ác tính hay lành tính, v.v.

Hồi quy logistic hoạt động tốt nhất trong loại phần mềm nào?

Hồi quy logistic được sử dụng phổ biến nhất trong các bài toán phân loại nhị phân, trong đó thuật toán dự đoán một trong hai kết quả có thể xảy ra dựa trên các tính năng khác nhau có liên quan đến bài toán

Hồi quy logistic tìm thấy các ứng dụng của nó trong nhiều lĩnh vực và lĩnh vực, các ví dụ sau sẽ làm nổi bật tầm quan trọng của nó

ngành giáo dục. Trong lĩnh vực Giáo dục, hồi quy logistic có thể được sử dụng để dự đoán

  • Việc học sinh có được nhận vào chương trình đại học hay không dựa trên điểm kiểm tra và nhiều yếu tố khác
  • Trong các nền tảng E-learning để xem liệu học sinh có hoàn thành khóa học đúng hạn hay không dựa trên hoạt động trước đây và các số liệu thống kê khác có liên quan đến vấn đề

Lĩnh vực kinh doanh. Trong lĩnh vực kinh doanh, hồi quy logistic có những ứng dụng sau

  • Dự đoán xem giao dịch thẻ tín dụng do người dùng thực hiện có gian lận hay không

ngành y tế. Ngành y tế cũng được hưởng lợi từ hồi quy logistic thông qua các cách sử dụng sau

  • Dự đoán một người có bệnh hay không dựa trên các giá trị thu được từ các báo cáo xét nghiệm hoặc các yếu tố khác nói chung
  • Một ứng dụng rất sáng tạo của Machine Learning đang được các nhà nghiên cứu sử dụng là dự đoán một người có mắc COVID-19 hay không bằng cách sử dụng hình ảnh X-quang Ngực

Các ứng dụng khác. Hồi quy logistic tìm thấy các ứng dụng của nó trong tất cả các lĩnh vực chính, ngoài ra, một số ứng dụng thú vị của nó là

  • Phân loại email – Thư rác hay không thư rác
  • Phân tích tình cảm – Người buồn hay vui dựa trên tin nhắn văn bản
  • Phát hiện và phân loại đối tượng – Phân loại hình ảnh thành hình ảnh con mèo hoặc hình ảnh con chó

Có rất nhiều vấn đề khác có thể được giải quyết bằng cách sử dụng Hồi quy logistic. Các ví dụ được đề cập ở trên đủ để cho bạn biết thuật toán này mạnh mẽ và hữu ích như thế nào

Ví dụ về thuật toán dựa trên hồi quy logistic và triển khai nó trong Python

Bây giờ, các khái niệm cơ bản về Hồi quy logistic đã rõ ràng, đã đến lúc nghiên cứu một ứng dụng thực tế của Hồi quy logistic và triển khai nó trong Python

Hãy làm việc để phân loại các giao dịch thẻ tín dụng là gian lận, còn được gọi là phát hiện gian lận thẻ tín dụng. Đây là một ứng dụng rất quan trọng của Logistic Regression đang được sử dụng trong lĩnh vực kinh doanh. Một bộ dữ liệu trong thế giới thực sẽ được sử dụng cho vấn đề này. Nó là một bộ dữ liệu khá toàn diện có thông tin của hơn 280.000 giao dịch. Hướng dẫn từng bước sẽ được cung cấp để triển khai giải pháp sử dụng hồi quy logistic trong Python

Vậy hãy bắt đầu

Bước 1 – Thực hiện nhập khẩu

Bước đầu tiên là nhập các thư viện sẽ được sử dụng sau này. Nếu bạn chưa cài đặt chúng, bạn sẽ phải cài đặt chúng bằng pip hoặc bất kỳ trình quản lý gói nào khác cho python

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn import preprocessing

from sklearn.metrics import accuracy_score, classification_report, confusion_matrix

from matplotlib import pyplot as plt

import seaborn as sns

Bước 2 – Dữ liệu

Bước thứ hai là lấy dữ liệu sẽ được sử dụng để phân tích và sau đó thực hiện các bước tiền xử lý trên dữ liệu

Bước 2. 1 – Tải xuống dữ liệu

Tập dữ liệu được sử dụng trong ví dụ này có thể được tải xuống từ Kaggle. Sau khi tải xuống, kho lưu trữ sẽ phải được giải nén và lấy tệp CSV

Bước 2. 2 – Tải dữ liệu bằng Pandas

Tệp CSV được đặt trong cùng thư mục với sổ ghi chép jupyter [hoặc tệp mã], sau đó có thể sử dụng đoạn mã sau để tải tập dữ liệu

df = pd.read_csv['creditcard.csv']

Pandas sẽ tải tệp CSV và tạo thành cấu trúc dữ liệu được gọi là Khung dữ liệu Pandas. Thông thường, người ta đặt tên cho Khung dữ liệu là 'df', nhưng nó cũng có thể được đặt tên theo bất kỳ thứ gì có ý nghĩa và phù hợp với dữ liệu

Bước 2. 3 – Khám phá dữ liệu

Sau khi tải dữ liệu, có thể khám phá tập dữ liệu để hiểu rõ hơn

Tập dữ liệu chứa 30 cột, Lớp là biến mục tiêu, trong khi tất cả các cột khác là đặc điểm của tập dữ liệu. Các biến quan trọng nhất được đặt tên từ V1 đến V28

Nhìn vào một vài hàng đầu tiên của tập dữ liệu

Không phải tất cả các cột đều có thể được hiển thị cùng một lúc trên màn hình, do đó các cột còn lại được hiển thị bên dưới

Bước 2. 4 – Tiền xử lý Bộ dữ liệu

Tiền xử lý tập dữ liệu là một phần rất quan trọng của phân tích, nó được sử dụng để loại bỏ các ngoại lệ và trùng lặp khỏi tập dữ liệu. Hơn nữa, một thực tế rất phổ biến là chia tỷ lệ các cột theo tỷ lệ tiêu chuẩn, nó giúp hội tụ nhanh hơn và cho kết quả tốt hơn

Nhìn vào số lượng hàng trùng lặp trong tập dữ liệu

Có hơn một nghìn hàng trùng lặp cần được xóa khỏi tập dữ liệu. Do đó, loại bỏ các bản sao bằng cách sử dụng dòng mã bên dưới

df.drop_duplicates[inplace=True]

Ngoài các hàng, đôi khi có các cột trong dữ liệu không cung cấp bất kỳ thông tin có ý nghĩa nào cho việc phân loại, do đó chúng nên được xóa khỏi dữ liệu trước khi đào tạo mô hình. Một cột như vậy trong tập dữ liệu của chúng tôi là cột Thời gian. Nó có thể được gỡ bỏ bằng cách sử dụng dòng mã dưới đây

df.drop['Time', axis=1, inplace=True]

Sau khi dữ liệu đã được làm sạch, các cột tập dữ liệu có thể được tách thành các cột đặc trưng và cột mục tiêu. Như đã đề cập trước đây, cột lớp là cột mục tiêu và mọi thứ khác là một tính năng. Vì vậy, làm điều đó dưới đây

X = df.iloc[:,df.columns != 'Class']
y = df.Class

Làm xong việc đó, tập dữ liệu có thể được chia thành các tập huấn luyện và kiểm tra. Tập huấn luyện được sử dụng để huấn luyện trình phân loại, trong khi tập kiểm tra có thể được sử dụng để đánh giá hiệu suất của trình phân loại trong các trường hợp không nhìn thấy

X_train, X_test, y_train, y_test = train_test_split[
X, y, test_size=0.20, random_state=5, stratify=y]

Trước khi cung cấp dữ liệu cho bộ phân loại, tập dữ liệu được chia tỷ lệ bằng cách sử dụng một đại lượng vô hướng tiêu chuẩn [như đã đề cập trước đó]. Nó được thực hiện bằng cách sử dụng mã dưới đây

scaler = preprocessing.StandardScaler[].fit[X_train]
X_train_scaled = scaler.transform[X_train]

Điều này hoàn thành quá trình tiền xử lý tập dữ liệu của chúng tôi. Lưu ý rằng tiền xử lý thường quyết định sự thành công hay thất bại của phân tích và do đó cần được thực hiện rất nghiêm túc. Nhiều thứ khác được thực hiện trong giai đoạn tiền xử lý tùy thuộc vào loại và tính chất của dữ liệu, nhưng phần tổng quan ngắn gọn này sẽ đủ để đưa ra ý tưởng về cách thức hoạt động của nó

Bước 3 – Trực quan hóa dữ liệu khám phá

Nó thường làm cho mọi thứ dễ hiểu hơn nhiều khi sử dụng hình ảnh và đồ họa. Điều tương tự cũng xảy ra với các vấn đề về Machine Learning. Các khía cạnh khác nhau của tập dữ liệu được trực quan hóa để hiểu rõ hơn về dữ liệu và quá trình này được gọi là trực quan hóa dữ liệu khám phá

Vẽ biểu đồ để hiểu giá trị của từng biến là một nơi tốt để bắt đầu. Sử dụng mã được đưa ra dưới đây

import matplotlib.colors as mcolors
colors = list[mcolors.CSS4_COLORS.keys[]][10:]
def draw_histograms[dataframe, features, rows, cols]:
    fig=plt.figure[figsize=[20,20]]
    for i, feature in enumerate[features]:
        ax=fig.add_subplot[rows,cols,i+1]
        dataframe[feature].hist[bins=20,ax=ax,facecolor=colors[i]]
        ax.set_title[feature+" Histogram",color=colors[35]]
        ax.set_yscale['log']
    fig.tight_layout[] 
    plt.savefig['Histograms.png']
    plt.show[]
draw_histograms[df,df.columns,8,4]

Các biểu đồ thu được được hiển thị dưới đây

Đó cũng là một thực tế phổ biến để quan sát sự phụ thuộc của các biến vào nhau bằng cách nghiên cứu mối tương quan của chúng. Một hình ảnh rất thú vị và có ý nghĩa được gọi là Bản đồ nhiệt có thể được vẽ để cung cấp thông tin này. Nó có thể được vẽ bằng cách sử dụng mã dưới đây

________số 8_______

Nếu có nhiều biến thì khó quan sát các giá trị. Mặc dù hình có thể được thu nhỏ trong quá trình phân tích để có cái nhìn rõ ràng về các giá trị, nhưng điều này không phải lúc nào cũng được giữ lại đúng cách khi xuất thành hình ảnh

Bước 4 – Xây dựng mô hình và đào tạo

Có nhiều gói khác nhau giúp việc sử dụng các mô hình Machine Learning trở nên đơn giản như gọi hàm hoặc khởi tạo đối tượng, mặc dù mã cơ bản thường rất phức tạp và đòi hỏi kiến ​​thức tốt về toán học đằng sau hoạt động của thuật toán

Bước 4. 1 – Xây dựng mô hình hồi quy logistic

Mô hình có thể được xây dựng đơn giản bằng cách sử dụng dòng mã bên dưới

model = LogisticRegression[]

Bước 4. 2 – Huấn luyện người mẫu

Mô hình có thể được đào tạo bằng cách chuyển các tính năng của tập huấn luyện và các giá trị lớp mục tiêu tương ứng của chúng. Mô hình sẽ sử dụng điều đó để học cách phân loại các ví dụ chưa nhìn thấy

df = pd.read_csv['creditcard.csv']
0

Bước 5 – Đánh giá mô hình

Điều quan trọng là phải kiểm tra xem mô hình hoạt động tốt như thế nào trên cả các ví dụ không nhìn thấy bởi vì nó sẽ chỉ hữu ích nếu nó có thể phân loại chính xác các ví dụ chứ không phải trong tập huấn luyện

Bước 5. 1 – Đánh giá trên Tập huấn luyện

Trước tiên hãy đánh giá mô hình trên tập huấn luyện và xem kết quả

df = pd.read_csv['creditcard.csv']
1

Trên 99. Độ chính xác 9%, khá tốt, nhưng độ chính xác đào tạo không hữu ích, độ chính xác kiểm tra là thước đo thành công thực sự

Bước 5. 2 – Đánh giá trên Test Set

Kiểm tra hiệu suất trên bộ kiểm tra

df = pd.read_csv['creditcard.csv']
2

Độ chính xác của bài kiểm tra cũng trên 99. 9% thật tuyệt

Lưu ý rằng trong hầu hết các vấn đề, bạn sẽ không thể có được độ chính xác cao như vậy, vấn đề này chỉ phù hợp nhất với Hồi quy logistic, do đó đã thu được kết quả đặc biệt

Bước 5. 3 – Tạo báo cáo phân loại

Vì dữ liệu này không cân bằng [có rất ít trường hợp khi y = 1]. Trong những trường hợp như vậy, báo cáo Phân loại cung cấp nhiều thông tin hơn so với các phép đo độ chính xác đơn giản. Nó cũng nói về độ chính xác và thu hồi

df = pd.read_csv['creditcard.csv']
3

Bước 5. 4 – Hình dung bằng cách sử dụng Ma trận nhầm lẫn

Confusion Matrix cũng cho thông tin tương tự như báo cáo phân loại nhưng dễ hiểu hơn. Nó cho biết có bao nhiêu giá trị của mỗi lớp được phân loại đúng hay sai

df = pd.read_csv['creditcard.csv']
4

Phần kết luận

Có nhiều loại Hồi quy logistic khác nhau, nhưng được sử dụng rộng rãi nhất là hồi quy logistic nhị phân, trong đó việc phân loại diễn ra trên một trong hai giá trị có thể có của biến mục tiêu. Hồi quy logistic khác với Hồi quy tuyến tính vì đây là thuật toán phân loại và có các giá trị rời rạc làm đầu ra phân loại, trong khi Hồi quy tuyến tính là thuật toán hồi quy có các giá trị liên tục làm đầu ra. Chúng tôi cũng đề cập rằng Hồi quy logistic được sử dụng trong nhiều ứng dụng bao gồm các nhiệm vụ phân loại trong các ngành Kinh doanh, Giáo dục và Y tế

Một ví dụ thực tế về hồi quy logistic đã được nghiên cứu. Phân tích liên quan đến hơn 280.000 trường hợp giao dịch được chia thành các tập huấn luyện và kiểm tra theo tỷ lệ tương ứng từ 80 đến 20. Sau khi khám phá và tiền xử lý tập dữ liệu, mô hình đã được đào tạo và độ chính xác phân loại là 99. 9% đã thu được. Nó cho thấy rằng Hồi quy logistic đã rất thành công trong việc phát hiện các giao dịch gian lận, mặc dù cũng có thể cải thiện nhiều hơn bằng cách điều chỉnh mô hình [khái niệm nâng cao]

Nếu dự án của bạn dựa trên AI hoặc Machine Learning, bạn nên làm việc với các chuyên gia giỏi nhất. Gặp gỡ nhóm của chúng tôi và xem cách chúng ta có thể cùng nhau phát triển phần mềm của bạn

Hồi quy logistic hoạt động như thế nào trong Python?

Hồi quy logistic nhằm giải quyết các vấn đề về phân loại. Nó thực hiện điều này bằng cách dự đoán kết quả rõ ràng , không giống như hồi quy tuyến tính dự đoán kết quả liên tục. Trong trường hợp đơn giản nhất, có hai kết quả, được gọi là nhị thức, một ví dụ về dự đoán khối u là ác tính hay lành tính.

Làm thế nào để hồi quy logistic phù hợp với một dòng?

Trong Hồi quy logistic, chúng tôi không khớp trực tiếp một đường thẳng với dữ liệu của mình như trong hồi quy tuyến tính. Thay vào đó, chúng tôi khớp một đường cong hình chữ S, được gọi là Sigmoid, theo các quan sát của chúng tôi .

Chủ Đề