Menggabungkan semuanya
Anda memiliki dua kekhawatiran tentang pipeline Anda di startup deteksi aritmia:
- Aplikasi dilatih pada pasien dari segala usia, tetapi terutama digunakan oleh pengguna kebugaran yang cenderung muda. Anda menduga ini mungkin kasus pergeseran domain (domain shift), sehingga Anda ingin mengabaikan semua contoh di atas 50 tahun.
- Anda masih khawatir tentang overfitting, jadi Anda ingin melihat apakah membuat pengklasifikasi random forest kurang kompleks dan melakukan pemilihan fitur dapat membantu.
Anda akan membuat pipeline dengan langkah pemilihan fitur SelectKBest() dan RandomForestClassifier, yang keduanya sudah diimpor. Anda juga memiliki akses ke GridSearchCV(), Pipeline, numpy sebagai np, dan pickle. Data tersedia sebagai arrh.
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Buat pipeline dengan
SelectKBest()sebagai langkahftdanRandomForestClassifier()sebagai langkahclf. - Buat parameter grid untuk menyetel
kpadaSelectKBest()danmax_depthpadaRandomForestClassifier(). - Gunakan
GridSearchCV()untuk mengoptimalkan pipeline Anda terhadap grid tersebut dan data yang hanya berisi mereka yang berusia di bawah 50 tahun. - Simpan pipeline yang teroptimasi ke dalam pickle untuk produksi.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create a pipeline
pipe = Pipeline([
('ft', ____), ('clf', ____(random_state=2))])
# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}
# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])
# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
pickle.dump(____, file)