Giter VIP home page Giter VIP logo

veri_madenciligi's Introduction

veri_madenciligi

numpy-pandas-matplotlib

ANALİZ ÇIKTILARI - 1

Veri Seti Tanıtımı

Üzerinde çalışılan veri seti Kaggle.com sitesinden alınan “Starter_Balaji Fast Food Sales” isimli veri setidir. Yerel bir restoranın verilerinden verildiği bu veri seti 1000 satır ve 10 sütundan oluşmaktadır. Bu sütunlar; siparişin kimliği, siparişin tarihi, ürünün adı, ürünün türü, ürünün fiyatı, sipariş edilen ürün miktarı, siparişin tutarı, ödeme türü, siparişi alan kişinin cinsiyet bilgisi ve satış yapılan zaman bilgisini tutmaktadır. Veri setinin ilk 5 verisi, satır ve sütun bilgisi, parametre bilgisi ve isimleri Şekil 1’de verilmiştir. Yerel bir restorandaki siparişlerin çeşitli verilerini gördüğümüz bu veri setinde günün farklı zamanlarında en çok gelir getiren ürünleri, ürünlere gelen zamdan sonraki kar oranını, günde belli sayının üstünde sipariş alma olasılığı sorularına cevap aranılacaktır.

Eksik ve Aykırı Veri Analizi

Veri setinde sütunlardaki eksik değerlerin sayısı elde edildi. Eksik değerlerin “transaction_type” sütununda yani ödeme türünün verildiği sütunda olduğu görülmektedir. Buradaki veri türleri tespit edildiği üzere Cash ve Online olmak üzere 2 çeşittir. Burada eksik değerleri giderebilmek için bu değerler görüldüğü gibi “Other” seçeneği ile doldurulmuş ve “eksiksiz” adı verilen yeni veri setine tanımlanmıştır. Oluşturulan yeni veri setinde eksik değerlerin giderildiği görülmektedir.

Normalizasyon

Veri setinde siparişlerin alındığı tarih bilgileri görülmektedir. Bu veri setinde belli bir sayıdan fazla sipariş alma durumunun gözle tespit edilmesinin zor olacağı anlaşılmaktadır. Bu sebeple 3’ten fazla sipariş alınan günler listelenmiştir. Burada önce günlerin tekrar sayıları alınarak günde kaç sipariş alındığı bilgisi gözlenmiştir. Sonrasında üçten fazla sipariş alınan günler yani üçten fazla sipariş girilen günler ekrana getirilmiştir. Gün bilgisinin uzun olması ve dağılımının daha rahat tespit edebilmesi için Şekil 18’de veriler normalize edilmiştir. Bunun sonucunda günde 4 sipariş görme olasılığının en yüksek ve günde 8 sipariş görme olasılığının en düşük olduğu tespit edilmiştir.

Goupby Analizleri

Günün hangi vaktinde hangi ürünün daha çok gelir getirdiğini öğrenebilmek için Şekil 19’da satış zamanı, ürün adı ve satış zamanı kullanılarak gruplama işlemi yapılmıştır. Burada üstte yazılan kod satırında analiz aşağıya doğru yapılır. Tüm değerleri yan yana görebilmek ve yerden tasarruf edebilmek için ikinci kod satırı aktif edilmiştir. Burada “eksiksiz” olarak adlandırılan veri seti satış zamanlarına göre ürünlerin getirdiği toplam tutarı göstermesi için şekildeki kod satırları kullanılarak gruplanmış ve tablo görüntülenmiştir. Analiz sonucunda sabahları en çok sandviç ve soğuk kahve, öğlen saatlerinde soğuk kahve ve frankie ürünlerinin daha çok gelir getirdiği görülmüştür. Akşam, gece ve gece yarısı saatlerinde frankie ve sandviç ürünlerinin daha çok gelir elde ettikleri görülmüştür. Bu veriler sonucunda frankie ve sandviç ürünlerinin diğer ürünlere göre restorana daha çok gelir getirdikleri ve işletme için önemli ürünler olduğu sonuçlarına varılmaktadır. Başta ortaya konulan ürünlere zam yapılması halinde ortaya çıkan kar oranını hesaplamak amacıyla Şekil 20’de ürünlere 5 birimlik zam yapılması ile yeni fiyatı gösterecek olan zamlı ürün sütunu ve yeni zamlı fiyatlı sipariş tutarını gösterecek olan zamlı toplam fiyat sütunları eklenmiştir. Böylelikle sütun sayısı veri setinde 12 olarak güncellenmiştir. Bu sütunlar oluşturulurken önceki ürün fiyatına 5 birim ekleme yapılmış ve satılan ürün adedi ile yeni oluşturulan zamlı ürün fiyatı çarpılarak yeni zamlı satış toplamı elde edilmiştir. Kar oranın ve toplam satış fiyatını elde etmek için ürünler gruplandırılarak toplam zamlı fiyatlar ile toplam zamsız fiyatlar görüntülenmiştir. Tablonun en altına yeni satır eklenerek üst satırların toplam bilgisi incelenmiştir. Tabloya yeni sütun girişi yapılarak burada elde edilen bilgilerden kar oranı hesaplanmıştır. Hesaplanan bilgiler ile birlikte tablo incelendiğinde toplam gelirin zam sonucunda kar oranının 16 olduğu görülmektedir. Sadece 5 birimlik bir zamdan elde edilen oran işletme için iyi bir kazanç olarak değerlendirilir.

Benzerlik ve Mesafe

Satılan ürün sayısı, alınan sipariş tutarı ve ürün fiyatı arasında bağlantı ve benzerlik kontrolü yapılması amacıyla kosinüs benzerliği uygulanmıştır. Bu değerin sıfıra daha yakın olması sebebiyle bu parametreler arasında bir benzerlik olduğu ve mesafe değerinin uzak olduğu sonucuna varılmıştır.

ANALİZ ÇIKTILARI - 2

Veri Seti Hakkında

Üzerinde çalışılan veri seti Kaggle.com sitesinden alınan “Concrete Data” isimli veri setidir. Betonun mukavemet özellikleri hakkında bilgiler bulunan veri seti 1030 satır ve 9 sütundan oluşmaktadır. Bu sütunlardan "cement” olarak adlandırılan sütun birim hacme düşen çimento miktarını, “slag” olarak adlandırılan sütun cürufun birim hacme düşen miktarını, “flyash” olarak adlandırılan sütun uçucu küllerin birim hacme düşen miktarını, “water” olarak adlandırılan sütun birim hacme düşen su miktarını, “superplasticizer” olarak adlandırılan sütun süperplastikleştirici kullanımının ölçüsünü, “coarseaggregate” olarak adlandırılan sütun kaba agreganın birim hacme düşen miktarını, “fineaggregate” olarak adlandırılan sütun ince agreganın birim hacme düşen miktarını, “age” olarak adlandırılan sütun betonun yaşını ve “csMPa” olarak adlandırılan sütun ise betonun basınç dayanımını ifade eder. Veri Seti Kaynak: https://www.kaggle.com/datasets/kushalvala/concrete/code

İlk satırdaki ilk beton numunesinde 540 metreküp çimento, 0 metreküp yüksek fırın cürufu, 0 metreküp uçucu kül, 162 metreküp su, 2.5 metreküp süper akışkanlaştırıcı, 1040 metreküp kaba agrega, 676 metreküp ince agrega bulunan 28 günlük beton karışımının basınç dayanımının 79,99 MPa olduğu görülmektedir.

Veri setinde eksik değer bulunmadığı görülmüştür. Eksik veri bulunmadığı görülen beton veri setinde aykırı değerlerin tespiti için sütunların kutu grafiği (box plot) çizilmiştir. Burada aykırı değerlerin 6 sütunda olduğu görülmüştür. Bu sütunlar; slag ,water ,superplasticizer ,fineaggregate ,age, csMpa olarak isimlendirilen sütunlardır. Her bir sütun ayrı ayrı alınarak değişkenlere atılmıştır. Aykırı değerlerin giderilmesi için ilk çeyrek, üçüncü çeyrek ve çeyreklikler arası aralık hesaplanmıştır. Üst ve alt sınırlar hesaplanarak yazdırılmıştır. Alt sınırın altında olan veriler alt sınıra ve üst sınırın üstünde olan veriler üst sınıra eşitlenerek düzeltilmiştir. Son olarak aykırı verilerin temizlenmiş hali kutu grafiği ile tekrardan çizilerek kontrol edilmiştir.

Çoklu Regresyon İle Tahminleme

Bu veri setinde elde edilen bilgilerle beton karışımlarının farklı bileşenlerine bağlı olarak basınç dayanımının değişimine odaklanılmıştır. Bu sebeple çoklu regresyon analizinde “csMPa” olarak adlandırılan sütun bağımlı değişken olarak seçilmiştir. Betonun farklı bileşenleri hakkında bilgi veren diğer 8 sütun ise bağımsız değişken olarak kullanılmıştır. Çoklu doğrusal regresyon ile belirtilen bağımlı değişken ile bağımsız değişkenler arasındaki ilişkinin incelenmesi amaçlanmıştır. Çoklu doğrusal regresyon modelini oluşturmak ve modelin performansını değerlendirmek için belirtilen kütüphaneler içe aktarılmıştır. Seçilen bağımlı değişken gösterilmiştir. Bağımsız değişkenler incelenmiştir.

İlk senaryo için eğitim ve test setleri ayrılmıştır. Burada test verisinin 0.2 ve eğitim verisinin ise 0.8 oranında kullanılması belirlenmiştir. Tekrarlanabilir sonuçlar için ise random_state değeri 21 verilmiştir. Daha sonra Lineer Regresyon modeli oluşturularak eğitim verilerine göre eğitilmiştir. Test seti üzerinden tahmin yapılmıştır. Modelin genel performansı r2 skoru ile değerlendirilmiş ve 0.75 elde edilerek gösterilmiştir. Tahmin edilen değerler ile gerçek değerlerin birebir karşılaştırılması için bir scatter plot oluşturulmuştur. Burada gerçek değerlere karşı tahmin edilen değerler mavi renkte ve gerçek değerler ise yeşil renkte gösterilmiştir. Görsel hali gösterilmektedir. Modelin performansını değerlendirmek için üç hata metriği hesaplanmıştır.

Alınan sonuçlar doğrultusunda modelin veri setinin %75 ’ini açıkladığı ve bağımsız değişkenlerin büyük kısmının bağımlı değişkendeki varyansı açıkladığı söylenebilir. Düşük hata oranları ile modelin tahminlerinin genel olarak doğru olduğu çıkarılabilir. Ortalama mutlak hatanın 6.56 olması ile her bir tahminin gerçek değerden o kadar birim uzaklıkta olduğu söylenebilir.

İkinci senaryo için çapraz doğrulama kullanılarak modelin performansı incelenmiştir. Kullanılacak kütüphaneler içe aktarıldıktan sonra modelin r2 skorları hesaplanırken 10 katlı çapraz doğrulama yapılacağı belirtilmiş ve bu skorlar yazdırılmıştır. Elde edilen skorların ortalaması alınmıştır. Daha sonra çapraz doğrulama ile modelin tahminleri yapılmıştır. Elde edilen r2 skorunun 0.5153 olarak çıkması modelin açıklanmasının orta seviyede olduğunu gösterebilir. Çapraz doğrulama sonucu elde edilen r2 skorları arasında farklar olduğu ve modelin farklı alt veri setlerinde performansının değişken olduğu sonucuna varılabilir. Tahmin edilen değerler ile gerçek değerlerin karşılaştırılması için gerçek değerlere karşı çapraz doğrulama sonuçlarına dayalı tahmin edilen değerler gösterilmiştir. Yani bu noktalarda gerçek değerlerle modelin çapraz doğrulama sırasında yaptığı tahminlerin karşılaştırılması bulunmaktadır. Eğer model mükemmel tahmin durumunda olsaydı yeşil renkte çizgi üzerindeki gibi ilerleme gösterecekti. Çapraz doğrulama ile elde edilen tahminlerin gerçek değerlere göre hata metrikleri hesaplanmıştır. Alınan veriler hata metrikleri ile yorumlandığında modelin performansının ortalama olduğu söylenebilir.

Üçüncü senaryo için ızgara arama yöntemi ve çapraz doğrulamayı beraber kullanan bir yöntem oluşturulmuştur. Bu modelde en iyi hiperparametre kombinasyonu bulunarak modelin genel performansının değerlendirilmesi amaçlanmıştır. Hiperparametre, eğitim sürecinden bağımsız kullanıcı tarafından belirlenen parametreler anlamındadır. Izgara arama yöntemi ise hiperparametre optimizasyonu için kullanılan en temel yaklaşımdır. Gerekli kütüphanelerin alınması sonrasında kombinasyonları belirleyecek parametre ızgarası oluşturulur. Buradaki parametreler modelin doğrusal regresyonda kesim noktasının hesaplanması için ve tahminlerin alacağı değerlerin seçimleri için tercihler verir. GridSearchCv ise bu parametrelerin farklı kombinasyonlarını deneyerek verilen r2 skorlama yöntemine göre en iyi performansı sağlayan parametre kombinasyonunu seçer. Daha sonra model eğitilir. Bulunan en iyi parametre ve model alınır. En iyi model kullanılarak çapraz doğrulama ile tahminler yapılır. Bir scatter plot çizilerek gerçek değerler ile modelin tahmin ettiği değerlerin karşılaştırılması sağlanmıştır. Karşılaştırmada tahmin edilen noktaların gerçek değerlerin tahmin edilmesi durumunda çizilecek olan çizginin etrafında toplandığı görülebilir. Hata metriklerinin yüksek olmaması ve r2 skorunun 0.6867 çıkması ile modelin parametrelerle iyi bir uyumda olduğu söylenebilir.

Özellik Seçme Önerisi

Özellik seçiminde filtreleme yöntemi kullanılmıştır. Bu yöntemde değişkenlerin hedef değişken ile olan alaka düzeyi değerlendirilmiştir. Model ise özellikler seçildikten sonra oluşturulmuştur. Filtreleme, korelasyon matrisi kullanılarak yapılmıştır. Bu yöntemin varsayımı girdi değişken ile çıktı değişken arasında yüksek ilişki beklemesidir. İlk önce Pearson korelasyon katsayıları hesaplanmıştır. Buradan yola çıkılarak bağımsız değişkenlerin “csMPa” çıkış değişkeni ile korelasyonu incelendiğinde “cement”, “water”, “superplasticizier” ve “age” sütunlarının çıkış değişkeni ile yüksek düzeyde ilişkili olduğu ve “slag” sütunu ile pozitif yönlü ilişkide olduğu söylenebilir. Bağımlı değişken ile en düşük ilişkide olan “coarseaggregate” ve “fineaggregate” sütunlarının çıkarılması; “flyash” sütununun ise bağımlı değişken ile yüksek düzeyde ilişkili olan sütunlarla bağlantılı olması sebebiyle durumunun korunması önerisinde karar kılınmıştır.

Verilen öneri doğrultusunda belirlenen sütunlar çıkartılarak daha sade bir veri seti oluşturulmuş ve tekrardan model kurularak en iyi parametreleri GridSearchCv ile alınmıştır. Daha sonra çapraz doğrulama ile modelin performansı değerlendirilmiştir. Modelin tahmin edilen değerleri ile gerçek değerlerinin karşılaştırılacağı grafik için çalıştırılarak bu değerlerin konumları görüntülenmiştir. Hata metriklerinin incelenmesi ile veri setinin ilk durumuna göre oranlarında azalma olması ve güncellenmiş r2 skorunun 0.6890 ile göreceli olarak küçük bir iyileşme sergilemesi ile modelin performansının artmış olması sonucuna varılabilir.

veri_madenciligi's People

Contributors

nazankorkmaz avatar

Watchers

 avatar

Forkers

mucahitbz

veri_madenciligi's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.