Çoklu Doğrusal Regresyon
Merhabalar bu yazımda sizlere araba fiyat tahminini göstermeye çalışacağım. Anlamlı olması açısından bir internet sitesinden aynı araba modelinin fiyatlarını, yıllarını ve kilometre değerlerini alarak bir fiyat tahmini oluşturmaya çalıştım. İyi okumalar dilerim.
Basit doğrusal regresyonda bağımsız olduğumuz değişken sayısı birdi yani tek bir parametre vardı ve 2 boyutlu uzaydaydık.
Oluşturacağımız fiyat tahmini modelinde değişkenlerimiz arabanın fiyatı, yılı ve kilometresi olacak. Artık bağımsız değişken sayımız 2 olacak. Örneğin x ekseni arabanın kilometresini, y ekseni arabanın yılını gösterirken z ekseni bizlere fiyatını gösterecektir.
Tabi ki değişkenler ilerledikçe, örneğin 4 veya 5. uzayı görselleştirmemiz mümkün olmayacaktır. Fakat görselleştiremediğimiz bir şeyi hesaplayamadığımız anlamına gelmiyor. Hesaplamak mümkün tabi ki.
Konuyu fazla dağıtmadan örneğimize geçelim. Gerekli kütüphaneleri dahil ederek başlayalım;
İnternetten aldığım verileri Excel’de tutmuştum. Verilerimiz okuyarak tablomuzu görelim;
Verilerimizin satır ve sütün sayısına bakalım;
Verilerimizde fiyat değişkeni sayısal değil ve göründüğü üzere fiyatının yanında “TL” yazmaktadır. Sayısal olan verimizden string ifadeleri kaldıralım;
Veri setimizin genel durumuna bakalım;
Son kez verilerimizin türlerini kontrol ederek sonrasında tahmin işlemlerimize başlayalım;
Bağımlı ve bağımsız değişkenlerimizi ayıralım. Yıl ve kilometre bağımsız değişkenler iken fiyat bağımlı değişkendir;
Verilerimizi test ve train verileri olarak ayırmadan önce aralarındaki doğrusallığı inceleyelim. Öncelikle fiyat yıl arasındaki kolerasyona bakalım;
Göründüğü üzere yıllar güncel oldukça yani model yeni oldukça araba fiyatları artmış. Fiyat yıl arasında pozitif kolerasyon vardır yorumunu yapabiliriz.
Fiyat kilometre arasındaki kolerasyona bakalım;
Göründüğü üzere arabanın kilometresi arttıkça fiyat azalmış. Fiyat kilometre arasında negatif kolerasyon vardır.
Aralarındaki kolerasyonu sayısal olarak görmekte mümkün;
Artık verilerimizi train ve test datası olarak ayırabiliriz;
%33' ü test veri seti olacak şekilde verilerimiz ayıralım ve toplamda elimizdekilerin ne kadarı veri seti ne kadarı eğitim seti olarak ayrılmış bakalım;
Scikit-Learn kütüphanesi ile lineer bir model oluşturup modelimizi fit edelim;
Modelimizin sabit değerine, ve bağımsız değişkenlerimizin katsayılarına ulaşalım;
Yukarıda daha önceden yaptığımızda hatırlasınız ki arabanın fiyatı ile arabanın yılı arasında pozitif kolerasyon olduğunu söylemiştik buna uygun olarak 1.bağımsız değişken olan yıl değişkenini pozitif değer elde ettik. Aynı şekilde arabanın fiyatı ile arabanın kilometresi arasında negatif kolerasyon elde etmiştik ve bizde burada km değişkenini negatif kolerasyon olduğundan negatif bir değer elde ettik.
Modelimizin başarı kriteri için R-kare değerine bakalım;
1' e oldukça yakın ve pozitif değer elde ettik. Düzeltmiş R kare değerine bakmak istersek direkt olarak bakamıyoruz kendimiz formülü uygulamamız gerekir. Düzeltilmiş R-kare formülü;
ifade edilir. Formülümüz koda dökerek bakacak olursak;
elde edilir.
Örneğin bir 1995 model ve 200.000 kilometrede olan bir aracın tahmini satış fiyatına bakalım. Bu veriler frame ve transpozu alınmış halde olmalı;
Bu değerleri sahip bir arabanın tahmini satış fiyatını bulalım;
Birden fazla frame oluşturup tahmini satış fiyatlarını yine bir frame olarak tutalım;
Modelimizin matematiksel formüle dönüştürecek olursak;
şeklinde oluşturabiliriz. Yazdığımız formüle uygun olarak örneğin 2020 model ve 1000 kilometrede olan bir fiyatın tahmini satış fiyatını formülde yerine koyarak elde edelim;
Modelimizin F-istatistik değerlerine bakıp anlamlı olup olmadığını da elde edebiliriz;
p-value değerimiz 0.05'ten küçük olduğundan F-istatistiğimize göre anlamlıdır.
Son olarak istediğimiz şekilde denemek için küçük bir fonksiyon yazıp test edelim;
Değerli vaktinizi ayırdığınız için teşekkürler.