Regularisasi
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 34 dari 58.
Model linear yang overfit mengandalkan bobot besar agar dapat menyesuaikan diri dengan setiap baris yang penuh noise. Regresi Ridge mengenakan penalti untuk bobot besar, dan alpha menentukan besarnya penalti.
Berikut 20 gitar bekas, dengan enam fitur berskala yang memprediksi harga:
Ini hanya perlu satu penggantian dari LinearRegression, yang bobotnya adalah [-83. 116. 104. 27. 17. 15.]:
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=100)
ridge.fit(X_train, y_train)
print(np.round(ridge.coef_))Ini mencetak:
[-14. 18. 16. 10. 5. 8.]Alpha lebih besar, bobot lebih kecil, overfitting lebih sedikit. Jika terlalu besar, model mengalami underfitting.
Tantangan
SedangSebuah situs liburan memprediksi harga pondok per malam berdasarkan 8 fitur, hanya dengan menggunakan 16 pondok. Program membaca alpha; kode awal membagi dan menstandarkan data.
- Latih model
LinearRegressiondanRidgedenganalphatersebut. - Cetak total ukuran bobot setiap model: jumlah bobot tanpa tanda, lalu bulatkan.
- Cetak nilai R kuadrat untuk setiap model pada data uji (3 desimal) dan model yang lebih baik, seperti di bawah ini.
Untuk wilayah lain dan 5:
Total weight size: plain 90, ridge 53
Test R squared: plain -0.471, ridge 0.642
Better on new cottages: ridgeCoba sendiri
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import r2_score
alpha = float(input())
# Jangan ubah baris-baris di bawah ini: 28 pondok liburan, 8 fitur, dan harga per malam dalam euro
cottages = pd.read_csv("cottages.csv")
features = ["size_m2", "bedrooms", "lake_m", "age_years", "town_km", "sauna", "road_noise_db", "forest_m"]
X = cottages[features]
y = cottages["price"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 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 Spam7Overfitting
Underfitting dan OverfittingKurva PembelajaranRegularisasiSet ValidasiRingkasan: Menyetel Pohon2Tetangga 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