Veri Ön İşleme / Python
Adım 1 : Gerekli Kütüphaneyi İçe Aktarma (import)
Python da makine öğrenmesi işlemlerinin yaparken her zaman import edeceğimiz iki kütüphanemiz vardır bunlar Numpy ve Pandas.
Numpy, Matematiksel fonksiyonları içeren bir kütüphanedir.
Pandas, Veri setlerini içeri aktarmak ve yönetmek için kullanılan kütüphanedir.
import numpy as np import pandas as pd
Adım 2 : Veri Setini içe aktarma
Veri kümeleri genellikle .csv formatında bulunur. CSV uzantılı dosyalar, veritabanı kullanıcıları için verileri virgüller ile ayırarak belli bir düzende yazıp kaydedilmiş olan dosyalardır. Dosyanın her satırı bir veri kaydını içermektedir.
Bir CSV dosyasını dataframe olarak okumak için pandas kütüphanesinin read_csv metodu kullanılmaktadır.
veriler = pd.read_csv('veriseti.csv')
Daha sonra verimizi bağımlı ve bağımsız değişkenler olarak ayırabiliriz.
Adım 3 : Eksik Verilerin Ele Alınması (missing value)
Genelde elde ettiğimiz verilerimiz nadiren homojendir, çeşitli nedenlerden dolayı eksik değerler olabilir örneğin yazılımsal, donanımsal hatalar yanlış kayıt vb. hatalar eksik verilere neden olabilir. Bu eksik değerlerin ele alınması gerekir, böylece makine öğrenme modelimizin performansını düşürmemiş oluruz. Çeşitli yöntemlerle eksik verilerin giderilmesi sağlanabilir örneğin yerine ortalamayı koymak bir çözüm olabilir.
from sklearn.preprocessing import Imputer imputer = Imputer(missing_values ='NaN',strategy="mean",axis=0)
Adım 4 : Kategorik Verilerin Çevirilmesi (encoding)
Kategorik veriler, sayısal değerler yerine etiket değerleri içeren değişkenlerdir. Olası değerlerin sayısı genellikle sabit bir setle sınırlıdır. “Evet” ve “Hayır” gibi örnek değerler modelin matematiksel denklemlerinde kullanılamaz, bu yüzden bu değişkenleri sayılara kodlamamız gerekir. Bu değişkenleri çevirebilmek için, LabelEncoder sınıfını sklearn.preprocessing kütüphanesinden çağırarak kullanıyoruz.
from sklearn.preprocessing import LabelEncoder le = LabelEncoder()
Adım 5 : Verinin Eğitim ve Test Verisi Olarak Ayrılması
Modelimiz için kullanacağımız veri setini eğitim ve test veri seti olarak iki parçaya ayırıyoruz. Eğitim verisi ile modeli eğitirken, test verimizi kullanarakta eğitim verisi ile öğrenmiş modelimizin başarısını değerlendiriyoruz. Bölünme işlemi genellikle 66/34 şeklinde yapılmaktadır %66 eğitim verisi iken %34’lük kısım test olarak ayrılmaktadır. Bu işlem için sklearn.crossvalidation kütüphanesinin train_test_split() metodunu içeri aktarıyoruz.
from sklearn.cross_validation import train_test_split
a_train, a_test, b_train, b_test = train_test_split(a, b, test_size=0.33)
Adım 5 : Özellik Ölçeklendirilmesi (feature scaling)
Makine öğrenmesi algoritmalarının çoğu hesaplamalarında uzaklık metriklerinden olan iki veri noktası arasındaki mesafeyi ölçen Öklid formülünü kullanır. Tüm değerlerin eşit olarak katkıda bulunmasını sağlamak için değerler aynı birime getirilmesi gerekmektedir. Büyüklük bakımından oldukça değişkenlik gösteren veriler mesafe hesaplamalarında, ağırlık hesaplamalarında düşük değerdeki özelliklerden daha ağır basacağından varyansı artıracaktır ve eşit etki etmeyeceklerdir. Özellik standardizasyonu veya Z-skor normizasyonu yöntemi ile veriler ölçeklendirilir. Bu işlem için python da Sklearn.preprocessing kütüphanesinin StandardScaler metodu içe aktarılıp kullanılmkatadır.
from sklearn import preprocessing
scaler = preprocessing.StandardScaler()