Kaggle'da Ev Fiyatı Tahmini: Bir Regresyon Vaka Analizi
Dokuz iterasyon, beş doğrulanmış özellik ve zor bir ders: çapraz doğrulama iyileşmesi her zaman daha iyi bir liderlik tablosu skoru anlamına gelmez.

Kaggle Housing Prices yarışması, tablo (tabular) makine öğrenmesine klasik bir giriş noktasıdır: Ames, Iowa'daki konutların satış fiyatlarını 79 özellikten tahmin etmek. Bir öğrenme egzersizi olacak kadar basit, ama rastgele denemeler yerine dikkatli ve sistematik çalışmayı ödüllendirecek kadar da yapılı. Nihai sonuç: public leaderboard'da MAE 13.384,82, 4.152 katılımcı arasında 209. sıra — ilk %5.
Modelden önce veriyle başla Herhangi bir modele dokunmadan önce, keşifsel veri analizi (EDA) sonraki her şeyi şekillendiren üç şeyi ortaya çıkardı. Birincisi, SalePrice sağa çarpık dağılıyor — pahalı evlerin oluşturduğu uzun kuyruk ortalamayı medyanın üzerine çekiyor.

İkincisi, OverallQual ve GrLivArea, sırasıyla 0.79 ve 0.71 korelasyonla açık ara en güçlü tekil belirleyiciler. Üçüncüsü, bazı özellik çiftleri yüksek oranda ilişkili (GarageCars ve GarageArea 0.88 korelasyona sahip), bu da onları tek bir mühendislik özelliğinde birleştirmenin, modele neredeyse birbirinin aynısı iki kolon vermekten daha akıllıca olacağının güçlü bir işareti.

GrLivArea'nın SalePrice'a karşı çizilen saçılım grafiği de, şaşırtıcı derecede düşük fiyata satılan birkaç çok büyük evi ortaya çıkardı — bunlar modeli karıştırmaya bırakılmak yerine aykırı değer olarak ele alınıp eğitimden çıkarıldı.

Eksik değerler gürültü değil, bilgidir İnce ama önemli bir ön işleme kararı: bu veri setinde birçok "eksik" değer aslında eksik değil. Bir evde havuz yoksa, havuz kalitesi kolonu NaN olur — değer kaydedilmediği için değil, değerlendirilecek bir havuz olmadığı için. Bunu medyan veya genel bir doldurma stratejisiyle doldurmak gerçek bilgiyi yok ederdi. Bu kolonlar yerine "None" kategorik değeriyle dolduruldu; doğal bir Zayıf'tan Mükemmel'e sıraya sahip kalite derecelendirme kolonları ise one-hot yerine ordinal olarak kodlandı, böylece model "İyi" ve "Mükemmel"i birbiriyle ilgisiz kategoriler olarak değil, kalite gradyanını doğrudan öğrenebildi.
Her özelliği tek tek doğrula Sekiz mühendislik özelliği adaydı: toplam metrekare, ağırlıklı banyo sayısı, en güçlü iki belirleyici arasında bir etkileşim terimi, garaj yaşı gibi. Sekizini birden eklemek yerine, her biri 5-katlı çapraz doğrulama kullanılarak özelliksiz bir başlangıç noktasına karşı tek tek test edildi. Sadece beşi gerçekten fark yarattı. Diğer üçü — ev yaşı, tadilattan bu geçen yıl sayısı ve birkaç ikili "X var mı" bayrağı — kağıt üzerinde makul görünse de ölçülebilir hiçbir katkı sağlamadı ve elendi. Bu tek tek doğrulama adımının gerçekten önemli olduğu ortaya çıktı: daha sonraki bir deneyde sekiz özelliğin hepsi birden eklendiğinde, daha iyi bir çapraz doğrulama sayısına rağmen liderlik tablosunda daha kötü bir skor alındı.
XGBoost kazandı, topluluk (ensemble) yöntemi işe yaramadı XGBoost; Random Forest, LightGBM ve CatBoost ile aynı çapraz doğrulama kurulumu altında karşılaştırıldı ve tutarlı biçimde kazandı. Bu noktada içgüdü genellikle topluluk oluşturmaya yönelir — XGBoost'u CatBoost ile ortalamak ya da Random Forest'ı harmanlamak gibi — ama test edilen her topluluk konfigürasyonu, tek başına XGBoost'tan daha kötü çıktı. Diğer modellerin hataları, XGBoost'unkinden yeterince farklı (çeşitli) değildi; benzer hatalar yapıyorlardı, bu yüzden onları ortalamak sadece en iyi modelin tahminlerini sulandırdı.
İki tur rastgele hiperparametre araması (önce 30, sonra 50 aday, ikisi de 5-katlı CV) n_estimators, learning_rate, max_depth, subsample ve colsample_bytree'yi ayarladı ve oldukça temkinli bir nihai modele ulaşıldı: 1.500 ağaç, düşük bir 0.02 öğrenme oranı ve sığ bir max_depth değeri olan 3.
En önemli ders Çapraz doğrulama bir vekil göstergedir (proxy), kesin gerçek değil. Hedefi logaritmik dönüşüme tabi tutmak makul bir fikir gibi görünüyordu ve ihmal edilebilir bir CV iyileşmesi gösterdi, ama gerçek liderlik tablosunda daha kötü bir skor aldı. Sekiz mühendislik özelliğinin hepsi tek tek doğrulanmadan eklendiğinde de aynı şey oldu. İkisi de, CV skoru ile liderlik tablosu skorunun aynı şeyin iki farklı tahmini olduğunun ve hiçbirinin yanılmaz olmadığının yararlı bir hatırlatıcısı — emin olmanın tek yolu, değişikliği test edip gerçek sonucu kontrol etmek, sadece iyi görünen metriğe güvenmek değil.
