Scikit Learn Nedir? Python Makine Öğrenmesi Kütüphanesi
- Tarık Tunç

- 17 Oca
- 2 dakikada okunur
Scikit-learn neydi? Scikit-learn emekti.
Evet, scikit-learn kesinlikle emek. Hatta neden bilmiyorum, veri madenciliği bana hep emekli geliyor.
Neyse.
Scikit-Learn Ne İster Sizden? / Scikit-Learn ile Eğitim ve Test İşlemi
Kısaca: Scikit Learn Python programlama dili ile yazılmış bir makine öğrenmesi kütüphanesidir.
Emek dediğime bakmayın. Kullanımı basit bir kütüphane. Ama bir o kadar da etkili.
Scikit-learn Ne İster Sizden?
Gereksinimleri şu şekilde:
Python (>= 2.7 veya >= 3.4)
NumPy (>= 1.8.2)
SciPy (>= 0.13.3)
Hepsi bu.
Hadi başlayalım.
Supervised Learning (Gözetimli Öğrenme)
Kraldır bu. Kral.
Ne yapar? Teknik olarak size der ki: "Ben sana giriş değerleri için çıkış değerlerini vericem."
Ne demek bu?
Diyelim ki elinizde 100 eğitim verisi var. Yarısı elma, yarısı armut.
Bu öğrenme türünde her şey belli. Siz "Hmm bunlar 2 grup ama bu gruplar ne ola ki?" demezsiniz.
Sistem size direkt söyler: "Şu şu şu armut. Şu şu şu elma. Uğraşma, arama."
Rahat iş.
Unsupervised Learning (Gözetimsiz Öğrenme)
İşte bu biraz nazlı.
Yine teknik olarak giriş değerleri için çıkış değerlerini vermez.
Yukarıda dedik ya "yarısı elma yarısı armut" diye. Burada öyle diyemezsiniz.
Ancak şunu dersiniz: "Şu 50'si bir grup. Şu 50'si bir grup. Ama bunlar nedir? Bilmiyorum."
Sistem de bilmiyor. Sadece grupluyor.
Veriseti Nasıl Eklenir?
Kod zamanı.
from sklearn import datasets
iris = datasets.load_iris()
print(iris.data)
print(iris.target)
Ne yaptık burada?
Önce datasets'i aldık. Sonra iris değişkenine load_iris() fonksiyonu ile iris verisetini atadık.
Daha fazla hazır veriseti mi istiyorsunuz? Siteye bakın, bir sürü var.
.data → Verileri bastı.
.target → Hedefi bastı.
Hedef ne demek?
Şöyle düşünün: "erkek-30-gömlek-iş adamı" verisi.
30 yaşında erkek olan biri gömlek giyiyorsa iş adamıdır. Saçma mı? Biraz. Ama örnek olsun diye.
Buradaki "iş adamı" kısmı hedeftir. Target budur.
Eğitim ve Test İşlemi
Şimdi asıl işe geliyoruz.
Ufak bir sınıflandırma işlemi yapacağız. Sonra test verimizi deneyeceğiz.
Sınıflandırma algoritması olarak Destek Vektör (SVC) algoritmasını kullanıyoruz. Veriseti olarak klasik iris dataset'i. Yukarıda zaten yüklemiştik.
Bir bilgi: Target değerleri 0, 1, 2 olarak görünür.
Bu ne demek?
0 → Iris Setosa
1 → Iris Versicolor
2 → Iris Virginica
Şimdi koda bakalım.
clf = svm.SVC(gamma=0.001, C=100.)
SVC sınıflandırıcıyı ekledik. Default ayarlarda bıraktık.
clf.fit(iris.data[:-1], iris.target[:-1])
fit() fonksiyonu ile eğitim işlemini gerçekleştirdik.
İlk parametre datalar. Yukarıda anlattığım "erkek-30-gömlek" gibi düşünün.
İkinci parametre hedef. "İş adamı" gibi.
data[:-1] ne demek? "Son eleman hariç hepsini al" demek. Son elemanı test için saklıyoruz.
print(clf.predict(iris.data[-1:]))
predict() fonksiyonu ile tahmin işlemi yapıyoruz. Eğitilen modeli kullanıyoruz.
[-1:] ile eğitimde kullanmadığımız son değeri kontrol ediyoruz.
Bakalım doğru sınıflandıracak mı?
Sonuç Ne Çıktı?
Çalıştırdığınızda sonucun [2] olduğunu görürsünüz.
Veriseti kontrol ederseniz bu değer gerçekten Iris-virginica (2).
Doğru tahmin etti.
İlk veri madenciliği uygulamamızı geliştirdik.
Tüm Kod
from sklearn import datasets
import pandas as pd
import numpy as np
from sklearn import svm
iris = datasets.load_iris()
#print(iris.data)
#print(iris.target)
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(iris.data[:-1], iris.target[:-1])
print(clf.predict(iris.data[-1:]))
İnşallah ilerleyen zamanlarda daha detaylı kullanımlar gerçekleştireceğiz.



