Wed. Aug 17th, 2022

Merebaknya pandemi Covid-19 pada tahun 2020 menyebabkan masalah peralatan, kekurangan bahan, dan kekurangan tempat tidur yang luar biasa dalam sistem perawatan kesehatan di seluruh AS [1]. Rumah sakit tidak hanya perlu merawat pasien rutin, tetapi juga perlu merawat pasien Covid-19 yang meningkat secara tiba-tiba. Perencanaan dan pengelolaan sistem rumah sakit yang baik menjadi sangat penting.

Swab Test Jakarta yang nyaman

Artikel ini menyajikan bagaimana metode baru untuk menggunakan pembelajaran mesin untuk memprediksi berapa lama (dalam hari) seorang pasien Covid-19 harus tinggal di rumah sakit pada saat masuk. Hal ini dapat membantu profesional rumah sakit untuk membuat perencanaan yang optimal untuk perawatan pasien dan alokasi sumber daya (misalnya, kamar, tempat tidur, dll.). Hal ini juga dapat mengurangi jumlah pengunjung rumah sakit sehingga mengurangi kemungkinan infeksi staf dan pengunjung.

Sisa dari artikel ini diatur sebagai berikut:

pemahaman data
Persiapan data
Pemodelan
Evaluasi model
Pertimbangan penyebaran

1. Pemahaman Data

Dataset diperoleh dari situs web Kaggle [1]. Ada tiga file yang digunakan dalam artikel ini:

train_data.csv: berisi fitur-fitur yang berhubungan dengan pasien, rumah sakit dan Lama rawat inap (label)
test_data.csv: berisi fitur-fitur yang berhubungan dengan pasien, rumah sakit. Perlu memprediksi “lama” masa inap untuk setiap kasus id
train_data_dictionary.csv: berisi informasi fitur-fitur dalam file kereta dan pengujian.

Seperti yang ditunjukkan pada Gambar 1, ada total 17 fitur dan 1 kolom label (Stay) dalam dataset ini.
Gambar 1: Tampilan yang ditransposisikan dari set data kereta.

Gambar 2 menunjukkan distribusi fitur numerik berikut:

kasus_id
Rumah Sakit_code
Kota_Kode_Rumah Sakit
Tersedia Kamar Tambahan di Rumah Sakit
Kelas tempat tidur
sabar
Kota_Kode_Pasien
Pengunjung dengan Pasien
Penerimaan_Deposit

Dapat dilihat bahwa nilai fitur case_id terdistribusi secara merata pada bin karena merupakan nomor urut yang unik. Fitur ini dapat dijatuhkan karena kurangnya daya prediksi.
Gambar 2: Distribusi fitur numerik.

Gambar 3 menunjukkan distribusi kunjungan pasien. Kita dapat melihat bahwa banyak pasien mengunjungi rumah sakit berkali-kali (dari 10 hingga 50). Jadi ID pasien penting dalam prediksi.
Gambar 3: Distribusi kunjungan pasien.

Gambar 4 menunjukkan distribusi fitur kategoris dan kolom label:

Kode jenis rumah sakit
Kode wilayah rumah sakit
Departemen
Tipe Bangsal
Kode Fasilitas Lingkungan
Jenis Penerimaan
Keparahan Penyakit
Usia
Tinggal (Label)

Kita dapat melihat bahwa distribusi label secara signifikan miring ke kanan. Dengan kata lain, data tidak seimbang. Ada sangat sedikit sampel data dalam kategori dari ’41-50′ hingga ’61-70′. Ini akan memiliki dampak negatif yang signifikan pada kekuatan prediksi.
Gambar 4: Distribusi fitur kategoris.
2. Persiapan Data

Dengan pemahaman data, Langkah selanjutnya adalah mengeksplorasi, membersihkan, dan mengubah kumpulan data mentah yang dikumpulkan ke dalam format yang sesuai sehingga data yang diubah dapat dikonsumsi secara efektif oleh model pembelajaran mesin target.
2.1. Menangani data yang hilang

Seperti terlihat pada Gambar 5, terdapat 113 data yang hilang pada kolom fitur Bed Grade dan 4.532 data yang hilang pada kolom fitur City_Code_Patient. Jumlah total data yang hilang relatif kecil (total 4.645) dibandingkan dengan ukuran dataset 318.438 baris. Dalam hal ini kita dapat menghapus baris dengan data yang hilang atau mengganti data yang hilang dengan 0. Saya memilih untuk mengganti data yang hilang dengan 0 agar dapat memprediksi hasil untuk dataset test_data dengan nilai fitur yang hilang dalam penerapan. Lihat kelas DataCleaning di data_preprocessing.py untuk detailnya [6].

train_data.isnull().sum()

Gambar 5: Jumlah data yang hilang.
2.2 Menjatuhkan fitur (kolom) tanpa kekuatan prediksi

Seperti yang dijelaskan sebelumnya, fitur case_id tidak memiliki kekuatan prediksi, jadi fitur ini dihapus dalam proyek ini (lihat kelas Pembersihan Data di data_preprocessing.py[6]).
2.3 Pengkodean Kategoris

2.3.1. Pengkodean label kategoris

Kolom label Tetap dalam kumpulan data ini bersifat kategoris. Itu harus diubah menjadi angka untuk pengkodean target fitur kategorikal [7] dan model pembelajaran mendalam. Algoritma LabelEncoder [8] digunakan untuk transformasi (lihat kelas TargetEncoding dan OneHotEncoding di data_preprocessing.py[6]).

2.3.2 Pengkodean target fitur kategoris

Keuntungan dari target encoding [7] adalah tidak meningkatkan dimensi dataset. Ini telah digunakan dalam proyek ini untuk mengubah fitur kategorikal menjadi angka untuk model pembelajaran mesin ensembel XGBoost [2] dan Random Forest [3] karena model ini tidak bekerja dengan baik dengan pengkodean satu-panas karena dimensi tinggi. Lihat kelas TargetEncoding di data_preprocessing.py[6].

2.3.3. Fitur kategoris enkode satu-panas

Sebagai perbandingan, metode pengkodean one-hot yang populer digunakan untuk mentransformasikan fitur kategorikal juga untuk model pembelajaran mendalam (lihat kelas OneHotEncoding di data_preprocessing.py[6]).

Ayo Tes PCR