Ev Fiyatları Tahmin
Merhabalar bu yazımda sizlere internetten alacağımız verilerle fiyat tahmini oluşturulmasını göstereceğim. Yapacağımız örnekte bir internet sitesinden ev fiyatlarını ve metrekarelerini alıp bunların fiyatlarını tahmin etmeye çalışacağım.
Gerekli kütüphanelerin dahil edilmesiyle başlayalım;
İnternet sitemizden evlerin metrekareleri ve fiyatlarını alalım fakat öncesinde metrekareleri ve fiyatları tutan birer liste tanımlayalım;
İnternet sitemizden fazlasıyla veri çekeceğimiz için sayfa numarasına göre bir fonksiyon yazalım. Bu fonksiyon içine sayfa numarası girildiğinde oradaki sayfa numarasına gidip evlerin metrekarelerini ve fiyatlarını listemize atasın;
Örneğin sayfa 2'den başlayarak sayfa 6'ya kadar evlerin verilerini alalım;
Metrekareleri ve fiyatları tutan verilerimiz obje tipinde bizlere döndüğü için bunları düzenlememiz gerekir. Metrekare ve fiyatlar düzenli şekilde yeni listelerde tutabiliriz. Öncelikle metrekare verileri için;
kısa yoldan verilerimizi integer biçimine getirebiliriz.
Şuanda fiyat listemiz;
şeklinde devam etmekte bunları daha kolay olması için noktadan sonrasını ayırıp tamsayı formatında tutabiliriz;
Bu verilerde obje tipinde olduğundan metrekarede de yaptığımız gibi bir dönüşüm yapabiliriz;
Yeni fiyat listelerimizi ve metrekarelerimizi dataframe olarak görelim;
Elimizde sonuçlara yanlı etki edecek bir kaç sütunları ayıklayalım;
Bu sütunlardaki ev fiyatları bir milyon liradan fazla olduğu için fiyatlar tek haneli olarak elimizde bulunduğu için düşürdük. Normal yollarda veri silmek tabi ki yanlı durumlar ortaya çıkarabilir. Kesin bir çözüm değil fakat örnek yaptığımız için şimdilik silebiliriz.
Elimizdeki verilerin durumlarına bakarsak;
Elimizdeki fiyat etiketi sayısal olmalı bunun dönüşümünü de yapalım;
Elimizdeki verilerin genel bir durumuna bakalım;
Eksik veri kontrolü yapalım;
Aralarındaki kolerasyonu inceleyelim;
Metrekare ve fiyat arasında orta yönlü pozitif ilişki bulunmaktadır. Bu kolerasyonu görsel olarak görmekte mümkün;
Aralarındaki dağılımlarını ve kolerasyonlarını birlikte inceleyelim;
Tahmin oluşturmadan önce bağımlı ve bağımsız değişkenlerimiz ayıralım;
Artık tahmin kısmına geçebiliriz. Verilerimizin %40'ı test ve %60 train olarak ayıralım;
Lineer regresyon sınıfını kullanarak bir regresyon modeli oluşturalım ve o modeli train datası ile eğitelim;
Daha sonra eğitilmiş modeli kullanarak eğim ve y-eksenini kestiği noktaları gibi parametreleri bulalım;
Bu parametreleri kullanarak veri ile en iyi uyum sağlayan regresyon doğrusunu çizelim;
Test verisini kullanarak modelin tahmin ettiği satış değerlerini bulalım;
R kare score değerimiz 0.45 elde ettik. Optimum sonuca ulaşmak için 1'e yakın olması gerek fakat pozitif ve olabildiğince 1'e yakın elde etmeye çalıştık. Elimizde 150'ye yakın veri vardı belki çok daha fazla veri çekip çok daha fazla modelimizi eğitirsek daha güzel sonuçlar elde edilebilir. Matematiksel formülünü yazalım;
Kısa bir fonksiyon yazarak içine metrekare verdiğimizde elde edebileceğimiz tahmini satış fiyatlarına bakalım;
Vaktinizi ayırdığınız için teşekkürler.