Bài 7: Xây dựng bài toán phân loại - Hồi quy Logistic - Python

Đăng bởi: Admin | Lượt xem: 1707 | Chuyên mục: AI


Không bắt buộc bạn phải xây dựng bộ phân loại từ đầu. Việc xây dựng bộ phân loại rất phức tạp và đòi hỏi kiến thức về một số lĩnh vực như Thống kê, lý thuyết xác suất, kỹ thuật tối ưu hóa ... Có một số thư viện được tạo sẵn trên thị trường có khả năng triển khai các bộ phân loại này đã được kiểm tra đầy đủ và rất hiệu quả.Ta sẽ sử dụng một mô hình dựng sẵn như vậy từ sklearn.

1. Bộ phân loại Sklearn :

Việc tạo bộ phân loại hồi quy Logistic từ bộ công cụ sklearn là không cần thiết và được thực hiện trong một câu lệnh sau:
classifier = LogisticRegression(solver='lbfgs',random_state=0)
Sau khi bộ phân loại được tạo, bạn sẽ cung cấp dữ liệu huấn luyện (Training)  của mình vào bộ phân loại để nó có thể điều chỉnh các thông số bên trong và sẵn sàng dữ đoán dữ liệu trong tương lai. Để điều chỉnh trình phân loại, câu lệnh sử dụng như sau :
classifier.fit(X_train, Y_train)
Bộ phân loại hiện đã sẵn sàng để thử nghiệm. Kết quả như sau :
Out[23]: LogisticRegression(C = 1.0, class_weight = None, dual = False, 
   fit_intercept=True, intercept_scaling=1, max_iter=100, 
   multi_class='warn', n_jobs=None, penalty='l2', random_state=0, 
   solver='lbfgs', tol=0.0001, verbose=0, warm_start=False))

2. Dự đoán dữ liệu test :

Để kiểm tra trình phân loại, ta sử dụng dữ liệu kiểm tra được tạo ở giai đoạn trước. Gọi phương thức dự đoán trên đối tượng đã tạo và truyền vào mảng X của dữ liệu thử nghiệm như sau :
predicted_y = classifier.predict(X_test)
Điều này tạo ra một mảng một chiều cho toàn bộ tập dữ liệu huấn luyện đưa ra dự đoán cho mỗi hàng trong mảng X. Bạn có thể kiểm tra mảng này bằng cách sử dụng lệnh sau:
In [25]: predicted_y
Kết quả :
Out[25]: array([0, 0, 0, ..., 0, 0, 0])
Kết quả đầu ra chỉ ra rằng ba khách hàng đầu tiên và cuối cùng không phải là ứng viên tiềm năng cho Tiền gửi có kỳ hạn. Bạn có thể kiểm tra toàn bộ mảng để phân loại khách hàng tiềm năng
In [26]: for x in range(len(predicted_y)):
   if (predicted_y[x] == 1):
      print(x, end="\t")
Kết quả sau khi chạy đoạn code trên :
Kết quả đầu ra hiển thị chỉ mục(index) của tất cả các hàng là ứng cử viên có thể đăng ký TD. Giờ đây, bạn có thể cung cấp kết quả này cho nhóm tiếp thị của ngân hàng, họ sẽ lấy chi tiết liên hệ của từng khách hàng trong hàng đã chọn và tiến hành công việc của họ.
Trước khi đưa mô hình này vào sản xuất, ta cần phải xác minh tính chính xác của dự đoán.

3. Xác minh độ chính xác

Để kiểm tra độ chính xác của mô hình, hãy sử dụng phương pháp cho điểm trên bộ phân loại như sau
In [27]: print('Accuracy: {:.2f}'.format(classifier.score(X_test, Y_test)))
Kết quả :
Accuracy: 0.90
Bài tiếp theo: Hạn chế và Tổng kết >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!