Perkembangan Diabetes
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 55 dari 58.
Sebuah klinik diabetes menjadwalkan kunjungan tindak lanjut berdasarkan seberapa jauh penyakit setiap pasien akan berkembang dalam satu tahun. Di bagian 2, satu fitur hanya menjelaskan sebagian:
Sekarang, kesepuluh pengukuran dari load_diabetes dimasukkan. Model mana yang sebaiknya dipercaya klinik, dan berapa selisih poinnya?
Tujuannya adalah memilih secara adil melalui validasi silang, mengukur error secara jujur pada pasien yang belum pernah dilihat, dan memeriksa residual untuk mengetahui apa pun yang luput dari model.
Tantangan
SulitProgram membaca nilai alpha Ridge ke dalam alphas; kode awal menyiapkan grafik dengan judul.
- Pisahkan seperempat data sebagai data uji dengan
random_state=0. - Nilai
LinearRegressiondanRidgeuntuk setiap nilai alpha menggunakan CV 5-fold pada baris data pelatihan. Cetak rata-rata R squared masing-masing (3 desimal), lalu model pemenangnya. - Latih model pemenang dan cetak MAE dan RMSE pada data uji (1 desimal) serta R squared (3 desimal).
- Buat scatter plot residual data uji, nilai sebenarnya dikurangi nilai prediksi, terhadap nilai prediksi. Tambahkan garis nol, lalu tampilkan grafiknya.
Untuk klinik lain dan nilai alpha 0.5 serta 2.0:
Linear: CV R squared 0.472
Ridge 0.5: CV R squared 0.481
Ridge 2.0: CV R squared 0.402
Winner: Ridge 0.5
Test errors: MAE 47.3, RMSE 58.9, R squared 0.414Kemudian Coddy menjelaskan grafik residualmu.
Coba sendiri
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
diabetes = load_diabetes(as_frame=True)
X = diabetes.data
y = diabetes.target
# Nilai alpha Ridge yang akan dicoba
n = int(input())
alphas = []
for i in range(n):
alphas.append(float(input()))
fig, ax = plt.subplots()
ax.set_title("Residuals on Test Patients")
ax.set_xlabel("Predicted progression")
ax.set_ylabel("Residual (true - predicted)")
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Terawasi
1Model Pertamamu
Belajar dari ContohData Latih dan Data UjiMelatih dan MemprediksiMenilai ModelRangkuman: Penyortir Benih4Regresi Logistik
Prediksi Ya atau TidakAmbang KeputusanBobot sebagai BuktiBeberapa KelasRangkuman: Filter Spam2Tetangga Terdekat
Cara k-NN MenentukanMemilih kBatas KeputusanPenskalaan untuk TetanggaRingkasan: Tetangga Wine5Mengukur Model Klasifikasi
Matriks KonfusiPresisi dan RecallSkor F1Kelas Tidak SeimbangKurva ROCRangkuman: Tes SkriningLatihan sendiri: Compiler Python online