Machine Learning I – Genel Tanımlar

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

Doç. Dr. Kutlu MERİH

Bilgisayar teknolojisinin ve yazılımların gelişimi ile artan inanılmaz işlem gücü günümüzde Makine Öğrenmesi (Machine Learning) konusunu çok popüler bir hale getirdi. Artık bilgisayarlar algoritmik teknikler ile dışarıdan müdahaleye gerek duymadan, verilerden otomatik olarak derin analizler edinme, bilinmeyen kalıpları tanıma ve yüksek performanslı tahmini modeller oluşturma gibi uygulamaları gerçekleştirebiliyorlar. Konunun popülaritesine rağmen, çok teknik kişiler ve / veya veri bilimcileri dışında, makine öğreniminin gerçek amacı ve ayrıntıları iyi anlaşılmamıştır. ML resmi tanımı olarak verilen bazı açıklamaların olayın özelliklerini yansıtmaktan çok uzak olduğu kanısındayız. ML ancak ayrıntılarına inilerek anlaşılabilicek bir enformatik süreçtir. Burada kısaca diyebiliriz ki ML ile bilgisayarlar veri akımlarını analiz edip öğrenerek karar üretebilmektedirler.

Makine Öğrenimi Kapsamı

Makine öğrenimi, Bilgisayar Bilimlerinin ve Matematik Mühendisliğinin bir kombinasyonudur. Her iki alanda da uzmanlık ve beceri gerektirir. Genellikle prediktif analitik veya tahmini modelleme olarak da adlandırılır. Hedefi ve kullanımı, doğru tahminleri veren genelleştirilebilir modeller oluşturmak veya özellikle yeni ve görünmeyen benzer verilerle kalıpları bulmak için verilerden öğrenmek için yeni algoritmalar oluşturmak ve / veya mevcut algoritmaları kullanmaktır.

Makine öğrenmesi Adımları

Kullanılan algoritmalar ne olursa olsun ML uygulamaları bazı temel adımlar ile geçekleşir. Veri setlerini amaç uygun hala getirmek bunların en başta geleni ve en önemlisidir. Bu adımlar kabaca:
Veri Geliştirme
Veri seçimi
Veri Temizleme
Veri Bütünleştirme
Veri Dönüştürme
Veri Görselleştirme (Grafik datamining)
Algoritmik Data Mining
Sınıflama Hedefli (Unsupervised)
Tahmin Hedefli (Supervised)
Performans Analizi
Sonuçları Raporlama
Olarak verilebilir

Veri Seçimi ve Önişleme

Verilerin kalitesi, miktarı, hazırlanması ve seçimi, bir makine öğrenme çözümünün başarısı için kritik önem taşır.
Başarı sağlamak için atılacak ilk adım, seçim yanlılığından kaçınmaktır. Seçim eğilimi, modeli üretmek için kullanılan örneklerin, özellikle de yeni ve görünmeyen verilerle modelin gelecekte kullanılabileceği durumları tam olarak temsil etmediği durumlarda ortaya çıkar.

Veri Çözümleme

Veri setleri genellikle dağınıktır. Bu setlerde eksik değerler (ör. NA), aykırı değerler ve benzeri öğelerden oluşur. Modelleme ve analiz öncesinde ham verilerin kullanılabilir hale getirilmesi gerekmektedir. Bunun için veri setinin ayrıştırılması, temizlenmesi, dönüştürülmesi ve ön işleme tabi tutulması gerekir. Bu süreç çoğunlukla veri karıştırma veya veri çözme olarak adlandırılır. Eksik olan veriler için, genellikle eksik değerlerin doldurulması veya değiştirilmesi/atılması için kullanılan bir tekniktir ve enterpolasyona kavramsal olarak çok benzerdir.
Verilerin organize edilerek, makine öğrenmesi algoritmalarında kullanılabilir hale getirilmesi için R bazı paketler önermektedir.

Ölçekleme (scaling)

Buna ek olarak, bazen ver setleri dengesiz değer ve metrikler de içerebilir. Böyle durumlarda veri setlerinin ölçeklemek (scaling) gerekecektir. Genelde iki yaklaşım vardır:
Özellik ölçekleme)
Standart (normalize edilmiş) forma dönüştürme.
Özellik ölçeklendirme, belirli özelliklerin modellere ve tahminlere hâkim olmasını önlemek için farklı özelliklerin değer aralıklarını benzerlik içine getirerek uygulanır.
Aynı zamanda makine öğrenme optimizasyon algoritmalarını (hız, yakınsama, vb.) çalıştırırken hesaplama problemlerini önlemek için kullanılır.

Kukla (dummy) değişken oluşturmak

Bir ön işleme tekniği, kukla (dummy) değişkenler oluşturmaktır; bu, temel olarak nitel değişkenleri niceliksel değişkenlere çevirdiğiniz anlamına gelir. Bir örnek, bir renk özelliğinin (ör. Yeşil, kırmızı ve mavi) alınması ve sırasıyla 1, 2 ve 3 değerlerine dönüştürülmesidir. Bu, kalitatif özelliklerle regresyon analizi yapabilmeyi mümkün kılar.

Veri Setini Bölme (Partitioning)

Makine öğrenimi için kullanılan verilerin eğitim ve test veri kümelerine ayrılması «başlangıçta tanımı yapılan Makine Öğrenmesindeki öğrenme ve deneyim kavramlarının» oluşturulmasını sağlayacaktır. Ek olarak model doğrulama ve ayarlama için isteğe bağlı bir üçüncü doğrulama veri kümesi de ayrılmalıdır. Her bir veri kümesinin boyutunu seçmek biraz öznel ve genel örneklem büyüklüğüne bağlı olabilir. R ve paketleri bunun kolayca gerçekleştirilebilmesine olanak sağlar.
Bir eğitim ve test veri kümesi göz önüne alındığında, genel yaklaşım verileri% 70-80 eğitim ve% 30-20 test bloklarına ayırmaktır. Genel olarak, daha fazla eğitim verisi, daha iyi bir model ve potansiyel performans ile sonuçlanır. Daha fazla test verileri, model performansının ve genel genelleme kabiliyetinin daha fazla değerlendirilmesiyle sonuçlanır.

Özellik Seçimi ve Özellik Mühendisliği

Temsili, tarafsız, temizlenmiş ve tamamen hazırlanmış bir veri kümesine sahip olduğunuzda tipik sonraki adımlar, eğitim verisinin özellik seçimi ve özellik mühendisliği içerir. Özellik seçimi, tahmin edici bir regresyon modeli veya sınıflandırıcısı oluşturmak için hangi özelliklerin bir alt kümesini seçme işlemidir. Bu genellikle modeli basitleştirme ve arttırılabilir yorumlanabilirlik, eğitim sürelerini ve hesaplama maliyetini düşürme ve gereğinden fazla öğrenme riskini azaltmaya yardımcı olur ve böylece model genellemesini geliştirir. Özellik seçimi için kullanılan bazı gelişmiş teknikler, ilke bileşeni analizi (PCA), tekil değer ayrıştırma (SVD) ve Lineer Ayrım Analizi (LDA) ‘dir.

PCA ile Veri ayıklama

Asal bileşen analizi (PCA), hangi özelliklerin sırayla verinin en çok-en az olan varyansını temsil ettiğini belirleyen bir istatistiksel tekniktir. Tekil değer ayrıştırma, PCA tarafından kullanılan daha düşük seviyeli bir lineer cebir algoritmasıdır. Doğrusal Ayırma (Linear Discriminant) analizi, bunların hem doğrusal dönüşüm teknikleri olması bakımından PCA ile yakından ilişkilidir. Bununla birlikte, PCA daha genel ve sınıf düzeyleri ile ilgilenmezken (denetimsiz/danışmansız-unsupervised), LDA daha spesifiktir ve sınıf etiketleri ile ilgilidir (denetimli/danışmanlı-supervised)

Algoritmik Model Seçimi

Seçtiğiniz algoritma ve bu algoritma yardımıyla elde edilen model, uygulamadaki gelişime göre değişebilir. Bir model seçerken dikkate alınması gerekenlerin bir listesi.
Yorumlanabilirlik (Interpretability)
Sadelik (simplicity)
Doğruluk (accuracy)
Hız (eğitim, test etme ve gerçek zamanlı işleme)
Ölçeklenebilirlik (scalability)

Model seçme stratejileri

İyi bir yaklaşım, basit modellerle başlamak ve daha sonra modeli karmaşıklığını gerektiği gibi artırabilmek ve yalnızca gerektiğinde arttırmaktır. Genel olarak, basitlik, model seçimi yoluyla büyük hassasiyet kazanımları elde edemediğiniz sürece tercih edilmelidir. Nispeten basit modeller, regresyon problemleri için basit ve çoklu doğrusal regresyon ve sınıflandırma problemleri için lojistik ve multinomial regresyon içerir.

Öğrenme Türleri    

Makine öğrenmesinin birincil kategorileri denetimli (supervised), denetimsiz (unsupervised) ve yarı denetimli (partially supervised) öğrenme olur. Bu çalışmada ilk ikisine yoğunlaşacağız. Denetimli öğrenmede, veriler modellenen hedef (response) değişkenini (etiket) içerir ve amaç, görünmeyen verilerin değerini veya sınıfını öngörmek istediğiniz anlamına gelir. Denetimsiz öğrenme, hiçbir etiket veya yanıt değişkenine sahip olmayan bir veri kümesinden öğrenmeyi gerektirir ve bu nedenle tahminden daha çok kalıp (pattern) bulma konusunda gündeme gelir.

Makine Öğrenme Hedefleri ve Çıktıları

Makine öğrenme algoritmaları öncelikle aşağıdaki çıktı türleri için kullanılır:
Kümeleme (Denetimsiz)
İki sınıf ve çok sınıflı sınıflandırma (Denetimli)
Regresyon: Tek Değişkenli, Çok Değişkenli, vb. (Denetimli)
Anomali tespiti (Kontrolsuz ve denetlenmiş)
Öneri sistemleri (kitap-ürün önerisi motoru)
Her çıktı türü için kullanılan özel algoritmalar bir sonraki bölümde açıklanacaktır, ancak önce, yukarıdaki çıktıların veya sorun türlerinin her birine genel bir bakış verelim.

Kümeleme (Clustering)

Adından da anlaşılabileceği gibi, kümeleme (clustering) belirli bir veri kümesinin yapısını ve yapısını keşfetmek için denetimsiz yapıda bir tekniktir. Varsa, gruplamaların ortaya çıkması için verileri kümelere toplayan bir süreçtir.Her küme, bir veri noktası kümesi ve bir küme merkezi ile karakterize edilir. Küme merkezi, temel olarak tüm özelliklerde, kümenin içerdiği tüm veri noktalarının ortalama (ortalama) değeridir. Sınıflandırma problemleri, önceden tanımlanmış bir sınıf veya kategoriye bir veri noktasının (başka bir deyişle gözlem) yerleştirilmesini içerir.
Bazen sınıflandırma problemleri bir gözlem sınıfına atanır ve diğer durumlarda hedef gözlemin verilen sınıfların her birine ait olasılıklarını tahmin etmektir.

Regresyon

Regresyon, bir modelin ayrı bir sınıfın aksine bir veri gözlemine sürekli bir değer (yanıt) vereceğini söylemek için sade bir kelimedir. Bunun en güzel örneği, herhangi bir günde Borsa endekslerinin kapanış fiyatını öngörmektir. Bu değer herhangi bir sayı olabilir ve bu nedenle regresyon modeli için mükemmel bir aday olacaktır. Bazen regresyon sözcüğü, aslında sınıflandırma problemleri için kullanılan veya ayrı bir kategorik yanıtı öngörmek için kullanılan bir algoritma için de kullanılabilir. İyi bir örnek verilen belirli bir değerin olasılıklarını öngören lojistik regresyondur.

Anomali Tesbiti (Anomaly Detection)

Başka bir problem türü de anomali tespitidir. Verilerin iyi davrandığını ve mantıklı bir yapıda olduğunu düşünmek isteriz ama bu genellikle geçerli değildir. Bazen, parazitler veya ölçüm hataları veya bazen sahtekarlık nedeniyle hatalı veri noktaları oluşabilir. Bazen anormal ölçümler başarısız bir donanım veya elektronik parçası olduğunun göstergesi olabilir. Bazen anormallikler gerçek bir sorunun göstergesidir ve üretim hatası gibi kolayca açıklanmazlar ve bu durumda anormallikleri tespit etmek, kalite kontrolünün yanı sıra kusurları azaltmak için atılan adımların işe yarayıp yaramadığına dair bir fikir verir. Her iki durumda da, bu anormal değerlerin bulunmasının faydalı olduğu zamanlar vardır ve bunu yapmak için belirli makine öğrenme algoritmaları kullanılabilir.

Kombine Öneri Geliştirme

Sorunun son türü bir öneri sistemi ile ya da öneri motoru olarak da adlandırılır. Öneri sistemleri bir tür bilgi filtreleme ve bağdaştırma sistemidir ve film, müzik, kitap, restoran, makale, ürün vb. gibi birçok uygulamada kombine tavsiyelerde bulunmayı amaçlamaktadır. En yaygın iki yaklaşım, transaction tabanlı ve gruplaşmaya dayalı filtrelemedir.

R Yazılımı ile Makine Öğrenmesi

Matenatik, istatistik ve grafik alanlarında çok kapsamlı ve çok yetenekl paketlere sahip olarak R Makine Öğrenmesi için uygun ve yeterli bir platform sağlar. Bu kısmı tamamlarken R ile kullanılabilecek algoritmaları ve bunların uygulanabileği paketleri kısaca özetleyelim. Ayrıntılar sonraki bölümün konusu olacak.
Buraya kadar ML ile temel kavram ve özellikleri özetledik. Ş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.

Denetimsiz (unsupervised) Modeller

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

Denetimli (Supervised) Modeller

En yakın komşu yöntemleri (örn., K-NN veya k-En Yakın Komşular)
Basit ve çoklu doğrusal regresyon
Lojistik regresyon
Poisson regresyonu
Bayes sınıflandırıcıları (ör. NaiveBayes)
Karar ağaçları veya rastgele orman (C4.5, C5, Gini, Random Forest)
Yapay Sinir Ağları
Perceptron yöntemleri
SVM (destek vektör makinesi)
Bunlar R platformunda çok sayıda paketle uygulanabilen ML algoritmalarıdır. Bu paketlerden en popüler olanları:

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 poplar 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 Matemetik ve iststaistik bilgisi gerektiriyorlar. Gelecek bölümde bu temel olnaları bunları kısaca açıklamaya çalışacağız.
Facebooktwittergoogle_plusredditpinterestlinkedinmail