Mengukur Error
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 13 dari 58.
Seberapa jauh selisih prediksi model, dalam dolar? Berikut hasil model harga rumah pada lima rumah uji yang belum pernah dilihatnya:
sklearn.metrics mengukur kesalahan untukmu:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
y_test = np.array([290, 410, 235, 520, 330]) # ribuan dolar
pred = np.array([270, 450, 245, 430, 360])
print(mean_absolute_error(y_test, pred))
print(np.round(np.sqrt(mean_squared_error(y_test, pred)), 1))
print(np.round(r2_score(y_test, pred), 3))Ini mencetak:
38.0
47.1
0.776MAE, mean absolute error, menunjukkan kesalahan yang umum terjadi: 38 ribu. RMSE menguadratkan kesalahan, menghitung rata-ratanya, lalu mengambil akar kuadratnya: satu kesalahan besar menaikkan nilainya menjadi 47.
Keduanya menggunakan satuan target. r2_score adalah R kuadratmu: 78% variasi harga dijelaskan.
Tantangan
SedangSebuah toko menentukan harga kamera bekas dengan sebuah model. Apakah fitur kedua membantu? Program membaca shutter_k (ribuan foto yang diambil) atau megapixels. Kode awal melatih dua model, satu hanya dengan age_years dan satu lagi dengan fitur tambahan, lalu menyimpan prediksi pengujiannya di preds.
- Untuk setiap model, cetak MAE, RMSE (1 desimal), dan R kuadrat (3 desimal).
- Cetak model dengan MAE yang lebih kecil.
Untuk toko lain dan shutter_k:
age_years: MAE 212.4, RMSE 268.1, R squared 0.853
age_years + shutter_k: MAE 98.7, RMSE 121.0, R squared 0.97
Better: age_years + shutter_k, off by 98.7 dollars on a typical cameraCoba sendiri
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Satu baris untuk setiap kamera yang terjual: usia, jumlah jepretan rana dalam ribuan, megapiksel, harga dalam dolar
cameras = pd.read_csv("cameras.csv")
extra = input()
names = ["age_years", "age_years + " + extra]
columns = [["age_years"], ["age_years", extra]]
# Bagi berdasarkan baris utuh; setiap model di bawah memilih kolomnya sendiri
X_train, X_test, y_train, y_test = train_test_split(cameras, cameras["price"], test_size=0.25, random_state=0)
# Satu model untuk setiap list kolom, beserta prediksinya untuk kamera uji
preds = []
for cols in columns:
model = LinearRegression()
model.fit(X_train[cols], y_train)
preds.append(model.predict(X_test[cols]))
# Tulis kodemu di bawah
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