"Enter"a basıp içeriğe geçin

Scikit-Learn kütüphanesi ile model eğitimi

Bir önceki yazımızda Pandas kütüphanesini kullanarak Keşifsel Veri Analizi (Exploratory Data Analysis) için kısa bir giriş yapmış ve veri setimizi tanımaya başlamıştık. Bu yazımızda da önceki yazıda kullandığımız veri seti ile bir kaç model eğitimi (model training) uygulaması yapacağız. Dolayısı ile bu yazıyı bir devam yazısı olarak tanımlayabiliriz.

Python ile makine öğrenmesi (machine learning) denildiğinde akla gelen ilk kütüphanelerden biri Scikit-Learn. Bu yazıda scikit-learn (sklearn) ile bir kaç uygulama ve basit görselleştirme (visualization) örnekleri yapacağız.

Henüz yüklü olmayan kütüphaneler için terminalinizden basitçe pip install <kütüphane ismi> komutunu çalıştırarak yükleyebilirsiniz.

Önceki yazımızda yer alan veri setini indirip gerekli uygulamaları yaptıysanız aşağıdaki veri yükleme için kullandığımız read_csv() adımını atlayabilirsiniz.

CSV uzantılı dosyamızı indirdiysek pandas‘ın read_csv fonksiyonu ile verimizi dataframe’e dönüştürme ve numpy ile özellik ve etiketleri ayrıştırma işlemlerini yapabiliriz.

import pandas as pd
import numpy as np
data = pd.read_csv('Practice2_2.csv')
X = np.array(data[['x1','x2']])
y = np.array(data['y'])

Model eğitimine geçmeden veri yükleme ve test verisi ayrıştırma adlı yazımızda öğrendiğimiz şekilde scikit-learn kütüphanesine ait train_test_split fonksiyonunu kullanarak veri setimizi eğitim ve test setleri olarak ayırmamız gerekiyor. Eğitim seti ile modelimizi eğittikten sonra veri setimizin ne kadar iyi çalıştığını da test seti ile görselleştirme yaparak anlamaya çalışacağız.

from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test = train_test_split(X, y, test_size=0.2, shuffle=True)

Bu adımı da gerçekleştirdiğimize göre artık eğitim setimiz (training data) ile model eğitimine başlayabiliriz. İlk model eğitimimize (model training) Logistic Regression ile başlayalım. Gerekli nesne tanımlamasını LR_classifier adını verdiğimiz değişken ile yaptıktan sonra fit ile model eğitimini yapıyoruz.

#Logistic Regression
from sklearn.linear_model import LogisticRegression
LR_classifier = LogisticRegression()
LR_classifier.fit(X_train,y_train)

Tebrikler! İlk model eğitimi işlemini tamamladınız.

Kod hücresinin çıktısında göreceğiniz gibi model eğitilirken bir çok farklı parametre kullanılmış. Biz LR_classifier = LogisticRegression() adımında parantez içerisini boş bıraktığımız için varsayılan (default) kütüphane parametreleri kullanıldı. Her bir kütüphanede hangi parametrelerin kullanıldığını ve bu parametrelere karşılık ne tipte ve aralıkta değerleri verebileceğimizi öğrenmek için sklearn‘ün ilgili kütüphanesini basit bir google araması ile bulabiliriz. Logistic Regression için “Logistic Regression Sklearn” anahtar kelimelerinizi google’da kullanarak ilgili adrese gidebilirsiniz : Sklearn Logistic Regression

Söz gelimi C parametresini varsayılan 1.0 değeri yerine 0.5 olarak kullanmak isterseniz LR_classifier = LogisticRegression(C=0.5) şeklinde kodunuzu değiştirebilirsiniz. İlgili adreslerde hangi parametrenin ne olduğuna ilişkin açıklamalar bulabilirsiniz. Makine Öğrenmesi alanında olgunlaştıkça her bir parametre de sizin için anlamlı hale gelecek. Parametreler ile “oynadığımız” bu adıma Hyperparameter Tuning diyoruz. İleri uygulamalarda modelimizin ne kadar iyi çalıştığını ölçme yeteneği edindikçe hiperparametrelerin modelimize etkilerini de gözlemlemeye başlayabileceğiz. Şu aşamada önemli olan hiperparametreleri nasıl değiştirebileceğimizi öğrenmek idi.

Unutmadan belirtelim ki veri büyüklüğünüz arttıkça bu adımda bekleyeceğiniz süre de artacaktır. Modelin çalışma prensibine göre bekleme süreniz doğrusal ya da üssel olarak artış gösterebilir.

Benzer şekilde bir kaç farklı model için eğitim yapmak üzere aşağıdaki kod parçalarını kullanabilirsiniz:

Yapay Sinir Ağları (Neural Networks – Diğer adı ile Multilayer Perceptron Classifier)

from sklearn.neural_network import MLPClassifier
MLP_classifier = MLPClassifier()
MLP_classifier.fit(X_train,y_train)

Karar Ağacı (Decision Tree)

from sklearn.tree import DecisionTreeClassifier
DT_classifier = DecisionTreeClassifier()
DT_classifier.fit(X_train,y_train)

Support Vector Machines

from sklearn.svm import SVC
SVM_classifier = SVC()
SVM_classifier.fit(X_train,y_train)

Buraya kadar;

  • veri setimiz hakkında fikir sahibi olabilmek için çeşitli Keşifsel Veri Analizi adımlarını uyguladık,
  • veri setimizi eğitim (training) ve test setleri olarak ayrıştırdık
  • modellerimizi eğittik,
  • model parametrelerini nasıl değiştirebileceğimizi öğrendik.

Şimdi ise eğittiğimiz modeli kullanma aşamasına geldi. Modeli kullanmak ona tahmin yaptırmak ile mümkün. Bu ve ileri adımlar için bir sonraki yazımızla devam edeceğiz. Ardından tüm adımları içeren Jupyter Notebook dosyasına da sahip olacaksınız.

Keyifli Öğrenmeler 🙂

İlk Yorumu Siz Yapın

Bir Cevap Yazın

Translate »
%d blogcu bunu beğendi: