Machine Learning II: Unsupervised Supervised Algoritmalar

tarihinde yayınlandıMachine Learning, R yazılımı, Veri Analizi içinde yayınlandı
Facebooktwittergoogle_plusredditpinterestlinkedinmail

Doç. Dr. Kutlu MERİH

Birinci Bölümde, makine öğrenme problem türlerini ve istenen çıktıları kapsadık. Şimdi, ilgili makine öğrenme algoritmalarına yüksek düzeyde bir genel bakış sunacağız. Burada, supervised ve unsupervised, çok popüler ve yüksek düzeyde analitik algoritmalar listesi veriyoruz. Bu algoritmaların bazılarını bu çalışmanın ilerleyen bölümlerinde daha ayrıntılı olarak ele alacağız.
Algoritmik Datamining ve Machine Learning modelleri iki temel alanda incelenir Denetimsiz (Unsupervised) ve Denetimli (Supervised). Aslında bunları Sınflama (Classification) ve Tahmin (Regression) modelleri olarak düşünmek daha gerçekçidir.

Denetimsiz (unsupervised) Sınıflama Modelleri:

PCA (Asal bileşen analizi)
K-means kümeleme
Hiyerarşik kümeleme

Denetimli (Supervised) Regresyon Modelleri:

Bu modellerde sınıflandırma ve regresyon birlikte yapılabilir.
İki Sınıf ve Çok Sınıflı Sınıflandırma (Classificatin and Regression)
Lojistik regresyon ve multinomial regresyon
Bayes sınıflandırıcıları (ör. NaiveBayes)
En yakın komşu yöntemleri (örn., K-NN veya k-En Yakın Komşular)
Karar ağacı
orman ve ormanlar
Yapay Sinir Ağları
SVM (destek vektör makinesi)
Perceptron yöntemleri

Karakutu Algoritmalar

Algoritmik saflık ve basitlik genellikle, tahmin doğruluğu veya model yorumlanabilirliği, belirli bir uygulama için daha önemli olup olmadığını seçmenin bir karşılığıdır. Bazı algoritmaların uzmanlar dışında anlaşılmaları güç olabilir. Bunları Kara Kutu Algoritmaları olarak değerlendiriyoruz. Yapay sinir ağları, destek vektör makineleri ve bazı gruplama yöntemleri çok doğru tahmini modeller oluşturmak için kullanılabilir, ancak son derece uzmanlaşmış ve teknik kişiler haricinde çok fazla kara bir kutudur. Tahmin performansı en önemli hedef olduğunda kara kutu algoritmaları tercih edilebilir ve modelin nasıl çalıştığını ve tahminlerin nasıl yapıldığını açıklamak gerekli değildir. Bununla birlikte, bazı durumlarda model yorumlanabilirliği tercih edilir ve bazen de yasal olarak zorunludur.

İyi Bir başlangıç İçin: Basit algoritmalar kullanılmalı

Eğitim, test etme, işleme ve tahmini hızı açısından, bazı algoritmalar ve model türleri daha fazla zaman alır ve diğerlerinden daha fazla bilgi işlem gücü ve bellek gerektirir. Bazı uygulamalarda hız ve ölçeklenebilirlik, özellikle bir modelin oldukça düzenli güncellenmesi gereken ve yaygın olarak kullanılan gerçek zamanlı bir uygulamada kritik faktörlerdir. Son olarak, ve daha önce de belirtildiği gibi, performans doğruluğunda belirgin ve haklı bir kazanç olmadıkça model basitliği (veya kısaltma) daima tercih edilmelidir.
Sadelik, genellikle, daha hızlı, daha ölçeklendirilebilir ve daha kolay yorumlanabilen modeller ve bulgular ile sonuçlanır.

Boyutsallık laneti (Curse of Dimentionality)

Boyutsallık laneti olarak bilinen yüksek boyutlu verileri (yani çok sayıda özellik) ele alan bir kavram vardır. Boyutsallığın laneti, veri boyutlarının sayısı arttıkça (özellikler) gerekli olan hesaplama hızının ve hafızanın katlanarak artması gerçeğini ifade eder. Bu, bir makine öğrenme algoritmasının daha yüksek boyutsal verilere göre ölçeklenmediği bir ortamda kendisini ortaya koyabilir. Bu sorunun üstesinden gelmenin bir yolu, verilerle daha iyi ölçeklenebilir farklı bir algoritma seçmektir. Diğeri boyut azalması (PCA) olarak bilinen bir tekniktir.

Denetimsiz (unsupervised) Öğrenme

Denetlenmeyen (unsupervised) öğrenmenin veriden öğrenmeyi içerdiğini, ancak tahminde bulunmayı içermediğini belirmiştik.
Bunun nedeni, verilerin ya sorumluluğu değişebilir bir hedefle (etiket) verilememesi ya da bir kişi bir yanıt belirlememeyi seçmesidir. Ayrıca denetlenen öğrenme için bir ön-işleme basamağı olarak da kullanılabilir. Denetlenmeyen durumda amaç, kalıpları, derin analizleri keşfetmek, varyasyonu anlamak, bilinmeyen alt grupları bulmak (değişkenler veya gözlemler arasında) ve böylece veride gizlenmiş enformasyonu açığa çıkarmaktır.
Denetimsiz öğrenmede en sık kullanılan iki teknik Asal Bileşen Analizi (Principal Componenet Analysis: PCA) ve Kümeleme (Clustering) yöntemidir.

PCA (Principal Components Analysis)

PCA, veri setindeki değikenleri otogonal bir dönüşümle maksimum varyansa sahip değişkenler haline dönüştürür. Otogonallik yeni değişkenlerin birbiri ile korealasyonu olmadığı anlamındadır. Buna göre PCA’yı tanımlamanın diğer bir yolu, muhtemelen birbiriyle ilişkili değişkenlerin temel bileşenler olarak bilinen doğrusal olarak ilişkisiz değişkenler kümesine dönüştürülmesidir.
PCA, ile yeni ileşenlerden her biri matematiksel olarak belirlenir ve her biri veriden açıklayabilecek değişkenlik veya varyans miktarı ile sıralanır. Verilen bir durumda, birinci ana bileşen, en büyük varyansını, ikinci ana bileşeni bir sonraki en büyük bileşeni hesaplar. Her bileşen aynı zamanda diğerlerine diktir; X ve Y eksenini iki boyutlu bir planda düşünün. Her iki eksen de birbirine dik ve dolayısıyla ortogonaldir. Görselleştirmek kolay olmasa da, ilk iki eksen bir çok amaç için uygun bir format yaratır.

Asal Bileşen Seçimi

PCA’nın hilelerinden bir tanesi, verilerin özetlenmesi için kaç bileşene ihtiyaç duyulduğunun bilinmesidir; bu, varyansın çoğunun belirli bir bileşen sayısı tarafından ne kadar açıklandığını tahmin etmeyi içerir. Bir başka düşünce, PCA’nın bu serinin önceki bölümlerinde ele alınan özellik ölçeklemeye duyarlı olmasıdır.
PCA, keşifsel veri analizi ve veri görselleştirme için de kullanılır. Araştırmacı veri analizi, veri görselleştirme de dahil olmak üzere belirli veri türleri aracılığıyla bir veri kümesinin özetlenmesini içerir ve genelde analitikte tahmini modelleme, veri madenciliği vb. Yol açan ilk adımdır.

Kümeleme (Clustering)

Kümeleme, bir veri kümesinde kümeleri (alt gruplar) bulmak için kullanılan bir dizi teknik ve algoritmayı belirtir ve verilerin benzer gözlem gruplarına bölünmesini içerir. ‘Benzer gözlemler’ kavramı biraz göreli ve subjektiftir, ancak esas olarak belirli bir gruptaki veri noktalarının, farklı bir gruptaki veri noktalarına göre daha birbirine benzediği anlamına gelir. Veri toplama algoritmalarının ve modellerinin birçoğu, veriyi belli sayıda benzer verilere ayıran benzerlik (veya benzemezlik) metriklerini kullanan birçok türde kümeleme algoritması ve modeli vardır. Bu metriklerin en popüleri bildiğimiz Öklit uzaklık metriğidir. Bunun yanında farklı metrikler de kullanılabilir. Bu yaklaşımlardaki önemli fark nedeniyle, sonuçlar büyük oranda etkilenebilir ve bu nedenle, bu algoritmaları, uygulanacak en uygun yaklaşımı seçmek bir ölçüde anlamlıdır.

K-means Modeli ve Hiyerarşik Kümeleme

K-means ve hiyerarşik kümeleme, yaygın olarak kullanılan denetimsiz kümeleme teknikleridir. Aradaki fark, k-means için gözlemlerin bölüştürülmesi için önceden belirlenmiş sayıda küme (k) kullanılırken, hiyerarşik kümeleme kümelerinin sayısı önceden bilinmemektedir. Hiyerarşik kümeleme, k-aracı durumunda k’yi bilmeyi veya önceden belirlemenin potansiyel dezavantajlarını ortadan kaldırmaya yardımcı olur. Aşağıdan yukarıya doğru ve aglomeratif olmak üzere iki ana tür hiyerarşik kümeleme vardır.
Hierarchic clustering (function hclust) standard base R/stats paketinde bulunur ve herhangi bir paket yüklenmesi gerektirmez. Ayrıca bu fonksiyon çok sayıda benzemezlik metriği ile de çalışabilir.

K-means Algoritması

Bu tanımlara göre K-means kümelemenin sürekli verilerden oluşan verisetleri için geçerli olacağı açıktır. Algoritmanın kullanacağı ortalamaların anlamlı olması gerekir. Algoritma verisetinden rastgele k eleman seçerek başlar. Sonra seçilen elemanların buna uyduğu veya uymadığı metriklenerek devam edilir. Gruplar ayrıştıkça gözlemler mesafe metriğine göre en yakın gruba yerleştirilir. Bu süreç artık yeni bir grup oluşturulamayıncaya kadar devam eder.

K-means zaafları

K-means algoritması teknik olarak basit ve etkili bir yöntemdir. Buna karşılık bazı zaafları da sözkonusudur. Grup sayısı k nın önceden belirlenmesi bunları en başında gelir. Sonuç dağılımı da başlangıçtaki rasgele grup seçiminden oldukça etkilenir
Ortalamaları kullandığı için anomalik değerlere duyarlıdır
Diğer taraftan bu sorunları aşılabildiği yaklaşımlar da söz konusudur. Bunların başında sistemi alternatif k değerleri ve alternatif başlangıç grupları ile yeniden çalıştırmak gelir.
k değerinin doğru seçimi için literatürde gözlem değerinin karekökünün alınması önerilmektedir. Ancak bu yöntem sağlıklı/doğru bir k seçimi yapıldığının garantisini vermemektedir. Ş. Özdemir (2016) yaptığı çalışmada gözlem değerinin karekökünün «orta değer» olacak şekilde tüm k değerlerine bakılarak, en yüksek doğruluk/peformans değeri veren k’nin alınmasını önermektedir.

Hiyerarşik Kümeleme

Hiyerarşik kümeleme k-means tekniğinin benzer fakat alternatfi olup verisetlerindeki özgün grupları belirlemek için kullanılır. Burada grup sayısının k-means tekniğinde olduğu gibi önceden belirlenmesi gerekmez. Uygulama sonucunda gözlemler agaç tipi bir yapı içinde sergilenir buna DENDOGRAM denmektedir. Algoritma gözlemler arasında kümeleme kriteri olarak ikili bir mesafe uzaklık (distance) matrisi kullanmaktadır.

Hiyerarşik Kümeleme Algoritmaları

Hiyerarşik kümeleme iki temel yapıda algoritma ile gerçekleştirilir; Agglomerative (Yığıştırma) ve Divisive (Bölüştürme)
1. Agglomerative kümeleme : Kısaca AGNES (Agglomerative Nesting) olarak da adlandırlır. Tabandan yukarıya doğru çalışır. Burada her gözlem tek elemanlı bir küme (leaf-yaprak) olarak düşünülür. Sonra algoritmanın her adımında her küme kendine en çok benzeyen diğer küme ile daha büyük bir küme olarak birleştirilir. Bu süreç bütün elemanlar tek bir büyük küme (root-kök) oluncaya kadar sürdürülür. Snüç bir dendogram (ağaç diyagramı) olarak grafiklenir.
2. Divisive hiyrarşik kümeleme: Kısaca DIANA (Divise Analysis) olarak da bilinir ve tepeden-aşağı şekilde uygulanır. Bir anlamda AGNES in ters uygulamasıdır. Algoritma bütünü gözlemlerin tek bir küme olduğu root ile başlar ve her adımda en heterojen küme ikiye bölünür. Bu süreç bütün gözlemler uygun kümelerine yerleşinceye kadar sürdürülür.
Buradan agglomerative kümelemenin küçük kümeleri belirlemede divisive hiyerarşik kümelemenin ise büyük kümeleri belirlemede iyi olduğu sonucunu çıkarabiliriz.
Kümeleri bütünleştirmek veya bölmek uygun bir benzersizlik (dissimilarity) metriğine göre geçekleştirilmektedir. R yazılımında Öklit metriği (herkesin bildiği) uygun bir benzersizlik metriği olarak default olarak kullanılmaktadır.

Denetimli (Supervised) Öğrenme

Denetimli (Supervised) öğrenme veri setinde tahmin edilmesi ve kategorize edilmesi gereken bir hedef (response) faktör olduğunda ortaya çıkar. Bu durumda algoritmaların kullandığı teknikler de farklı olacaktır. Genellikle veri setinin eğitim ve test olmak üzere iki bölüme ayrılması gerekecektir. Eğitim setinde geliştirilen modelin test seti ile tahmin gücü araştırılır. Dikkat çekilmesi gereken ilginç bir nokta, bir hedef (response) yokluğunda, çözüm performansını veya hatalarını değerlendirmenin hiçbir yolu olmadığıdır. Bu, denetlenen ve denetlenmeyen öğrenme yöntemleri arasında önemli bir ayrımcılıktır.

Holdout ve Çapraz-Doğrulama (Cross-Validation) Yöntemleri

Holdout: Veri setini belli bir orana göre rasgele eğitim ve test veri setlerine ayırmak için en basit yöntemdir. R de bunu gerçekleştirecek fonksiyonlar vardır . Pek çok doğrulama tekniği, bir takım eğitim verilerinden oluşturulmuş farklı örneklere modelleri yeniden yerleştirmeyi içeren yeniden örnekleme yöntemleri olarak kategorize edilmiştir.

Çapraz Doğrulama (Cross Validation)

Muhtemelen en popüler ve dikkat çekici teknik çapraz doğrulama olarak adlandırılır. Çapraz doğrulama temel fikri, modelin eğitim setindeki doğruluğunun iyimser olması ve modelin test setindeki doğruluğundan daha iyi bir tahminin elde edilmesidir. Böylece, fikir, model eğitim aşamasında test setinin doğruluğunu tahmin etmektir.
Çapraz geçerleme/doğrulama yöntemi; k-kat ve birini dışarıda bırak (leave one-out) olmak üzere iki alternatif sunmaktadır.
K-kat Ç.G. verilerin farklı eğitim ve test setlerine tekrar tekrar bölünmesini, modelin eğitim setinde oluşturulmasını ve daha sonra test setinde değerlendirilmesini ve nihayetinde tahmini hataları tekrarlamanın ve ortalamanın yapılmasını içerir.
Birini dışarıda bırak yöntemi k-kat ile aynı mantıkla çalışır ancak her seferinde bir parçayı dışarıda bırakarak hareket eder. Model doğrulamasına ek olarak ve gereğinden fazla uymayı önlemeye yardımcı olan çapraz doğrulama, özellik seçimi, model seçimi, model parametre ayarı ve farklı öngörücüleri karşılaştırmak için kullanılabilir.

k-katlı Çapraz Doğrulama

Çapraz doğrulama özelliğine sahip popüler bir özel durum, k-katlı çapraz doğrulama (k-fold cross validation) olarak bilinir. Bu teknik, orijinal verilerin ayrıldığı eşit boyuttaki bölüm sayısını temsil eden bir k sayısını seçmeyi içerir. Bölümlendikten sonra, tek bir bölüm bir doğrulama veri kümesi olarak (diğer bir deyişle modeli test etmek için) belirlenir ve kalan k-1 veri bölümleri eğitim verileri olarak kullanılır. Seçilen k’nın geniş olması, daha az bias, ancak daha fazla varyans ve tersinin doğru olduğuna dikkat edilmelidir. Çapraz doğrulama durumunda, rastgele örnekleme iadesiz yapılır. Bootstrap tekniği olarak bilinen değiştirme ile rasgele örneklemeyi içeren başka bir teknik iadeli seçim yapar. Bootstrap tekniği, hatayı çapraz doğrulamadan daha fazla hesaplama eğilimi gösterir.

Model Performansına Genel Bir Bakış:    Tutturma (Confusion) Matrisi

Eğitimli Öğrenmede Model performansı birçok yönden tanımlanabilir, ancak genel olarak, modelin belirli bir sorunun çözüm hedeflerini ne kadar etkili bir şekilde uygulayabileceğini ifade eder (ör. Tahmin, sınıflandırma, anormallik tespiti, öneri). Hedefler her problem için farklı olabildiğinden, performans ölçütü de farklılık gösterebilir. Bazı ortak performans önlemleri doğruluk, hassaslık, alıcı operatör özelliği (ROC) vb.Içerir.

Tutturma (Confusion) Matrisi

R dili ile yapılan ML çalışmalarında çoğu algoritmada tahminlerin ne kadar tuttrulabildiğini belirleyen «confusion matris» oluşturma fonksiyonu bulunmaktadır. Bu fonksiyonun çıktısı yani confusion matris görüntüsü 2×2 boyutlu bir tabloyu andırmaktadır. Araştırmacı tahmin sonuçlarını 2×2 tablo ile bireysel olarak da sınıflandırabilir:
TAHMİN
OLUMLU
OLUMSUZ
OLUMLU
TP
FN
OLUMSUZ
FP
TN

 

Burada TP ve TN doğru tahminleri FP ve FN yanlış tahminleri sergiler. Bir tutturma matrisi (confusion matrix), kavramsal olarak, gösterilen birçok sınıflandırma performans metriklerinin temelini oluşturmaktadır. Bu doğru ve yanlış tahminlerin etki metrikleri farklıdır ve aşağıdaki gibi karakterize edilir.

Hesaplanmış performans metrikleri

Accuracy = (TP+TN)/(TP+FP+TN+FP)
Sensitivity = TP/(TP+FP)
Specificity = TN/(TN+FN)
Precision = TP/(TP+FN)
Recall = TP/(TP+FP)
Prevalence = (TP+FP)/(TP+FP+TN+FN)
Detection Rate = TP/(TP+FP+TN+FN)
Detection Prevalence = (TP+FN)/(TP+FP+TN+FN)
Balanced Accuracy = (sensitivity+specificity)/2
PPV = (sensitivity * prevalence)/((sensitivity*prevalence) + ((1-specificity)*(1-prevalence)))
NPV = (specificity * (1-prevalence))/(((1-sensitivity)*prevalence) + ((specificity)*(1-prevalence)))
F1 = (1+beta^2)*precision*recall/((beta^2 * precision)+recall)
Burada beta = 1 alınır.

Örnek Confusion Matrisi

 

Tutturma (Confusion) Matrisi popüler metrikleri

Makine öğrenimi ile ilişkili daha popüler olanlardan birkaçını burada tartışacağız.
Doğruluk (Accuracy), performansın önemli bir ölçütüdür ve daha spesifik olarak, belirli bir veri noktası veya gözlem için modelin doğru değeri (sınıflandırma veya regresyon) tahmin edebilme oranıdır. Diğer bir deyişle, doğruluk, doğru öngörülerin yapılan tüm öngörülerin oranıdır.
Accuracy = (TP+TN)/(TP+FP+TN+FP)
Hassasiyet ve recall Hassas (pozitif öngörme değeri), gerçek pozitiflerin toplam pozitif öngörüler miktarına (yani, doğru veya yanlış) oranıdır. Başka bir deyişle, hassasiyet, yapılan tüm pozitif öngörülerin doğru pozitif öngörülerin oranını ölçer.
Recall = TP/(TP+FP)
Diğer taraftan hatırlama veya gerçek olumlu oran, doğru pozitiflerin, doğru tahmin edilmesine bakılmaksızın toplam gerçek pozitiflik oranına oranıdır. Başka bir deyişle, recall gerçek pozitif gözlemlerin hepsinden doğru pozitif öngörülerin oranını ölçer.
F-Skoru (F1); Duyarlık ve geri çağırma ile ilişkili bir metrik, bunları matematiksel olarak birleştiren ve bir şekilde ağırlıklı bir ortalamaya benzeyen F-skoru (aynı zamanda F1 skoru olarak da adlandırılır) olarak adlandırılır ve böylece hem eşzamanlı hem de eşzamanlı değerleri temel alan tek bir performans ölçüsü elde edilir. Değerleri 0 (en kötü) ile 1 (en iyi) arasında değişir.

ROC Eğrileri

Bilinmesi gereken bir diğer önemli kavram, alıcının çalışma karakteristiği olup, grafiği çizildiğinde ROC eğrisi olarak bilinir. Bir ROC eğrisi, duyarlılığın (hatırlama veya gerçek olumlu oran) ve özgüllüğün (yanlış pozitiflik oranı) iki boyutlu bir çizimidir. Eğri altındaki alana AUC denir ve sınıflandırıcının (modelin) kalitesini ve performansını temsil etmek için kullanılan sayısal bir metriktir.
0,5’lik bir AUC, esasen modelsiz rasgele tahmin ile aynıdır, oysa 1,0’lık bir AUC, mükemmel bir sınıflandırıcı olarak düşünülür.

AUC Değerinin etkileri

Genellikle, AUC değeri ne kadar yüksek olursa ve 0,8’in üstünde bir AUC oldukça iyi kabul edilir. AUC değeri ne kadar yüksekse eğri çizginin sol üst köşesine o kadar yakındır.
ROC eğrilerinden kolayca görebiliyorsunuz. O halde gerçek pozitif oranı en üst düzeye çıkaran, yanlış pozitif oranı en aza indirgeyen bir modeli bulmak ve ayarlamak temel hedeftir.
Başka bir deyişle, ROC eğrisi tarafından gösterilen amaç, gerçek pozitiflerin çoğunu mümkün olduğunca doğru olarak tahmin etmek ve aynı zamanda gerçek olumsuzlukların çoğunu olabildiğince tahmin etmek ve bu nedenle her ikisinde de hataları en aza indirgemek sağlamaktır.

Popüler Unsupervised Algoritmalar

Tahmine odaklanmış Unsupervised algoritmalar nisbeten daha yüksek bir matematik ve istatistik bilgisi gerektirir. Bu nedenle bunları ayrı bir yazı konusu olarak inceleyeceğiz. Bunların en popüler olanları:
Lojistik regresyon ve multinomial regresyon
Bayes sınıflandırıcıları (ör. NaiveBayes)
En yakın komşu yöntemleri (örn., K-NN veya k-En Yakın Komşular)
Karar ağacı
orman ve ormanlar
Yapay Sinir Ağları
SVM (destek vektör makinesi)
Perceptron yöntemleri

Popüler R ML Paketleri

e1071
 Functions for latent class analysis, short time Fourier transform, fuzzy clustering, support vector machines, shortest path computation, bagged clustering, naive Bayes classifier etc. A popular wrapper package
rpart
 Recursive Partitioning and Regression Trees.
nnet
 Feed-forward Neural Networks and Multinomial Log-Linear Models.
randomForest
 Breiman and Cutler’s random forests for classification and regression.
caret
 package (short for Classification And REgression Training) is a set of functions that attempt to streamline the process for creating predictive models.
kernlab
 Kernel-based Machine Learning Lab.
ROCR
 Visualizing the performance of scoring classifiers.
party
 A Laboratory for Recursive Partitioning.
arules
 Mining Association Rules and Frequent Itemsets.
tree
 Classification and regression trees.
klaR
 Classification and visualization.
RWeka
 R/Weka interface.
CORElearn
  Classification, regression, feature evaluation and ordinal evaluation.
rminer
 A wrappper package for many algorithms
mboost
 Model-Based Boosting.
Bunlar ML analizlerimizde genellikle tercih ettğimiz popüler ML paketleri. Başka paketler de var ama yüksek düzeyde Matematik ve iststatistik bilgisi gerektiriyorlar. Gelecek bölümde bunları kısaca açıklamaya ve örneklemeye çalışacağız.
Facebooktwittergoogle_plusredditpinterestlinkedinmail