cuốn sách gpt4 ai đã làm

Giải thích chi tiết và thực hành hồi quy logistic đa lớp Python

In lại Tác giả: Sahara Thời gian cập nhật: 2025-01-04 00:40:47 57 4
mua khóa gpt4 Nike

Trong học máy, hồi quy logistic là một thuật toán phân loại cơ bản nhưng rất hiệu quả. Nó không chỉ có thể được sử dụng cho các bài toán phân loại nhị phân mà còn có thể được mở rộng cho các bài toán phân loại đa. Bài viết này sẽ giới thiệu chi tiết cách sử dụng Python để triển khai mô hình hồi quy logistic đa phân loại và đưa ra các ví dụ mã chi tiết.

1. Giới thiệu về hồi quy logistic

Hồi quy logistic là một mô hình tuyến tính được sử dụng cho các bài toán phân loại nhị phân. Nó ánh xạ đầu ra của hồi quy tuyến tính tới khoảng (0, 1) thông qua hàm Sigmoid, từ đó thu được xác suất mẫu thuộc về một lớp nhất định. Đối với các bài toán phân loại đa dạng, hàm Softmax có thể được sử dụng để ánh xạ đầu ra thành nhiều danh mục sao cho tổng xác suất đầu ra của mỗi danh mục là 1.

Dạng tổng quát của mô hình hồi quy logistic là:

trong đó θ là tham số mô hình và x là đặc điểm đầu vào.

Đối với các bài toán phân loại đa dạng, giả sử có k loại, dạng của hàm Softmax là:

Trong đó, θi là vectơ tham số thuộc loại thứ i.

2. Chuẩn bị dữ liệu

Trước khi thực hiện hồi quy logistic nhiều lớp, chúng ta cần chuẩn bị một số dữ liệu. Ở đây, chúng tôi sử dụng bộ dữ liệu Iris cổ điển, chứa ba loại hoa iris, mỗi loại có 50 mẫu và mỗi mẫu có 4 đặc điểm.

Sau đây là mã để chuẩn bị dữ liệu:

nhập gấu trúc dưới dạng pd từ sklearn.datasets nhập Load_iris từ sklearn.model_selection nhập train_test_split từ sklearn.preprocessing import StandardScaler # Tải tập dữ liệu Iris iris = Load_iris() data = pd.DataFrame(data=iris.data, columns=iris.feature_names) data ['target'] = iris.target # Hiển thị 5 dòng đầu tiên của dữ liệu print(data.head()) # Chia tập huấn luyện và tập kiểm tra X = data[iris.feature_names] # Tính năng y = data['target'] # Biến mục tiêu X_train, X_test, y_train , y_test = train_test_split(X, y, test_size=0.3, Random_state=42) # Bộ chia tỷ lệ tính năng = StandardScaler() X_train = Scaler.fit_transform(X_train) X_test = Scaler.transform(X_test)

3. Đào tạo người mẫu

Khi huấn luyện mô hình hồi quy logistic nhiều lớp, chúng ta cần sử dụng lớp LogisticRegression và chỉ định tham số multi_class='multinomial' để sử dụng hồi quy logistic đa thức. Ngoài ra, chúng ta cũng cần chỉ định thuật toán tối ưu hóa, ở đây sử dụng Solver='lbfgs'.

Sau đây là mã để đào tạo mô hình:

from sklearn.Tuyến_model import LogisticRegression # Tạo mô hình hồi quy Logistic model = LogisticRegression(multi_class='multinomial', Solver='lbfgs') # Mô hình đào tạo model.fit(X_train, y_train) # Xuất ra điểm đào tạo của mô hình print(f 'Điểm đào tạo : {model.score(X_train, y_train)}')

4. Đánh giá mô hình

Sau khi đào tạo mô hình, chúng ta cần đánh giá mô hình để xem nó hoạt động như thế nào trên tập kiểm tra. Các số liệu đánh giá thường được sử dụng bao gồm độ chính xác, ma trận nhầm lẫn và báo cáo phân loại.

Đây là mã để đánh giá mô hình:

từ sklearn.metrics nhập độ chính xác_score, nhầm lẫn_matrix, phân loại_report # Dự đoán bộ kiểm tra y_pred = model.predict(X_test) # Tính toán và hiển thị độ chính xác độ chính xác = độ chính xác_score(y_test, y_pred) print(f'Accuracy: {accuracy}') # Tính toán và hiển thị ma trận nhầm lẫn conf_matrix = nhầm lẫn_matrix(y_test, y_pred) print('Confusion Matrix:\n', conf_matrix) # Tính toán và hiển thị báo cáo phân loại print(classification_report(y_test, y_pred))

5. Tích hợp và vận hành mã

Đây là ví dụ mã hoàn chỉnh, sẵn sàng để chạy:

nhập gấu trúc dưới dạng pd từ sklearn.datasets nhập Load_iris từ sklearn.model_selection nhập train_test_split từ sklearn.preprocessing nhập StandardScaler từ sklearn.Tuyến_model nhập LogisticRegression từ sklearn.metrics nhập độ chính xác_score, nhầm lẫn_matrix, phân loại_report # Tải tập dữ liệu Iris iris = Load_iris() dữ liệu = pd .DataFrame(data=iris.data, columns=iris.feature_names) data['target'] = iris.target # Hiển thị 5 hàng dữ liệu đầu tiên print(data.head()) # Chia tập huấn luyện và tập kiểm tra X = data[iris.feature_names] # Tính năng y = data['target'] # Biến mục tiêu X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, Random_state=42) # Bộ chia tỷ lệ tính năng = StandardScaler() X_train = Scaler.fit_transform(X_train) Mô hình đào tạo model.fit(X_train, y_train) # Xuất ra điểm đào tạo của mô hình print(f'Training point: {model.score(X_train, y_train)}') # Dự đoán tập kiểm tra y_pred = model.predict(X_test) # Tính toán và hiển thị độ chính xác độ chính xác = độ chính xác_score(y_test, y_pred) print(f'Accuracy: {accuracy}' ) # Tính toán và hiển thị ma trận nhầm lẫn conf_matrix = nhầm lẫn_matrix(y_test, y_pred) print('Ma trận nhầm lẫn:\n', conf_matrix) # Tính toán và hiển thị báo cáo phân loại print(classification_report(y_test, y_pred))

6. Phân tích kết quả

Sau khi chạy đoạn mã trên, bạn sẽ nhận được điểm huấn luyện, độ chính xác, ma trận nhầm lẫn và báo cáo phân loại của mô hình. Dưới đây là phân tích về những kết quả đó:

  1. điểm đào tạo: Đây là độ chính xác của mô hình trên tập huấn luyện, thường cao hơn độ chính xác trên tập kiểm tra. Nếu điểm huấn luyện quá cao và điểm kiểm tra quá thấp, điều đó có thể cho thấy mô hình đang bị quá khớp.
  2. Sự chính xác: Đây là độ chính xác của mô hình trên tập kiểm tra và là một chỉ số quan trọng về hiệu suất của mô hình. Độ chính xác càng cao thì hiệu suất của mô hình càng tốt.
  3. ma trận nhầm lẫn: Ma trận nhầm lẫn là một bảng hiển thị các dự đoán của mô hình trên từng danh mục. Thông qua ma trận nhầm lẫn, chúng ta có thể hiểu được hiệu suất của mô hình trên từng danh mục và liệu có sự nhầm lẫn về danh mục hay không.
  4. Báo cáo phân loại: Báo cáo phân loại cung cấp các số liệu như độ chính xác, khả năng thu hồi và điểm F1 cho từng danh mục. Tỷ lệ chính xác biểu thị tỷ lệ các mẫu dương tính thực trong số các trường hợp được dự đoán là mẫu dương tính; tỷ lệ thu hồi biểu thị tỷ lệ của tất cả các mẫu dương tính thực được dự đoán chính xác; được sử dụng để đo lường toàn diện hiệu suất của mô hình.

7. Tối ưu hóa mô hình

Mặc dù đoạn mã trên đã triển khai mô hình hồi quy logistic đa phân loại cơ bản, nhưng trong các ứng dụng thực tế, chúng ta cũng có thể cần tối ưu hóa mô hình để cải thiện hiệu suất của nó. Sau đây là một số phương pháp tối ưu hóa thường được sử dụng:

  1. Lựa chọn tính năng: Việc lựa chọn các tính năng có tác động quan trọng đến hiệu suất của mô hình để huấn luyện có thể cải thiện độ chính xác và khả năng khái quát hóa của mô hình.
  2. chính quy hóa: Ngăn chặn việc trang bị quá mức mô hình bằng cách thêm các thuật ngữ chính quy hóa. Các phương pháp chính quy hóa thường được sử dụng trong hồi quy logistic bao gồm chính quy hóa L1 và chính quy hóa L2.
  3. Điều chỉnh siêu tham số: Tối ưu hóa hiệu suất của mô hình bằng cách điều chỉnh các siêu tham số của mô hình (như tốc độ học, số lần lặp, v.v.).
  4. học tập theo nhóm: Kết hợp kết quả dự đoán của nhiều mô hình để nâng cao độ chính xác và ổn định của mô hình. Các phương pháp học tập tổng hợp thường được sử dụng bao gồm đóng gói và tăng cường.

8. Kết luận

Bài viết này trình bày chi tiết cách sử dụng Python để triển khai mô hình hồi quy logistic đa phân loại và đưa ra các ví dụ mã chi tiết. Thông qua các bước chuẩn bị dữ liệu, đào tạo mô hình, đánh giá mô hình và phân tích kết quả, chúng tôi hiểu được quy trình thực hiện cơ bản của hồi quy logistic đa phân loại. Ngoài ra, bài viết còn giới thiệu một số phương pháp tối ưu hóa mô hình phổ biến giúp người đọc nâng cao hiệu quả hoạt động của mô hình trong ứng dụng thực tế. Tôi hy vọng bài viết này có thể cung cấp tài liệu tham khảo có giá trị cho người mới bắt đầu và tiếp tục nâng cao kỹ năng thực hành của họ.

Cuối cùng, bài viết này về giải thích chi tiết và thực hành hồi quy Logistic đa lớp Python kết thúc tại đây. Nếu bạn muốn biết thêm về giải thích chi tiết và thực hành hồi quy Logistic đa lớp Python, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. Tôi hy vọng tất cả các bạn ủng hộ blog của tôi trong tương lai! .

57 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress