Menu
CoddyTech

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:

Alpha 0.01'den 1000'e değişirken, her gitar özelliği için bir ağırlık olmak üzere altı çizgi. Durum 116'dan, marka 104'ten, yaş eksi 83'ten başlıyor; alpha arttıkça hepsi 0'a yaklaşıyor

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.

challenge icon

Görev

Orta

Bir 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.

  1. Bu alpha değeriyle bir LinearRegression ve bir Ridge modeli eğitin.
  2. 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.
  3. 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: ridge

Kendin 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
quiz iconKendini test et

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

Kendi başına pratik yap: Online Python derleyicisi