DeepMineAI ekibi olarak, makine öğrenmesi modellerinin kurulmasından yayınlanması aşamasına kadar tüm süreçleri anlatan bir eğitim serisi hazırladık. Buradaki uygulamaları sizde yaparak kendi makine öğrenmesi uygulamanızı yapabilirsiniz.
Proje; veri kazıma, makine öğrenmesi modelleri oluşturma, hiperparametre optimizasyonu ve Streamlit ile web uygulamasına dönüştürme süreçlerini kapsayan kapsamlı bir rehber sunmaktadır. Siz de bu adımları takip ederek benzer projeler geliştirebilirsiniz.
Neden Bu Proje Önemli?
Türkiye’de makine öğrenmesi modellerinin kurulması ile deploy süreçlerini birleştiren ilk Türkçe eğitim kaynağı oldu. Bu video serisi ile verileri anlamlı bilgiler dönüştürmeyi öğreneceksiniz.
Konut Fiyatları Tahmin Projesi İçeriği: Uçtan Uca Makine Öğrenmesi
Bu projede, makine öğrenme süreçlerinin tüm aşamalarını ele aldık. Bu yazıyı okuyarak ve videoları izleyerek siz de kendi makine öğrenmesi modelinizi oluşturabilirsiniz.
Çalışmanın verisetini ve kodlarını GitHub’dan indirmek için tıklayınız…
1. Veri Kazıma (Web Scraping)
Makine öğrenmesi projelerinde veriler temel unsurdur. Modelin başarısı için doğru veriyi elde etmek kritik önem taşır. Bu projede, web kazıma (web scraping) yöntemiyle veri topladık. Siz de hazır veri setleri kullanabilir veya ihtiyaç duyduğunuz verileri internetten kazıyabilirsiniz.
Bu çalışmada, Selenium ve BeautifulSoup gibi Python araçları kullanarak 28.622 konut ilanı verisini kazıdık. Verilerin kazınma sürecini aşağıdaki videodan izleyebilirsiniz. Aynı adımları takip ederek siz de benzer verileri kazıyabilirsiniz. Ayrıca bu konu hakkındaki detaylı yazımızı okumak isterseniz tıklayınız.
2. Veri Temizleme (Data Cleaning)
Veri temizleme, makine öğrenmesi sürecinin en kritik adımlarından biridir çünkü ham veriler genellikle eksik, hatalı veya tutarsız bilgiler içerebilir. Bu adımda, verilerdeki eksik değerler, aykırı noktalar ve tutarsızlıklar giderilir. Eksik veriler, ortalama, medyan gibi istatistiksel yöntemlerle ya da daha gelişmiş imputation teknikleriyle doldurulabilir. Ayrıca, hatalı veri girişleri de düzeltilmeli veya kaldırılmalıdır. Bu süreç, modelin doğruluğunu ve güvenilirliğini artırarak daha sağlıklı sonuçlar elde edilmesini sağlar.
Veri setindeki sayısal olmayan ifadeleri sizde excel ile temizleyebilirsiniz. Bul ve Değiştir penceresinden ve Metni Sütuna Dönüştür penceresinden sizlerde kolaylıkla yapabilirsiniz.

Veri temizleme işleminin nasıl yapılacağı konusunda detayların ele alındığı yazıyı okumak isterseniz tıklayınız.
Veri setini kolaylıkla nasıl temizlendiğini aşağıdaki videodan öğrenebilirsiniz.
3. Veri Kodlama (Data Encoding)
Makine öğrenmesi algoritmaları sayısal verilerle çalışır. Ancak, verimiz genellikle kategorik (yazılı) verilere sahiptir. Bu veriyi, modelin anlayabileceği sayısal verilere dönüştürmek için veri kodlama işlemi gerçekleştirdik.
Projede encoding aşamasına geçmden önce eksik verileri tamamladık. İlk olarak, ‘Yaş’ sütunundaki eksik değerleri, o sütunun medyan değeri ile doldurduk. ‘Bulunduğu Kat’ sütunundaki eksik değerleri, bu sütundaki en sık görülen değeri (mod) kullanarak tamamladık. Son olarak, ‘Oda Sayısı’ sütunundaki eksik değerleri de yine en sık görülen değer olan mod ile doldurduk. Bu işlemler, veri setindeki eksik değerlerin yerine uygun tahminler koyarak, modelin daha sağlam ve güvenilir sonuçlar üretmesini sağladı.
Çalışma internet ortamına deploy edileceği için Label Encoding ile devam ettik. Encoding yöntemlerini ve hangi yöntemin daha etkili olduğunu öğrenmek isterseniz yazımızı okuyabilirsiniz.
4. Keşifsel Veri Analizi (EDA)
Veriyi iyi anlamadan güçlü modeller geliştirmek zordur. Bu yüzden, veriyi daha iyi analiz edebilmek için keşifsel veri analizi (EDA) yaptık. Verinin görselleştirilmesi, korelasyon analizleri ve temel istatistikler sayesinde, veriyi derinlemesine inceledik ve modelin gelişimi için gerekli içgörüleri elde ettik.
5. Aykırı Değerleri Temizleme
Aykırı değerler, modelin doğruluğunu ciddi şekilde etkileyebilir. Bu nedenle, veri setindeki anormal ve uç noktaları tespit ederek temizledik. Bu sayede modelin doğruluğunu artıracak sağlam bir veri seti elde ettik.
Aykırı değerleri temizlemek için kullandığımız tüm yöntemlerin detaylarını okumak isterseniz tıklayınız.
6. Makine Öğrenmesi Modelleri
Bu aşamada, farklı makine öğrenmesi algoritmalarını kullanarak konut fiyatlarını tahmin ettik. Model seçiminde, en uygun algoritmayı bulabilmek için regresyon modelleri, ağaç tabanlı modeller, yapay sinir ağları ve destek vektör makineleri modellerini denedik. Bu modellerden ağaç tabanlı olanlar başarılı sonuç verdi. Özellikler Random Forest güçlü yönüyle öne çıktı. Modelleri nasıl denediğimizi ve nasıl sonuçlar elde ettiğimizi aşağıdaki videodan takip edebilirsiniz.
7. Hiperparametre Optimizasyonu
Hiperparametre optimizasyonu, makine öğrenmesi ve derin öğrenme modellerinin performansını artırmak için kullanılır. Bu işlemle, modelin ayarlanabilir parametrelerinin en uygun değerlerini belirlemeye yardımcı olur. Bu süreçte öğrenme oranı, katman sayısı, nöron sayısı, aktivasyon fonksiyonları ve dropout oranı gibi hiperparametreler optimize edilir. Doğru hiperparametreleri belirlemek, modelin aşırı öğrenmesini (overfitting) veya yetersiz öğrenmesini (underfitting) önleyerek daha genel geçer tahminler yapmasını sağlar. Hiperparametre optimizasyonu yapılmadan rastgele seçilen parametrelerle eğitilen bir model, genellikle düşük doğrulukta sonuçlar verebilir veya eğitim süresi gereksiz yere uzayabilir.
Yaptığımız parametre optimizasyonu ile sonuçlarda % 0.5 gibi bir iyileşme kaydettik. Çalışmanın devamında bu parametrelerle devam ettik.
8. Öznitelik Mühendisliği ve Hibrid Modeller
Öznitelik artırma (feature engineering), makine öğrenmesi modellerinin doğruluğunu artırmak amacıyla mevcut verilerden yeni ve daha anlamlı özellikler türetme sürecidir. Bu teknik, özellikle veri setinin sınırlı olduğu durumlarda modelin öğrenme kapasitesini güçlendirerek daha iyi genelleştirme yapmasını sağlar. Öznitelik artırma, ham verilerden türetilmiş yeni değişkenler ekleyerek modelin daha fazla bilgiye erişmesini sağlar.
Çalışmada, Metre Kare per Oda değişkeni, bir evin oda başına düşen metrekare büyüklüğünü gösterdik. Bu şekilde, daha küçük ama oda sayısı fazla olan evlerin fiyatlandırılmasını yansıtmasını amaçladık. Benzer şekilde, Kat Oranı, bulunduğu katın en yüksek kata oranlanmasıyla oluşturduk. Böylece, yüksek katların fiyat üzerindeki etkisini standartlaştırdırk. Log Metre Kare değişkeni, metrekare değerlerinin logaritmasını aldık. Bu işlemle beraber aşırı büyük değerlerin etkisini azaltıp verinin daha dengeli dağılmasını sağladık.
9. Modeli Deploy Etme
Projenin en heyecan verici aşamalarından biri de modeli gerçek dünyada kullanılabilir hale getirmek oldu. Geliştirdiğimiz modeli Streamlit kullanarak bir web uygulamasına dönüştürdük.

Böylece, herkesin kolayca erişebileceği bir platforma taşıdık. Bu aşama, makine öğrenmesi projelerinin uçtan uca nasıl uygulanabileceğini gösteren önemli bir adım oldu.
Projenin web uygulamasına ulaşmak için tıklayınız.
Sonuç
DeepMineAi olarak, uçtan uca bir makine öğrenmesi projesi geliştirdik. Bu çalışma, Türkiye’de Streamlit üzerinde bir ML modelinin nasıl deploy edileceğini anlatan ilk Türkçe video serisi oldu. Bu projeyle, veri kazıma, veri temizleme, model geliştirme, hiperparametre optimizasyonu ve model deploy etme aşamalarını adım adım öğrenebilirsiniz. Hem teorik bilgileri hem de pratik uygulamaları içeren bu proje ile makine öğrenmesi konusunda derinlemesine bir deneyim kazanabilirsiniz. 🚀
Siz de bu projeyi izleyerek kendi konut fiyatları tahmin modelinizi geliştirebilirsiniz!
Yapay zeka konusunda destek almak için bizimle iletişime geçebilirsiniz.