Veri Bilimi Notları 2: Makine öğrenmesi ve Python
Ön not: Bu yazımda Python programlama dili ve kullanacağım kütüphanelerden bahsedeceğim. Veri biliminin sadece (programlama düşünmeyen) teorik…
İçindekiler

Ön not: Bu yazımda Python programlama dili ve kullanacağım kütüphanelerden bahsedeceğim. Veri biliminin sadece (programlama düşünmeyen) teorik kısımlarıyla ilgilenen arkadaşlar bu yazıyı es geçebilirler. Lakin programlama dilini kullanarak uygulama yapmak isteyen arkadaşlar okursa yararlı olacaktır diye düşünüyorum.
Bir önceki veri bilimi yazımda “Makine öğrenmesi dediğimiz teknikler bütünü öncelikli olarak bilgisayarlar veya bilgisayar işlevi gören işlemcilerle uygulanmakta” gibisinden bir ifade kullanmıştım. Peki biz makine öğrenmesi algoritmalarını nereye yazacağız veyahut işlemcilere nasıl aktaracağız. İşte burada tam olarak bilgisayar bilimlerinden bahsetmek gerekiyor çok kısa. Öncelikle bilgisayarlar bizim kullandığımız dilden çok daha farklı bir dil kullanırlar. Kendilerine verilen emirleri belirli koşullar dahilinde, matematiksel ifadeleri kullanarak yerine getirirler. Biz ise bu matematiksel ifadeleri bilgisayarlara programlama dilleri ile yazarız. Programlama dilleri de bu yazdığımız ifadeleri kendisi de çevirip, bilgisayarın anlayabileceği çok karmaşık bir dile çevirir ve işlemciye iletir. İşte bizim yapacağımız işlem de tam olarak bu. Bu işlemi yaparken ise Python programlama dilini kullanacağız.
Peki neden Python?
Uzun uzadıya açıklayıp canınızı sıkmak istemiyorum. Çünkü benim bu yazı serisinde hedeflediğim en temel şey, bu işi en başta matematiksel olarak anlatabilmek. Bir işin sadece pratik yanını bilirseniz sadece taklit edebilirsiniz. Eğer uygulama becerinizin yanına teorik bilgileri de koyarsanız sınırın ötesindekilerden olursunuz. İsteyenlere ekstradan Python programlama dilini kullanarak uygulama yaptırmak. İşin matematiksel kısmında olanların canını sıkıp onları bu yazı serisinden uzaklaştırmak istemem.
Python programlama dili yazımı ve temel seviyede (derdimizi anlatacak kadar) öğrenmesi oldukça kolay olan bir dildir. Bundan dolayı şu sıralar dünyada herkese Python öğrenme isteği aşılanıyor. Ayrıca aktif kullanıcı toplulukları, arkasındaki yoğun sponsor desteği, sahip olduğu geniş kütüphaneler, neredeyse her işletim sistemine uyumlu olması ve bizim için en önemlisi veri biliminde en çok kullanılan dil olmasıyla ilgileri cezbediyor. İsterseniz yavaştan kullanacağımız Python kütüphanelerine geçelim.
NumPy
Lineer Cebir alan arkadaşlar matrisleri ve vektörleri biliyorlardır. Bilmeyen arkadaşlar ise youtube üzerinden veya bu linkten temel bir giriş yapabilirler. Makine öğrenmesi tamamen matrisler ve vektörler üzerinden ilerleyen bir disiplindir. Verilerin en kolay saklanma biçimi şu anlık böyledir. İlerleyen on yıllar neyi getirir bilemiyorum.
NumPy kütüphanesi ise Python programlama dilinde, bir önceki paragrafta bahsettiğim matrislerin ve vektörlerin çok büyük olanlarını manipüle etmemizi (üzerinde çeşitli işlemler gerçekleştirerek şekil vermemizi) sağlayan bir kütüphanedir. Matrisi çeşitli kalıplara sokarak verileri bir düzene sokabiliriz. Bu kütüphaneyi oldukça kullanacağımızdan dolayı sizlere bunu öğrenebileceğiniz bir video serisi bırakıyorum. Aşağıda olan videonun devam videolarını izlerseniz bir-iki saatte bu kütüphaneye yüksek oranda hakim olabilirsiniz. Eğer ben kod yazdıkça öğreneceğim diyorsanız o da mümkündür. Kendi programlama dili öğrenme metodolojinize göre takılın.
Matplotlib
Yüz binlerce hatta milyonlarca veriyle uğraşırken verilerin neler ifade ettiğini anlamamız için bu verileri görselleştirmemiz gerekir. Çeşitli grafik tiplerini kullanırız. Python programlama dilinde ise bu grafikleri oluşturmak için Matplotlib kütüphanesini kullanacağız. Böylece tahminlerimizin, gerçek verilerle ne kadar uyuştuğunu ve bu sayede makine öğrenmesi algoritmamızın ne derece doğru çalıştığını görmüş olacağız. Bunun için yeterli seviyede Türkçe kaynak yok malesef. Aslında her veri bilimci İngilizce’yi anadiline yakın bir seviyede bilmeli zaten. Her neyse size kendimin de kullandığı eğitim videosu serisinin ilk videosunu aşağıda göstereyim.
Pandas
Pandas kütüphanesi temel olarak verisetlerini kullanılabilir hale getirmemize yarayan kütüphanedir. Çeşitli formatlarda kaydedilmiş (xlsx, csv) verileri Python’a aktarmamıza yarar. Verisetleri üzerindeki temel değişikliklerde bize yardımcı olur. Veri setini yorumlamadan önce (makine öğrenmesi işlemleri olmadan) en temel işlemleri bu kütüphaneyle yapacağımızı söyleyebilirim. Bunun da 9 videoluk eğitim serisini aşağıya bırakıyorum.
scikit-learn
Python programlama dilinde kullanılan en yaygın makine öğrenmesi kütüphanesidir. İleride konu olarak işleyeceğimiz sınıflandırma, regresyon ve kümeleme işlemlerinde bizim yazacağımız belki de yüzlerce satırlık kodu birkaç satıra indirgememizi sağlar. NumPy ve Pandas ile birlikte çalışmak üzere tasarlanmış olması da bizim için büyük bir avantajdır. Aslında bu yazı serisinde bu kütüphaneyi kullanmayı öğreneceğiz, tabi her konuda önce matematiksel teorik bilgilerimizi tazeleyeceğiz. Bundan dolayı bunun eğitim serisini paylaşmıyorum çünkü zaten bunun eğitim serisi demek makine öğrenmesi demek :)
Kütüphaneleri ve Verisetini Python’a Eklemek
# Kütüphanelerin Python koduna eklenmesi
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Python kodunu yazdığımız klasörde yeralan Data.csv dosyası
# içerisinde bulunan verilerin Python'a veriseti olarak eklenmesi
dataset = pd.read_csv('Data.csv')
#Python Kodu Notları
- Kütüphaneleri as kalıbı kullanarak ekliyoruz. Bunun en temel sebebi bu kütüphaneleri sürekli kullanacağımızdan ötürü isimlerini kısaltmanın işimizi çok kolaylaştırması. Eğer bu işlemi yapmasaydık misal olarak matplotlib.pylot kütüphanesini her kullanmamızda plt yerine sürekli matplotlib.pyplot yazacaktık., CSV (comma seperated values, virgülle ayrılmış değerler) formatı verileri saklamak için dünyada kullanılan en yaygın formattır fakat Pandas kütüphanenizi, xlsx dosyalarını da (excel ) Python’a eklemek için kullanabilirsiniz. Gerekli kodlara bu linkten ulaşabilirsiniz.
Bir sonraki yazıda “Veri Önişleme Nedir? Python’da nasıl Yapılır? Regresyon nedir?” gibi sorulara cevap arayacağız. İyi çalışmalar :)
