Mô hình dự đoán bệnh tiểu đường bằng Python Machine Learning

Feb 27 2023
Giới thiệu Trong bài viết này, chúng ta sẽ học cách sử dụng mô hình Train Test Split để chia tập dữ liệu thành bốn phần, phát triển mô hình dự đoán, đồng thời phân tích các dự đoán và tập dữ liệu thông qua một trường hợp sử dụng. Trường hợp sử dụng — Tuyên bố vấn đề Mục tiêu của chúng tôi cho bài viết này là dự đoán liệu bệnh nhân có mắc bệnh tiểu đường hay không.

Giới thiệu

Trong bài viết này, chúng ta sẽ học cách sử dụng mô hình Train Test Split để chia tập dữ liệu thành bốn phần, phát triển mô hình dự đoán, đồng thời phân tích các dự đoán và tập dữ liệu thông qua một trường hợp sử dụng.

Trường hợp sử dụng - Tuyên bố vấn đề

Mục tiêu của chúng tôi cho bài viết này là dự đoán liệu bệnh nhân có mắc bệnh tiểu đường hay không . Tất cả bệnh nhân của chúng tôi đều là phụ nữ trẻ, những dữ liệu đã cho (tức là số lần mang thai, mức đường huyết và chỉ số BMI) sẽ được sử dụng để dự đoán bệnh tiểu đường. Đây là tập dữ liệu mà chúng tôi sẽ sử dụng.

Đào tạo và kiểm tra dữ liệu trong Machine Learning

Khi làm việc với bộ dữ liệu, hầu hết tất cả các thuật toán học máy đều hoạt động trong ba giai đoạn khác nhau: Tiền xử lý dữ liệu, Mô hình dự đoán và Phân tích dữ liệu. Trong giai đoạn 1 của quy trình, tập dữ liệu được chia thành 80% dữ liệu huấn luyện và 20% dữ liệu thử nghiệm. Sử dụng mô hình Train Test Split , trước tiên chúng tôi sẽ hoàn thành quá trình tiền xử lý dữ liệu trước mô hình dự đoán và phân tích dữ liệu.

Để bắt đầu tiền xử lý dữ liệu, trước tiên chúng ta cần cài đặt một vài thư viện Python bằng pip:

>>> pip cài đặt gấu trúc

>>>pip cài đặt sklearn

Sau khi cài đặt các thư viện cần thiết, chúng ta sẽ sử dụng thư viện pandas để import dataset và thư viện sklearn để thực hiện chia dataset:

Sau khi nhập các gói này, chúng tôi sẽ đọc tập dữ liệu của mình từ tệp csv sang khung dữ liệu pandas để có thể dễ dàng thay đổi và thao tác trong giai đoạn tiền xử lý.

Bây giờ, chúng ta sẽ bắt đầu chia tập dữ liệu thành hai phần: x và y. Vì chúng tôi muốn dự đoán “Kết quả”, 0 là không mắc bệnh tiểu đường và 1 là bệnh tiểu đường , biến x của chúng tôi sẽ bao gồm tất cả dữ liệu trừ “Kết quả”, trong khi biến y của chúng tôi sẽ chỉ lưu trữ các giá trị “Kết quả”.

Sau đó, cuối cùng chúng ta sẽ sử dụng mô hình Train Test Split để chia biến x thành 80% x_train và 20% x_test . Điều tương tự cũng sẽ được thực hiện với biến y: 80% y_train và 20% y_test .

Để kiểm tra xem điều gì đã thực sự xảy ra, chúng ta có thể chạy .head() hoặc .shape trên các đoàn tàu và kiểm tra xem dữ liệu đã được thay đổi như thế nào từ đầu bài viết này cho đến bây giờ.

Phát triển mô hình dự đoán

Hoàn thành việc phân chia tập dữ liệu thành bốn phần, bây giờ chúng ta sẽ bắt đầu giai đoạn 2 của quy trình, phát triển một mô hình dự đoán. Chúng tôi sẽ sử dụng mô hình Trình phân loại rừng ngẫu nhiên , rất phù hợp để dự đoán phân loại dựa trên nhiều yếu tố như trong trường hợp này, cho các dự đoán của chúng tôi.

Đầu tiên, chúng tôi sẽ nhập mô hình Trình phân loại rừng ngẫu nhiên từ sklearn. Sau đó, sau khi xác định tên mô hình, nó sẽ được đào tạo với x_train và y_train của tập dữ liệu, để nó có thể tìm ra các mẫu và xu hướng giữa nhiều biến độc lập khác nhau trong x_train và biến “Kết quả” trong y_train . Sau khi quá trình đào tạo kết thúc, chúng tôi sẽ sử dụng mô hình được đào tạo của mình để dự đoán “Kết quả” của dữ liệu x_test đã nhập mà không cung cấp cho nó dữ liệu y_test. Đây là mã cho tất cả điều này:

Với các dự đoán được lưu trữ trong biến y_pred, chúng tôi muốn xem mức độ chính xác của các dự đoán của chúng tôi đối với dữ liệu x-_test đã cho bằng cách so sánh nó với kết quả thực tế của y_test. Bằng cách sử dụng các số liệu từ thư viện sklearn, chúng tôi phát hiện ra rằng mô hình của chúng tôi chính xác khoảng 81% so với các dự đoán của nó.

Lưu ý: Mô hình Radom Forest Classifier giống như hầu hết các mô hình dự đoán tinh vi được thiết kế cho các tập dữ liệu lớn. Chức năng và dự đoán của nó chính xác hơn nhiều với lượng dữ liệu “lớn hơn”, vì nó có thể triển khai nhiều dữ liệu hơn để đào tạo và học hỏi, dẫn đến dự đoán tốt hơn và độ chính xác cao hơn.

Phân tích dữ liệu

Trong bước cuối cùng của dự án, chúng tôi muốn thực hiện một số phân tích dữ liệu để tìm hiểu thêm về dữ liệu và mô hình dự đoán của chúng tôi. Đầu tiên, chúng tôi sẽ sử dụng Ma trận nhầm lẫn từ sklearn để tìm hiểu sâu hơn về các dự đoán của chúng tôi và nơi nó sai. Chúng tôi sẽ cần và cài đặt với pip, đồng thời nhập các thư viện seaborn và matplotlib để các phân tích dữ liệu sau đây hoạt động.

Như chúng ta có thể thấy ở đây, Ma trận Nhầm lẫn cho chúng ta biết số lần mô hình của chúng ta dự đoán đúng và sai điều gì đó. Ngoài ra, Ma trận nhầm lẫn hiển thị các kết quả xác thực sai và phủ định sai do mô hình tạo ra, suy ra rằng mô hình cần thêm dữ liệu để sửa các lỗi đó.

Một kỹ thuật phân tích dữ liệu khác là sử dụng Điểm Tầm quan trọng của Tính năng để xác định biến số độc lập nào có ý nghĩa quan trọng nhất trong việc dự đoán bệnh tiểu đường hay không . Điểm số quan trọng của tính năng càng cao có nghĩa là ảnh hưởng của biến số đó đối với “Kết quả” của bệnh tiểu đường càng lớn.

Để hiển thị dữ liệu này bằng đồ họa:

Phần kết luận

Ở đây trong bài viết này, chúng ta đã học cách chia tập dữ liệu tệp csv thành 4 phần khác nhau bằng cách sử dụng mô hình Train Test Split, tạo mô hình dự đoán bằng cách đào tạo và thử nghiệm nó, đồng thời sử dụng một số kỹ thuật phân tích dữ liệu để hiểu các dự đoán có sẵn .