
Kaggle’da Titanik Veri Bilimi (Data Science) Çözümleri
Makine öğrenmesine yeni başlayanlar için İngilizce kaynaklardaki terimlerin anlaşılır hale gelmesi zorlayıcı olabilmektedir. Bu not defteri, Kaggle benzeri sitelerdeki veri bilimi yarışmalarını çözümü konusunda örnek bir iş akışında bize yol gösterirken terimlere alışkanlığınızı artırmayı hedeflemektedir.
Veri bilimi yarışmalarına katılımı anlatan bir çok notebook vardır. Bu notebook’lar genellikle konunun uzmanlarının anlayabileceği şekilde geliştirildiğinden özellikle yeni başlayanlar için karmaşıktır. Biz bu notebook’da, yeni başlayanların da kolayca anlayabileceği, çözüm geliştirme sırasında aldığımız her kararın her adımını ve gerekçesini açıklayan adım adım bir iş akışını takip edeceğiz.
İş akışı
Yarışma çözümü iş akışı yedi aşama olacak şekilde değerlendireceğiz.
- Soru veya problem tanımı.
- Eğitim ve test verilerini edinin. (Acquire training and testing data.)
- Verileri tartışın, hazırlayın, temizleyin.
- Analiz edin, kalıpları belirleyin ve verileri keşfedin.
- Problemi modelleyin, tahmin edin ve çözün.
- Problem çözme adımlarını ve nihai çözümü görselleştirin, raporlayın ve sunun.
- Sonuçları gönderin. (Submit results)
İş akışı, her aşamanın diğerini nasıl takip edebileceğinin genel sırasını gösterir. Yinede istisnai durumlar olacaktır.
- Birden fazla iş akışı aşamasını birleştirebiliriz. Verileri görselleştirerek analiz edebiliriz.
- Belirtilenden daha önce bir aşama gerçekleştirin. Tartışmadan önce ve sonra verileri analiz edebiliriz.
- İş akışımızda bir aşamayı birden çok kez gerçekleştirin. Görselleştirme aşaması birden çok kez kullanılabilir.
- Bir bölümü tamamen atlayabilirsiniz.
Soru ve problem tanımı
Kaggle gibi rekabet siteleri, veri bilimi modelinizi eğitmek ve model sonuçlarını bir test veri kümesine karşı test etmek için veri kümelerini sağlarken, çözülmesi gereken sorunu veya sorulacak soruları tanımlar. Bu notebook’da kullanılan Titanic Survival yarışması için soru veya problem tanımı Kaggle’da açıklanmıştır.
Titanik felaketinden kurtulan veya hayatta kalmayan yolcuları listeleyen bir eğitim örnek setinden yola çıkarak, modelimiz, hayatta kalma bilgisini bilmeksizin, test veri kümesindeki bu yolcuların hayatta kalıp kalmadığını belirleyebilir.
Ayrıca problemimizin alanı hakkında önceden bilgi edinmek isteyebiliriz. Bu, Kaggle yarışma açıklama sayfasında açıklanmıştır. İşte dikkat edilmesi gereken önemli noktalar.
- 15 Nisan 1912'de ilk seferi sırasında Titanik bir buzdağıyla çarpıştıktan sonra battı ve 2224 yolcu ve mürettebattan 1502'sini öldürdü. Hayatta kalma oranı %32.
- Gemi kazasının bu kadar can kaybına yol açmasının sebeplerinden biri de yolcular ve mürettebat için yeterli can filikasının olmamasıydı.
- Batan olaydan kurtulmak için bir miktar şans unsuru olsa da, kadınlar, çocuklar ve üst sınıf gibi bazı insan gruplarının hayatta kalma olasılığı diğerlerinden daha yüksekti.
İş akışı hedefleri
Bu hedefleri 7 başlık altında inceleyebiliriz.
Sınıflandırma (Classifying) Örneklerimizi sınıflandırmak veya kategorize etmek isteyebiliriz. Çözüm hedefimiz ile farklı sınıfların çıkarımlarını veya korelasyonunu da anlamak isteyebiliriz.
Bağ Kurmak (Correlating) Soruna eğitim veri kümesindeki mevcut özelliklere dayalı olarak yaklaşılabilir. Veri kümesindeki hangi özellikler çözüm hedefimize önemli ölçüde katkıda bulunur? İstatistiksel olarak konuşursak, bir özellik ve çözüm hedefi arasında bir korelasyon var mı? Özellik değerleri değiştikçe, çözüm durumu da değişiyor mu veya tam tersi mi? Bu, verilen veri setinde hem sayısal hem de kategorik özellikler için test edilebilir. Hayatta kalma dışındaki özellikler arasındaki korelasyonu da belirlemek isteyebiliriz. Belirli özellikleri ilişkilendirmek, özelliklerin oluşturulmasına, tamamlanmasına veya düzeltilmesine yardımcı olabilir.
Dönüştürme (Converting) Modelleme aşaması için verilerin hazırlanması gerekmektedir. Model algoritmasının seçimine bağlı olarak, tüm özelliklerin sayısal eşdeğer değerlere dönüştürülmesi gerekebilir. Örneğin, metin kategorik değerlerini sayısal değerlere dönüştürmek.
Tamamlama (Completing) Veri hazırlama, bir özellik içindeki eksik değerleri tahmin etmemizi de gerektirebilir. Model algoritmaları, eksik değer olmadığında en iyi sonucu verebilir.
Düzeltme (Correcting) Ayrıca, verilen eğitim veri setini, özellikler içindeki hatalar veya muhtemelen hatalı değerler açısından analiz edebilir ve bu değerleri düzeltmeye çalışabilir veya hataları içeren örnekleri hariç tutabiliriz. Bunu yapmanın bir yolu, örneklerimiz veya özelliklerimiz arasında herhangi bir aykırı değeri tespit etmektir. Ayrıca, analize katkıda bulunmuyorsa veya sonuçları önemli ölçüde çarpıtabiliyorsa, bir özelliği tamamen atabiliriz.
Oluşturma (Creating) Mevcut bir özelliğe veya bir dizi özelliğe dayalı olarak yeni özellikler oluşturabilir miyiz? (Korelasyon, dönüşüm, tamlık (Correlation, conversion, completeness) hedeflerine dayanarak. )
Grafik oluşturma (Charting) Verilerin doğasına ve çözüm hedeflerine bağlı olarak doğru görselleştirme çizimleri ve çizelgeleri seçimi.
Veri elde edin (acquire data)
Python Pandas paketi, veri kümelerimizle çalışmamıza yardımcı olur. Eğitim ve test veri kümelerini Pandas DataFrame’lere alarak başlıyoruz. Ayrıca, her iki veri kümesinde belirli işlemleri birlikte yürütmek için bu veri kümelerini birleştirebiliriz.
Verileri tanımlayarak analiz edin (Analyze by describing data)
Pandas ayrıca projemizin başlarında aşağıdaki soruları yanıtlayan veri kümelerini tanımlamaya yardımcı olur.
Veri setinde hangi özellikler mevcut?
İşlemek veya analiz etmek için özellik adlarının öğrenilmesi. Bu özellik adları Kaggle verileri sayfasında açıklanmıştır.
['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch'
'Ticket' 'Fare' 'Cabin' 'Embarked']
Hangi özellikler kategoriktir?
Bu özellikler, örnekleri benzer örnek kümeleri halinde sınıflandırır. Kategorik özellikler içinde değerler nominal, sıra, oran veya aralık temelli olabilir. Diğer şeylerin yanı sıra bu, görselleştirme için uygun grafikleri seçmemize yardımcı olur.
- Categorical (Kategorik): Survived, Sex, and Embarked. Ordinal (Sıralı): Pclass.
Hangi özellikler sayısaldır?
Hangi özellikler sayısaldır? Bu değerler numuneden numuneye değişir. Sayısal özellikler içinde değerler kesikli mi, sürekli mi yoksa zaman serisine mi dayalı? Ayrıca bu bilgi, görselleştirme için uygun grafik türünü seçmemize yardımcı olur.