Menu
CoddyTech

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:

Perkembangan penyakit dibandingkan dengan bmi yang diskalakan untuk pasien klinik's, sebaran titik yang lebar dengan satu garis oranye yang menanjak di tengahnya, berlabel bmi saja: R kuadrat 0.34

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.

challenge icon

Tantangan

Sulit

Program membaca nilai alpha Ridge ke dalam alphas; kode awal menyiapkan grafik dengan judul.

  1. Pisahkan seperempat data sebagai data uji dengan random_state=0.
  2. Nilai LinearRegression dan Ridge untuk setiap nilai alpha menggunakan CV 5-fold pada baris data pelatihan. Cetak rata-rata R squared masing-masing (3 desimal), lalu model pemenangnya.
  3. Latih model pemenang dan cetak MAE dan RMSE pada data uji (1 desimal) serta R squared (3 desimal).
  4. 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.414

Kemudian 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
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online