Makine Öğrenmesi Dersleri 1: Açıklayıcı Veri Analizi

Hakkı Kaan Simsek
Veri Bilimi Türkiye
5 min readFeb 12, 2018

Veri biliminde öngörülen 2018 trendlerini paylaştığım ilk yazıdan sonra makine öğrenmesi dersleri ile ilgili başlangıç-orta düzeyde bir seri yapmaya karar vermiştim şimdi o seriyi bana gelen talepler doğrultusunda güncelledim.

Çünkü bu alanla ilgili standart ders kitapları kişiyi fazla teknik detaya boğduğundan çoğu insanın ya ilk ünite bitmeden pes ettiğini ya da youtube videolarının arka arkası gelmeyen pasifliğinde oradan oraya savrulduğunu gördüm.

Günün sonunda big data, machine learning, deep learning, artificial intelligence diyen ama basit bir regresyon modeli kuramayan meraklılar haline dönüşüyor birçok insan. O sebeple makine öğrenmesi derslerini elimden geldiğince basit olarak kurguladım.

Makine Öğrenmesi Dersleri 2: Görselleştirme

Makine Öğrenmesi Dersleri 3a: Karar Ağaçları (Sınıflandırma)

Makine Öğrenmesi Dersleri 3b: Karar Ağaçları (Regresyon)

Makine Öğrenmesi Dersleri 4a: Lojistik Regresyon

Makine Öğrenmesi Dersleri 4b: Lineer Regresyon

Makine Öğrenmesi Dersleri 5a: Random Forest (Sınıflandırma)

Makine Öğrenmesi Dersleri 5b: Random Forest (Regresyon)

Makine Öğrenmesi Dersleri 6: Doğal Dil İşleme (NLP)

Makine Öğrenmesi Dersleri 7: Boyut Azaltma-PCA

Makine Öğrenmesi Dersleri 8: Cross Validation

Makine Öğrenmesi Dersleri 9: Hiper-parametre Kestirimi

Makine Öğrenmesi Dersleri 10: Sınıflandırma Modellerinde Başarı Kriterleri

Makine Öğrenmesi Dersleri 11: Veri Manipülasyonu

Bu dersleri takip etmek için bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İhtiyacınız olan tek şey internet ve bu yazıyı okuduğunuza göre o konuda da bir sorunumuz yok. İzlemeniz gereken adımlar sırasıyla şöyle:

  1. Google hesabınızı açın.
  2. https://colab.research.google.com/ adresine gidin.
  3. NEW PYTHON 3 NOTEBOOK’a tıklayın.
  4. Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.

Yukarıdaki gibi bir sonuç çıkmış olmalı. Şimdi kütüphanelerimizi çağıralım.

Şimdi sütunları ekleyip veri setimize tekrar bakıyoruz. Her şey yolunda gözüküyor.

İlk yapmamız gereken veri setimizde eksik veri olup olmadığını ve veri tiplerini kontrol etmek.

Yukarıda göreceğiniz gibi her sütunda 32.561 ‘non-null’ kayıt var yani veri setimizde eksik veri yok. Sütunların yanında veri tiplerini de görüyorsunuz. Burada hedef değişkenimiz salary olduğu için onun dağılımına value_counts() fonksiyonuyla bakıyoruz ve seaborn kütüphanesiyle görselleştiriyoruz.

Adımlarımız sırasıyla şöyle:

1. plt.figure() ile görselin enini ve boyunu belirliyoruz.
2. sns.countplot() fonksiyonuna görselleştirmek istediğimiz değişkeni yazıyoruz.
3. value_counts() fonksiyonuyla hedef değişkenin dağılımını buluyoruz.

Maaşı 50K’dan düşük ve yüksek olanların yaş karakteristiğine bakalım şimdi.

Öncelikle df[‘salary’] sütunun <=50K’ya eşit olduklarını seçiyoruz.

  1. Bu şartı sağlayan kayıtların [‘age’] sütununa bakıyoruz.
  2. describe() fonksiyonuyla bu şartı sağlayan kayıtların [‘age’] sütunuyla ilgili dağılımını elde ediyoruz.
  3. Aynı işlemleri df[‘salary’] sütunun >50K’ya eşit olduğu sütunlar için de tekrarlıyoruz.

Bu kısım biraz karışık gelebilir değerlerle oynayıp hata almanızı tavsiye ederim ama çok da takılmanıza gerek yok artık görselleştirme dünyasına giriyoruz.

Veri setindeki kişilerin eğitim durumlarının dağılımını yine value_counts() fonksiyonuyla buluyoruz, yukarıdaki görsele ek olarak x eksenindeki değişkenlerimizi büyükten küçüğe sıralamak istediğimiz için order belirliyoruz ve x eksenimiz iç içe geçmesin diye değerleri 70 derece döndürüyoruz.

plt.figure() ile görselin enini ve boyunu belirliyoruz.

  1. sns.countplot() fonksiyonuna görselleştirmek istediğim değişkeni yazıyoruz ve hedef değişkeni büyükten küçüğe sıralıyoruz.
  2. x eksenini 70 derece döndürüyoruz ki değerler birbirine karışmasın.
  3. value_counts() fonksiyonuyla hedef değişkenin dağılımını buluyoruz.

Yukarıda iki değer alabilen bir özniteliğin yaş karakteristiğini incelemiştik. Eğer bu çalışmayı eğitim gibi çok fazla değer alan bir öznitelik için yapmaya kalkarsak oldukça zaman kaybederiz. Bunun için groupby() fonksiyonuna ihtiyacımız var.

Gruplamak istediğimiz değişkeni belirliyoruz.

  1. İncelemek istediğimiz sütunu seçiyoruz.
  2. describe() fonksiyonuyla hedef değişkenimizin dağılımını buluyoruz.

Şimdi eğitim durumuna göre insanların haftalık ortalama çalışma saatlerini inceleyeceğiz. Bunu yaparken ayrıca 50K’dan az ve fazla alan kişileri gruplayıp dağılımı öğreneceğiz.

plt.figure() ile görselin enini ve boyunu belirliyoruz.

  1. sns.barplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.
  2. hue=’salary’ seçeneği ile veriyi ‘salary’ sütununa göre ikiye ayırıyoruz.
  3. default renk seçeneği yerine palette=’inferno’ ile görselleştiriyoruz.
  4. x eksenini 70 derece döndürüyoruz.

Şimdi de verimizi cinsiyete göre gruplayıp insanların haftalık ortalama çalışma saatlerini inceleyeceğiz.

plt.figure() ile görselin enini ve boyunu belirliyoruz.

  1. sns.pointplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.
  2. hue=’sex’ seçeneği ile veriyi sex’ sütununa göre ikiye ayırıyoruz.
  3. default renk seçeneği yerine palette=’dark’ ile görselleştiriyoruz.
  4. x eksenini 70 derece döndürüyoruz.

Son olarak yukarıdaki yaptığımız maaş ve cinsiyet gruplamalarını birleştiriyoruz ve buna göre insanların haftalık ortalama çalışma saatlerini inceliyoruz.

plt.subplots() ile görselin enini, boyunu belirliyoruz ve satır, sütun sayısını belirliyoruz.

  1. sns.pointplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.
  2. hue=’sex’ seçeneği ile veriyi ‘sex’ sütununa göre ikiye ayırıyoruz.
  3. default renk seçeneği yerine palette=’dark’ ile görselleştiriyoruz.
  4. data=df[df[‘salary’]==’ <=50K’] ile maaşı 50K’dan az olanları seçiyoruz.
  5. ax=ax1 ile ilk figürün yerini belirliyoruz.
  6. Aynı adımları maaşı 50K’dan fazla olanlar için tekrarlıyoruz.

İlk ders Python’a veya başka bir programlama diline hakim olan insanlar için kolay gelebilir. Onlar için hızlı bir tekrar olmuştur umarım. İlk defa programlamaya giriş yapanlar için keyifli bir başlangıç olmuştur umarım.

İkinci derse kadar herkesin bu çalışmayı kendi bilgisayarında denemesini tavsiye ederim. Emin olun bilgisayarınızda yapıp düzelteceğiniz 1 hata, buna benzer onlarca yazı okuyup video izlemekten çok daha faydalı olacaktır.

Çalışmadaki veri setine ve kodlara şuradan ulaşabilirsiniz.

Sorunuz olursa bana Linkedin veya Twitter hesaplarından yazabilirsiniz.

--

--