Düzenlileştirme
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 34 / 58.
Aşırı uyumlu doğrusal bir model, her gürültülü satıra doğru eğilmek için büyük ağırlıklara dayanır. Ridge regresyonu büyük ağırlıklar için bir ceza uygular ve fiyatı alpha belirler.
Fiyatı tahmin eden altı ölçeklendirilmiş özellik ve 20 adet kullanılmış gitar:
Ağırlıkları [-83. 116. 104. 27. 17. 15.] olan LinearRegression'dan yalnızca bir değişiklik uzakta:
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=100)
ridge.fit(X_train, y_train)
print(np.round(ridge.coef_))Bu, şunu yazdırır:
[-14. 18. 16. 10. 5. 8.]Daha büyük alfa, daha küçük ağırlıklar, daha az aşırı öğrenme. Çok büyük olursa model yetersiz öğrenir.
Görev
OrtaBir tatil sitesi, yalnızca 16 kır evi kullanarak gecelik kır evi fiyatlarını 8 özellikten tahmin ediyor. Program alpha değerini okur; başlangıç kodu verileri böler ve ölçeklendirir.
- Bu
alphadeğeriyle birLinearRegressionve birRidgemodeli eğitin. - Her modelin toplam ağırlık büyüklüğünü yazdırın: ağırlıkların işaretlerini yok sayıp toplayın ve yuvarlayın.
- Aşağıdaki gibi, her modelin test R kare değerini (3 ondalık basamakla) ve daha iyi modeli yazdırın.
Başka bir bölge ve 5 için:
Total weight size: plain 90, ridge 53
Test R squared: plain -0.471, ridge 0.642
Better on new cottages: ridgeKendin dene
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())
# Aşağıdaki satırları değiştirmeyin: 28 tatil evi, 8 özellik ve euro cinsinden gecelik fiyat
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)
# Kodunuzu aşağıya yazın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Denetimli Öğrenme bölümündeki tüm dersler
1İlk Modeliniz
Örneklerden ÖğrenmeEğitim ve Test KümeleriUydurma ve Tahmin EtmeBir Modeli PuanlamaÖzet: Tohum Sınıflandırıcı4Lojistik Regresyon
Evet-Hayır TahminleriKarar EşiğiKanıt Olarak AğırlıklarBirden Fazla SınıfÖzet: Spam Filtresi7Aşırı Öğrenme
Eksik ve Aşırı ÖğrenmeÖğrenme EğrileriDüzenlileştirmeDoğrulama KümeleriÖzet: Bir Ağacı Ayarlama2En Yakın Komşular
k-NN Nasıl Karar Verirk'yi SeçmekKarar SınırlarıKomşular İçin ÖlçeklemeÖzet: Şarap Komşuları5Sınıflandırıcıları Değerlendirme
Karmaşıklık MatrisiKesinlik ve DuyarlılıkF1 SkoruDengesiz SınıflarROC EğrileriÖzet: Tarama Testi8Çapraz Doğrulama
K-Katlı DoğrulamaModelleri Adil Bir Şekilde KarşılaştırmaIzgara AramasıÖzet: Kaykay Tamiri11Proje: Penguen Türleri
Penguenlerle TanışınVerileri HazırlayınBir Model SeçinEn İyisini AyarlayınModeli Yayına AlınKendi başına pratik yap: Online Python derleyicisi