Penyakit jantung merupakan ancaman serius bagi kehidupan manusia. Dengan menganalisis indikator tubuh berdasarkan data pemeriksaan medis, penyakit jantung dapat dicegah. Topik ini menjelaskan cara menggunakan algoritma penambangan data untuk membangun model prediksi penyakit jantung di Platform for AI (PAI) berdasarkan data pemeriksaan medis pasien.
Prasyarat
Ruang kerja telah dibuat. Untuk informasi lebih lanjut, lihat Membuat dan Mengelola Ruang Kerja.
Sumber daya MaxCompute terhubung dengan ruang kerja. Untuk informasi lebih lanjut, lihat Mengelola Ruang Kerja.
Prosedur penambangan data
Dataset
Pipeline yang dijelaskan dalam topik ini menggunakan dataset sumber terbuka dari UCI Machine Learning Repository. Untuk informasi lebih lanjut, lihat Heart Disease Data Set. Dataset tersebut mencakup data pemeriksaan medis dari 303 pasien penyakit jantung di wilayah Amerika Serikat. Tabel berikut menjelaskan bidang dalam dataset.
Bidang | Tipe | Deskripsi |
age | STRING | Usia pasien. |
sex | STRING | Jenis kelamin pasien. Nilai valid: female dan male. |
cp | STRING | Jenis nyeri dada yang dialami pasien. Nilai valid: typical, atypical, non-anginal, dan asymptomatic. |
trestbps | STRING | Tingkat tekanan darah istirahat pasien. |
chol | STRING | Tingkat kolesterol serum pasien. |
fbs | STRING | Tingkat gula darah puasa pasien. Jika tingkat gula darah puasa lebih besar dari 120 mg/dl, nilainya disetel ke true. Sebaliknya, nilainya disetel ke false. |
restecg | STRING | Hasil elektrokardiogram (ECG) istirahat pasien. Nilai valid: norm dan hyp. |
thalach | STRING | Denyut jantung maksimum pasien. |
exang | STRING | Menunjukkan apakah pasien memiliki angina yang diinduksi oleh olahraga. Nilai valid: true dan false. |
oldpeak | STRING | Depresi ST yang diinduksi oleh olahraga relatif terhadap istirahat. |
slop | STRING | Kemiringan segmen ST puncak olahraga. Nilai valid: down, flat, dan up. |
ca | STRING | Jumlah pembuluh utama yang diwarnai oleh fluoroskopi. |
thal | STRING | Jenis cacat yang dimiliki pasien. Nilai valid: norm, fix, dan rev. |
status | STRING | Keberadaan penyakit jantung pada pasien. Nilai valid: buff dan sick. |
Memprediksi penyakit jantung
Buka halaman Machine Learning Designer.
Masuk ke Konsol PAI.
Di panel navigasi sebelah kiri, klik Workspaces. Di halaman Workspaces, klik nama ruang kerja yang ingin Anda kelola.
Di panel navigasi sebelah kiri, pilih .
Bangun pipeline
Di halaman Visualized Modeling (Designer), klik tab Preset Templates.
Di bagian Heart Disease Prediction pada tab Pipeline Template, klik Create.
Di kotak dialog Create Pipeline, konfigurasikan parameter yang diperlukan. Anda dapat menggunakan nilai default.
Nilai yang ditentukan untuk parameter Pipeline Data Path adalah jalur bucket Object Storage Service (OSS) untuk data sementara dan model yang dihasilkan selama runtime pipeline.
Klik OK.
Pipeline akan dibuat dalam waktu sekitar 10 detik.
Di tab Daftar Pipeline, temukan pipeline bernama Heart Disease Prediction dan klik Open.
Lihat komponen pipeline di kanvas seperti yang ditunjukkan pada gambar berikut. Sistem secara otomatis membuat pipeline berdasarkan template preset.

Area
Deskripsi
①
Komponen yang ditampilkan di bagian ini melakukan pra-pemrosesan data. Misalnya, komponen denoise data, mengisi nilai yang hilang, dan mengonversi nilai menjadi angka. Dalam setiap sampel, pasien sehat atau sakit. Oleh karena itu, prediksi penyakit jantung dalam pipeline ini adalah masalah klasifikasi. Dataset yang digunakan dalam pipeline ini berisi 14 bidang fitur dan satu bidang tujuan. Selama pra-pemrosesan data, nilai setiap bidang harus dikonversi ke angka berdasarkan makna bidang. Parameter:
Bidang dua-nilai: Komponen mengonversi satu nilai menjadi 0 dan nilai lainnya menjadi 1. Misalnya, nilai bidang sex adalah female atau male. Setelah konversi, 0 menentukan female dan 1 menentukan male.
Bidang multi-nilai: Komponen mengonversi nilai menjadi 0, 1, 2, atau 3. Misalnya, bidang cp memiliki empat nilai yang menentukan jenis nyeri dada dari ringan hingga berat. Setelah konversi, nilai 0 hingga 3 digunakan untuk menentukan tingkat nyeri dada dari ringan hingga berat.
Contoh skrip SQL:
select age, (case sex when 'male' then 1 else 0 end) as sex, (case cp when 'angina' then 0 when 'notang' then 1 else 2 end) as cp, trestbps, chol, (case fbs when 'true' then 1 else 0 end) as fbs, (case restecg when 'norm' then 0 when 'abn' then 1 else 2 end) as restecg, thalach, (case exang when 'true' then 1 else 0 end) as exang, oldpeak, (case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop, ca, (case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal, (case status when 'sick' then 1 else 0 end) as ifHealth from ${t1};②
Komponen yang ditampilkan di bagian ini melakukan rekayasa fitur, termasuk derivasi fitur dan perubahan skala. Komponen Type Transform mengonversi data fitur input menjadi tipe DOUBLE karena model regresi logistik hanya menerima data input tipe DOUBLE. Kemudian, komponen Feature Select Runner mengukur dampak setiap fitur pada hasil prediksi menggunakan entropi dan indeks Gini. Komponen Normalize mengonversi nilai setiap fitur menjadi nilai yang berkisar dari 0 hingga 1. Ini menghilangkan dampak dimensi pada hasil prediksi. Rumus normalisasi adalah
result=(val-min)/(max-min).③
Komponen yang ditampilkan di bagian ini melatih model dan melakukan prediksi.
Komponen Split membagi dataset menjadi dataset pelatihan dan dataset prediksi dengan rasio 7:3.
Komponen Logistic Regression melatih model.
CatatanJika Anda ingin mengekspor file model PMML, pilih kotak centang Whether To Generate PMML di tab Field Setting. Klik area kosong di kanvas dan tentukan Penyimpanan Data di tab Pipeline Attributes.
Dataset pelatihan dan prediksi diimpor ke komponen Prediction. Komponen Prediction menghasilkan hasil prediksi.
④
Komponen Confusion Matrix dan Evaluate mengevaluasi model.
Jalankan pipeline dan tinjau hasilnya.
Di sudut kiri atas kanvas, klik ikon
.Setelah pipeline dijalankan, klik kanan komponen Logistic Regression di kanvas dan pilih untuk mengekspor model prediksi penyakit jantung yang telah dilatih.
Klik kanan Prediction di kanvas dan pilih untuk melihat hasil prediksi. Tinjau laporan evaluasi model.
Tinjau hasilnya.
Klik kanan Evaluate di kanvas dan klik Visual Analysis.
Di kotak dialog Evaluate, klik tab Index data untuk melihat indeks yang digunakan dalam mengevaluasi model.
Dalam laporan evaluasi, nilai AUC menunjukkan bahwa akurasi prediksi model melebihi 90%.Klik kanan Confusion Matrix di kanvas dan klik Visual Analysis.
Di kotak dialog Confusion Matrix, klik tab Statistics untuk melihat statistik model, seperti akurasi model.
Apa yang harus dilakukan selanjutnya
Jika pipeline berjalan sesuai harapan, Anda dapat menerapkan model untuk pemanggilan layanan. Untuk informasi lebih lanjut tentang penerapan, lihat Menerapkan Model sebagai Layanan Online dan PMML Processor.