Makine Öğrenmesi Dersleri 9: Hiper-parametre Kestirimi

Hakkı Kaan Simsek
Veri Bilimi Türkiye
3 min readMay 6, 2018
kaynak

Hiper-parametre seçimi (hyper-parameter tuning) elinizle radyo frekansı ayarlamaya benziyor. Hani ses iyidir ama siz bi tık daha iyi olmasını istersiniz ya işte hiper-parametre seçimi de makine öğrenmesi modelleri için o işe yarıyor.

Örnek veri seti olarak elimizde Portekiz bankasından alınmış 11 bin kişinin yaşı, mesleği, medeni durumu, ev kredisi alıp almadığı, son görüşmeden sonra geçen zaman, görüşmenin sabit telefonla mı cep telefonuyla mı gerçekleştiği gibi öznitelikler var. Kişilerin bankaya depozito yatırıp yatırmayacağını tahmin eden bir model kurmaya çalışıyoruz. Çıkacak sonuçlara göre belirli kişilere ve gruplara kişiselleştirilmiş pazarlama yöntemleri uygulanabilir.

Bekar insanların evli insanlara kıyasla bankada vadeli para tutma oranının fazla olduğunu görüyoruz.

Yukarıdaki tabloda meslek dağılımlarına göre kişilerin bankaya vadeli para yatırıp yatırmadıklarını görüyoruz. Örneğin mavi yakalılarda durum hiç açıcı değil. Buradan hareketle farklı pazarlama kampanyaları düşünülebilir.

Son olarak depozito yatırmakla diğer değişkenler arasındaki korelasyona bakmak istiyoruz. One-hot-encoder yöntemiyle kategorik değişkenleri binary (0,1) hale getiriyoruz aksi halde model ne cinsiyeti ne medeni durumu ne de iş güç hiçbir şey anlamaz.

Gördüğünüz gibi satır sayısı 17'den 52'ye çıktı. 52*52 bir korelasyon matrisine bakmak pek mümkün değil onun için depozito yatırmakla en yüksek korelasyonu olan 10 değişkeni seçiyoruz.

Depozito yatırmakla en yüksek pozitif korelasyonu olan 5 öznitelik:

  • Son telefon konuşmasının uzunluğu (son konuşmanın süresi 0'sa kişi telefonda ikna edilmemiştir, o yüzden çok iyi bir öznitelik olmayabilir.)
  • Bir önceki pazarlama kampanyasının başarılı sonuç vermesi.
  • Ev kredisi alınmaması.
  • Konuşmanın sabit telefon yerine cep telefonu ile gerçekleşmesi.

Bu yazının konusu hiper-parametre seçimi olduğu için açıklayıcı veri analizi kısmını burada bitiriyoruz ama gördüğünüz gibi sadece veriyi analiz ederek bile iyi bilgiler elde edebiliyoruz.

Hedef değişkenimizi tutuyoruz. Sonrasında veri setimizi train ve test setlerine ayırıyoruz, buraya kadar her şey oldukça basit şimdi random forest modelimizi kuralım.

Sonuçlar kötü değil. Hiç görmediğimiz bir veri setinde %89.5 olasılıkla doğru tahminler yapıyoruz. Geçen hafta öğrendiğimiz cross-validation metodunu uygulayalım şimdi de.

Modelin 5 farklı eğitim ve test veri setindeki ortalaması %89.6 yani az önce şans eseri %89.5 gibi bir doğruluk oranı yakalamadık modelimiz gayet iyi çalışıyor.

Daha gidecek yol var mı bi bakalım…

GridSearch bizim için 500 farklı kombinasyonu deneyerek en iyi sonuçlar veren hiper-parametreleri seçti. (max_depth:12, max_features:14)

Bu hiper-parametre kombinasyonları denenerek bir model kurulduğunda en iyi doğruluk oranı %90.6, bizim ilk modeli kurduğumuz eğitim ve test veri setindeki doğruluk oranı %90.4. (ilk model: %89.5)

Yukarıdaki adımlar izlenerek diğer makine öğrenmesi modellerinde de basitçe hiper-parametre kestirimi yapılabilir.

Örneğin knn için params = {‘knn__n_neighbors’: range(1, 5)} yazarak GridSearchCV yapabilirsiniz.

Çalışmadaki veri setine ve kodlara şuradan ulaşabilirsiniz.

Sorunuz olursa bana Linkedin veya Twitter hesaplarından yazabilirsiniz.

--

--