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']
0Bướ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']
1Trê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']
3Bướ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']
4Phầ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