You are on page 1of 12

Scikit-learn ile Makine öğrenmesi:

Çeşitli makine öğrenimi algoritmalarını aynı işlemin parçaları için ayrı ayrı manuel olarak
uygulamak ve sonuçları birleştirmek oldukça zor olabilir. Scikit-learn, sınıflandırma,
regresyon, kümeleme ve karar ağaçları gibi farklı makine öğrenme algoritmalarını birleştiren
bir python kütüphanesidir. Scikit-learn kullanarak, makine öğrenimini uygulamak sadece
modelin eğitileceği ve tahminin yapılacağı veriye uygun fonksiyonu çağırmak olarak
basitleşecektir.

REGRESYON:

Regresyon analizinin temelinde; gözlenen bir olayın değerlendirilirken, hangi olayların etkisi
içinde olduğunun araştırılması yatmaktadır. Bu olaylar bir veya birden çok olacağı gibi dolaylı
veya direkt etkileniyor da olabilirler. Regresyon analizi yapılırken, gözlem değerlerinin ve
etkilenilen olayların bir matematiksel gösterimle yani bir fonksiyon yardımıyla ifadesi
gerekmektedir. Kurulan bu modele regresyon modeli denilmektedir. Regresyon analizi
incelenirken, genellikle konusunu oluşturan, etkilendiği olaylara değişkenler adı verilir ve bu
değişkenlerin yer alacağı matematiksel model incelenir. İstatistikte değişkenler arasındaki
ilişkinin derecesini gösteren katsayıya korelasyon, değişkenler arasındaki ilişkinin fonksiyonel
şeklini belirleyen denkleme ise regresyon denklemi denir.

Regresyon modelinin kullanılması, ilgilenilen olayla ilgili olarak, bir sebep-sonuç ilişkisi
bulunması gerekmektedir. Sebep-sonuç ilişkisi, regresyon modeli kurulurken, bağımlı ve
bağımsız değişkenler olarak anlatılmaktadır. Regresyon analizi yapılırken kurulan
matematiksel modelde yer alan değişkenler bir bağımlı değişken ve bir veya birden çok
bağımsız değişkenden oluşmaktadır. Bağımsız değişkenler kurulacak modelde bir değişkenli
olarak ele alınırsa basit doğrusal regresyon, birden fazla bağımsız değişkenli olarak alınırsa
çoklu regresyon modeli konusunu oluşturmaktadır. Makine öğrenmesinde regresyon yaklaşımı
nedensellik ilişkisini ortaya çıkarmaktan ziyade gelecek değerlerin tahminin de
kullanılmaktadır. Bağımlı değişken hedef (target) değişken olarak isimlendirilirken, bağımsız
değişken özellik (feature) olarak isimlendirilir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


Y hedef değişkenin ve  (artık) rasgele değişkenler olduğu ve aşağıdaki gibi ifade edilen
regresyon modelinde, X rasgele değişkeni değildir. 𝑌 = 𝛽0 + 𝛽1 𝑋 + 𝜀. Y hedef değişkeni için
𝑌~𝑁(𝛽0 + 𝛽1 𝑋, 𝜎 2 ) varsayımı geçerlidir ve y’nin tahmini 𝑌̂ = 𝐸(𝑌̂) = 𝛽̂0 + 𝛽̂1 𝑋 ‘dır.
Regresyon doğrusunda, 0: Doğrunun Y eksenini kestiği noktayı (X’in sıfır değerine karşılık
Y’nin alacağı değer), 1: Eğim, hız, regresyon katsayısını (X’in 1 birim değişmesi halinde Y’nin
kaç birim ve ne yönde değişeceği) gösterir.

Regresyon modelinde regresyon doğruna göre tahmin hataları olarak bilinen artıkların (𝜀)
gösterimi aşağıdaki grafikte gösterilmiştir.

5 öğrencinin günlük ders çalışma saatleri ile belli bir dersin sınavından aldığı notları aşağıdadır.

Öğrencilerin çalışma saatlerinin özellik (bağımsız değişken) ve notların hedef değişken olduğu
basit bir regresyon modelini Python’da Scikit-learn kütüphanesi yardımıyla kuralım. İlk olarak
grafik çizimleri için matplotlib.pyplot kütüphanesini içe aktaralım.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


Günlük düzenli çalışmalarına karşı alınan notların nokta grafiği aşağıdaki gibi elde edilir.

Grafikten, çalışma saati ile notlar arasında pozitif bir korelasyon olduğunu görülebilir. Bu
noktalardan geçen düz bir çizgi çizilebilir ve bu doğru kullanılarak çalışma saati girilerek bir
başka kişinin notu tahmin edilebilir. Tüm noktaları kesen bir doğru çizmek için Scikit-learn
kütüphanesinden LinearRegression sınıfından yararlanılabilir. Model kurma(eğitme) işlemi
fit() fonksiyonu ile halledilir.

Model kurulduktan (eğitildikten) sonra predict() fonksiyonu yardımıyla yeni öğrenciler için
tahminlerde bulunulabilir. Günde 1.75 saat ders çalışan bir öğrencinin kurulan modele göre
alacağı tahmini not;

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


Lineer regresyon doğrusu, aşağıdaki kod yardımıyla çizilebilir.

Yukarıdaki regresyon doğrusunun y ekseninin hangi noktada kestiğini görmek açık değildir.
Bunun nedeni, X ekseninin başlangıç noktasını 1,5 olarak seçmemizdir. Daha iyi bir
görselleştirme için, x-eksenini 0’dan başlatabiliriz ve y-ekseninin genişliğini artırabiliriz. Saat
değişkeninin iki uç değerini o ve 1,8’i kullanarak aşağıdaki kodla daha açık bir görselleştirme
elde edilir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


veya intercept_ özelliği kullanılarak aynı işlem yapılabilir.

“model” nesnesini kullanarak, “coef_” özelliği yardımıyla doğrusal regresyonun gradyanı da


hesaplanabilir.

Regresyon doğrusunun tüm veri noktalarına iyi uyup uymadığını bilmek için artık kareler
toplamı (AKT) kullanılabilir.

AKT mümkün olduğu kadar küçük olmalıdır. AKT değerinin sıfır olması regresyon
doğrusunun noktalara tam olarak uyduğu anlamına gelir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


Modelin uygunluğunu test etmek için veri setini, eğitim ve test veriş olmak üzere ikiye ayırmak
daha doğru bir yaklaşımdır. Eğitim verisi ile model eğitilirken test veri ile modelin uygun olup
olmadığı ölçülebilir. Genel olarak verinin büyük bir kısmı eğitim verisi olarak ayrılırken geri
kalanı test verisi olur. Örneğin %80 eğitim verisi ve geriye kalan %20 test verisi gibi. Bizim
problemimiz için test verimiz aşağıdaki gibi olsun.

Test verilerinin regresyon doğrusuna ne kadar yakın olduğunu R-Kare yöntemi ile ölçebiliriz.
R-Kare yöntemi aynı zamanda basit regresyonda, belirleme katsayısı olarak ve çoklu
regresyonlar için çoklu belirleme katsayısı olarak da bilinir.

𝐴𝐾𝑇
𝑅2 = 1 − , 𝑇𝐾𝑇 = ∑𝑛𝑖=1(𝑦𝑖 − 𝑦̅)2 𝐴𝐾𝑇 = ∑𝑛𝑖=1(𝑦𝑖 − 𝑓(𝑥𝑖 ))2
𝑇𝐾𝑇

ravel () fonksiyonu, iki boyutlu


listeyi bitişik düzleştirilmiş tek
boyutlu bir listeye dönüştürür.

Daha kolay bir kodla scikit-learn kütüphanesi ile R-kare hesaplanabilir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


SONUÇ: 0,9429 (%94.29) R Kare değeri, test verisi için oldukça iyi bir uyum olduğunu
gösterir.

Modeli kalıcı yapmak:

Bir modeli eğittikten sonra, daha sonra tekrar kullanmak içim kaydetmek genellikle
yararlıdır. Yeni bir veriyi test etmek için, modeli tekrar yeniden eğitmek yerine, kaydedilen
model, eğitimli modeli indirmenize ve modeli hemen tahminler yapmanıza olanak tanır.

Eğitimli modelinizi Python'da kaydetmenin iki yolu vardır:

 Python'da standart pickle modülünü kullanma

 Scikit'te joblib modülünü kullanma,

VERİ TEMİZLEME:

Makine öğreniminde, gerçekleştirmeniz gereken ilk işlemlerden biri veri temizlemektir.


Modeli direk olarak eğitebilecek bir veri setine sahip olmak çoğu zaman mümkün olmayabilir.
Bu durumda, verilerin eksik değerler için dikkatlice incelenmesi, bunların kaldırılması veya

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


bazı geçerli değerlerle yer değiştirmesi gerekir. Aşırı aykırı değerlere sahip sütunlar varsa
bunların normalleştirilmesi gerekir.

Kayıp veri olup olmadığını görmek için csv formatındaki veriyi Pandas veri çerçevesi içine
yükleyip isnull() fonksiyonu aşağıdaki gibi kullanılabilir.

Veri yazılırsa kayıp olan gözlemler NaN olarak görülür.

KAYIP GÖZLEMLERİN SÜTUN ORTALAMASIYLA YER DEĞİŞTİRME:

Veri kümenizdeki NaN ile başa çıkmanın yollarından biri, bunları bulundukları sütunların
ortalaması. İle yer değiştirmektir. Bu işlem, aşağıdaki komut satırlarıyla kolaylıkla yapılabilir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


SATIRLARI KALDIRMA:

dropna() fonksiyonu kullanarak kayıp değerlerin bulunduğu satırlar silinebilir.

İndeks tekrar düzenlenmek istenirse reset_index() fonksiyonu yardımıyla,

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


TEKRARLI SATIRLARI BELİRLEME:

Tekrarlı satırları görmek için,

SÜTUNLARI NORMALLEŞTİRME:

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


AYKIRI GÖZLEMLERİ KALDIRMA:

 Ortalama ± 2Standart sapma veya Ortalama ± 3Standart sapma değerlerine bakılarak


numpy kütüphanesi kullanılarak aykırı gözlemler basit olarak ayrılabilir.

 Z skoru kullanarak aykırı gözlemler kaldırılabilir.

PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI


PROF.DR.MEHMET ALİ CENGİZ, OMÜ İSTATİSTİK BÖLÜMÜ VERİ BİLİMİ PROGRAMI

You might also like