Buradasın
Yapay Zeka ve Makine Öğrenmesi Sınıflandırma Algoritmaları Eğitimi
youtube.com/watch?v=lECbGh99i-8Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan yapay zeka ve makine öğrenmesi dersinin bir bölümüdür. Eğitmen, sınıflandırma algoritmaları konusunu MATLAB'in classification learner toolbox'u üzerinden pratik bir şekilde anlatmaktadır.
- Video, sınıflandırma algoritmalarının tanımı ve kullanım alanlarıyla başlayıp, en çok kullanılan algoritmaları (yapay sinir ağları, destek vektör makineleri, en yakın komşuluk algoritması ve karar ağaçları) detaylı olarak ele almaktadır. Eğitmen, her bir algoritmanın çalışma prensibini, model oluşturma, eğitim ve test süreçlerini, performans değerlendirme kriterlerini (doğruluk oranı, sensitivity, specificity, F ölçümü, AUC değerleri) adım adım göstermektedir.
- Videoda ayrıca, veri setlerinin nasıl yüklenip ayrıştırılacağı, ROC eğrileri, confusion matrix gibi görselleştirme araçlarının nasıl kullanılacağı ve modellerin nasıl dışa aktarılacağı da anlatılmaktadır. Eğitmen, farklı sınıflandırıcıların karşılaştırılması ve ensemble yöntemlerinin kullanımı gibi konuları da kapsamakta, doktora tezinde kullanılan bir uygulama örneği üzerinden pratik bilgiler sunmaktadır.
- 00:29Yapay Zeka'da Sınıflandırma Algoritmaları
- Yapay zeka'da sınıflandırma algoritmaları, nesneleri, cisimleri veya karar mekanizmalarını sınıflara ayırmak için kullanılan algoritmaların genel adıdır.
- Sınıflandırma algoritmaları hasta-sağlıklı, bir-iki-üç şeklinde sayısal, araba-bardak şeklinde nesneler veya ağaç-ev şeklinde sınıflandırma yapılabilir.
- Sınıflandırma işleminde önemli olan iki faktör vardır: sınıflandırma sayısı ve özellik sayısı; özelliklerin iyi belirlenmesi sınıflandırıcının performansını artırır.
- 01:55Sınıflandırma Algoritmaları
- En çok kullanılan sınıflandırma algoritmalarından biri çok katmanlı, ileri beslemeli yapay sinir ağlarıdır.
- Diğer yaygın sınıflandırma algoritmaları arasında destek vektör makineleri, en yakın komşuluk algoritması ve karar ağaçları bulunmaktadır.
- Sınıflandırıcılar kullanıldıktan sonra performans değerlendirme kriterleri hesaplanmalıdır ki sınıflandırıcının verileri ne kadar iyi öğrenip tahmin ettiğini kontrol edilebilsin.
- 03:24MATLAB Toolbox'ı ve Veri Seti
- MATLAB'in kendi toolbox'ı ve kod yazarak sınıflandırma yapılabilir.
- Kullanılacak veri setinde 226 tane özellik ve etiket (sınıf) bulunmaktadır.
- Veri setinde iki farklı sınıf bulunmakta: 10491 adet bir numaralı ve 10491 adet iki numaralı veri vardır.
- 06:09Sınıflandırma İşlemi
- Sınıflandırma işleminde öncelikle özellikler sınıflandırıcıya verilir, sınıflandırıcı eğitim modeli oluşturur.
- Oluşturulan model kullanılarak test verileri verilir ve yapay zeka çıkış üretir.
- Gerçek cevaplarla yapay zeka tarafından üretilen cevaplar karşılaştırılır ve performans değerlendirme kriterleriyle sistem performansı değerlendirilir.
- 07:35MATLAB Classification Learner Toolbox
- MATLAB'da Classification Learner toolbox, sınıflandırma işlemleri için hazır bir araç sunar.
- Bu toolbox kullanılarak işlem yapıp sonuç üretilir ve aynı zamanda kodlar da gösterilir.
- Toolbox'da ayrıca yapay sinir ağlarına ait birçok toolbox bulunmaktadır.
- 09:08Classification Learner Toolbox Kullanımı
- Sınıflandırıcılar kullanılırken matematiksel detaylara çok takılmamak, nasıl eğitileceği ve nasıl cevap alınacağına odaklanmak önemlidir.
- Toolbox'da "New" seçeneği ile workspace'deki veriler aktarılabilir.
- Eğitim sırasında veri seti beş farklı parçaya bölünerek doğrulama yapılabilir veya doğrulama yapılmadan sadece eğitim yapılabilir, ancak bu durum aşırı öğrenme (ezberleme) riski taşır.
- 11:29Sınıflandırma Sisteminin Başlatılması ve Veri Görselleştirme
- Sistem, verileri alıp bir model oluşturup numaralandırarak yerleştiriyor ve üstteki menüler yavaş yavaş aktif olmaya başlıyor.
- Sistem veriyi tanıdıktan sonra, bir ve iki numaralı etikete sahip verileri grafiksel olarak x-y eksenine diziyor; x ekseninde kolon birdeki özellikleri, y ekseninde de özellik ikiyi gösteriyor.
- Veri görselleştirmesinde, kullanıcılar sağ taraftan x ve y eksenlerini değiştirebiliyor ve veriyi görsel olarak istedikleri şekilde düzenleyebiliyorlar.
- 12:33Eğitim ve Toolbox Kullanımı
- "Train" sekmesinden eğitim başlatılabilir, ancak toolbox kullanılarak sistem eş zamanlı olarak farklı sınıflandırıcıları çalıştırabiliyor.
- Toolbox açıldığında, sol taraftaki "history" kısmında birkaç tane sınıflandırıcı aynı anda eğitilebiliyor.
- Sistem, 226 tane özellik kullanarak yaklaşık 3000 özelliğe karşılık %95,50 doğruluk oranı elde ediyor.
- 13:38Sınıflandırıcı Performans Değerlendirme
- Performans değerlendirmesi için "plot" kısmında scatter plot, confusion matrix ve ROC curve gibi grafikler kullanılabiliyor.
- Confusion matrix (karmaşıklık matrisi) tahmin edilen değerleri gerçek değerlerle karşılaştırıyor ve doğru tahminler (mavi), yanlış tahminler (turkuaz ve hafif krem rengi) gösteriyor.
- ROC curve, sistemin performansını gösteren bir grafik; eğrinin (1,1) köşeye yakınsa sistem daha iyi çalışıyor demektir ve AUC değeri maksimum 1 olabilir.
- 16:32Farklı Sınıflandırıcılar ve Model Oluşturma
- Sınıflandırıcı sayısını artırmak için "model type" seçeneğinden farklı sınıflandırıcılar seçilebilir.
- Hızlı modellerde karar ağacı, KNN gibi farklı sınıflandırıcıların farklı versiyonları kullanılabilir.
- Sınıflandırıcılar çalıştıktan sonra en iyi performans gösteren model kutucuk içerisine alınıp işaretleniyor.
- 17:55Modeli Kodlara Aktarma ve Kullanımı
- Sınıflandırıcı modelini kendi kodlarda kullanmak için "export" kısmından "export plot to figure" veya "general function" seçenekleri kullanılabilir.
- "General function" seçeneği, modelin nasıl çalıştığını gösteren bir fonksiyon oluşturuyor.
- Fonksiyon içerisinde "train classification" kısmı modelin oluşturulduğu kısım, "predict" komutlarıyla veriler tahmin ediliyor ve doğruluk oranları hesaplanıyor.
- 21:22Sınıflandırıcı Fonksiyonu Kullanımı
- Fonksiyon ismi hazırlanırken köşeli parantez içerisinde çıkış değerleri, diğer tarafta giriş değeri belirtilir.
- Training data, workspace'deki datayı ifade eder ve bu verilerle doğrulama doğruluk oranı ve eğitimli sınıflandırıcının değerleri dışarıya alınabilir.
- Kod çalıştırıldığında model ve sınıflandırıcının doğruluk oranı (0 ile 1 arasında) ekrana yazdırılır.
- 22:47Kodun Kısıtlamaları
- Kod, veri setinin özellik sayısına özel olarak hazırlanmıştır, bu nedenle özellik sayısı değiştiğinde kod çalışmayabilir.
- Yeni veri seti için, toolbox'ta yeni bir sınıflandırıcı oluşturulmalı ve performansı kontrol edilmelidir.
- Mevcut kodun kullanım şekli, veri setinin özellik sayısına bağlıdır.
- 23:49K-En Yakın Komşu (KNN) Algoritması
- KNN algoritması, verileri X-Y eksenine özelliklere göre dizerek çalışır.
- Yeni bir veri geldiğinde, bu verinin çevresindeki en yakın komşular kontrol edilir ve komşuların çoğunluğu yeni verinin sınıfını belirler.
- KNN'de uzaklık hesaplamaları Öklid formülü gibi yöntemlerle yapılır ve en yakın komşuların sayısı (k değeri) sınıflandırma işlemini etkiler.
- 26:39KNN Uygulaması
- Veri seti eğitim ve test veri seti olarak %50-%50 oranında ayrılır.
- KNN sınıflandırıcısı kullanılarak bir model oluşturulur ve eğitim verileri ile test edilir.
- Performans değerlendirme kriterleri (doğruluk, hassasiyet, spesifite, F ölçümü ve AUC değeri) kullanılarak modelin performansı değerlendirilir.
- 30:51KNN Sınıflandırıcısının Performans Değerlendirilmesi
- Eğitim verilerinde performans parametreleri 1 (mükemmel) değerini almış, doğruluk oranı ise 100% olarak ifade ediliyor.
- Test verileri (hiç görmediği sorular) için doğruluk oranı %83,76 olarak hesaplanıyor.
- Performans parametrelerinde sensivity ve specifity değerleri, bir numaralı sınıf için %80, iki numaralı sınıf için yaklaşık %88 doğruluk oranı veriyor.
- 33:50Diğer Sınıflandırıcıların Kullanılması
- KNN algoritması dışında destek vektör makineleri (SVM), karar ağaçları ve ensemble sınıflandırıcıları gibi farklı yapılar kullanılabilir.
- Toolbox'tan farklı sınıflandırıcıları otomatik olarak test edebilme özelliği sunuluyor.
- KNN, SVM, ensemble classification ve karar ağaçları gibi toplam 25 farklı sınıflandırıcı modeli oluşturulabiliyor.
- 36:28Cross Validation ve Ensemble Yöntemleri
- Veri setini %100 doğru tahmin etmek yerine, cross validation (veriyi beş parçaya bölerek) kullanarak daha gerçekçi sonuçlar elde ediliyor.
- Ensemble sınıflandırıcılar, zayıf sınıflandırıcıları birleştirerek daha yüksek doğruluk oranları sağlayabiliyor.
- Ensemble yöntemleri, zayıf sınıflandırıcıları bir araya getirerek (örneğin dört kişi bir yükü kaldırmak gibi) daha iyi sonuçlar veriyor.
- 40:25Grafiklerin Kaydedilmesi
- Oluşturulan grafikler "Export Figure" seçeneği ile dışarıya aktarılabilir.
- Grafikler .fig uzantısıyla MATLAB'in kendi formatında kaydedilebilir veya düzenlenebilir formatlarda (JPEG gibi) kaydedilebilir.
- Grafikler sonradan açılabilir ve ayarlanabilir, çözünürlük gibi özellikler değiştirilebilir.
- 41:43Grafik Değerlerinin Tanımlanması
- Legend dediğimiz grafik değerlerindeki alanların tanımlamaları gösterilmektedir.
- Mavi çizgi rock eğrisinin sınırlarını gösterir ve mavi taralı alan rok'un altında kalan alan yani aug parametresi %95 değerini ifade eder.
- Current class fair de son sınıflandırdığı elemanın değerlerini gösterir ve bu değer 0,95 olarak belirtilmiştir.
- 42:12Grafik Düzenleme ve Kod Alma
- Grafikleri mouse ile taşıyabilir ve kaydedebilirsiniz, ancak PowerPoint veya Photoshop gibi uygulamalarda kullanmak resmin kalitesini düşürebilir.
- Grafik kodunu almak için sağ tıklayıp "Show Code" seçeneğini kullanabilirsiniz.
- Kod, fonksiyon şeklinde oluşturulur ve legend pozisyonu koordinatlarla ayarlanır.
- 43:46Sınıflandırma Modelleri
- Önceki hafta destek vektör makineleri (SVM) anlatılmıştır.
- En iyi SVM modeli "sm 86 quadratic model" olarak belirlenmiş ve bu modelin kodu kullanılmıştır.
- KNN sınıflandırıcısından SVM sınıflandırıcısına geçiş için sadece model adını "knn" yerine "svm" olarak değiştirmek yeterlidir.
- 45:02SVM Modelinin Performansı
- SVM modeli cross validation sırasında %86 doğruluk oranı elde etmiştir.
- Eğitim doğruluk oranı %95'te başlamış, sensitivity %93, specificity %97 değerlerine sahip olup, kararlık KN'ye göre daha iyi sonuç vermiştir.
- Test kısmında %81 doğruluk oranı, sensitivity ve specificity yaklaşık %0,80-0,81, F ölçümü %81 ve AUC değeri (ROC altında kalan alan) %0,81 civarında gözüküyor.
- 46:16SVM Modelinin Parametreleri
- SVM modelinde kullanılan fonksiyon, polinom ve polinomun derecesi (2) otomatik olarak belirlenmiştir.
- Parametreleri değiştirmek için "fit svm" yazıp "help" komutu kullanarak detaylı bir doküman görüntülenebilir.
- Dokümanda kullanılabilir fonksiyonlar (gauss, line, polinom, rbf), scale, polinom derecesi, standart vize gibi parametrelerin detayları bulunmaktadır.
- 49:00Ensemble Sınıflandırıcısı
- En iyi sınıflandırıcı "ansible buggt" olarak çıkmıştır.
- Ensemble modelinde, modelin oluşturulması için önce bir ağaç oluşturulur ve bu ağacın yapısı üstteki tarafta belirlenir.
- Ensemble modelinde 2987 sayısı özellik sayısından gelmektedir.
- 50:42Ensemble Sınıflandırma Modeli
- Eğitim modeli %100 başarıyla tamamlandı ve test performansı %84 doğruluk oranı, sensitivity ve specificity %85 civarında, F ölçümü ve kapasite %85 civarında, AUC değeri ise 0,69'dur.
- Ensemble sınıflandırıcı kodu, daha önce oluşturulan kodları alıp ensemble kodlarıyla birleştirerek model oluşturur ve uzun sürede çalıştırmanın faydası vardır.
- Sınıflandırıcı sayısı arttığında bazı sınıflandırıcılar uyum sağlamayabilir veya hata verebilir, örneğin SRM sadece iki sınıfta çalışırken üç sınıfa çıktığında hata verebilir.
- 53:11Yapay Sinir Ağları
- Yapay sinir ağları, giriş katmanı, gizli katmanlar ve çıkış katmanından oluşan üçlü bir yapıya sahiptir; gizli katman sayısı arttıkça aradaki matematiksel işlemler artar.
- Yapay sinir ağlarında giriş özelliklerinin ağırlık değerleri (w) ile çarpılıp gizli katmana aktarılır, gizli katmanda toplama çıkartma işlemleri yapılarak çıkış katmana aktarılır.
- Yapay sinir ağları, insan beyninin matematiksel modeli olarak düşünülebilir; nöronlar beyindeki sinir hücrelerine, ağırlık katsayıları ise sinir hücreler arasındaki iletişime benzer.
- 58:34Yapay Sinir Ağı Uygulaması
- Yapay sinir ağı modeli oluşturulduktan sonra ayrı bir eğitim işlemi gerçekleştirilir ve eğitim sırasında w ve b değerleri ile toplama çıkartma işlemleri yapılır.
- Eğitim sırasında doğrulama ve hata grafikleri görüntülenebilir, bu grafikler modelin performansını gösterir.
- Yapay sinir ağı modelinde giriş verileri w ağırlık katsayılarıyla çarpılıp b sabit sayılarla toplanarak gizli katmana aktarılır, çıkış katmanında ise tekrar w ile çarpılıp b ile toplanarak etiket değerleri elde edilir.
- 1:01:50Yapay Sinir Ağı Modelinin Eğitimi
- Model oluşturuldu ve içerisine on nöron yerleştirildi.
- Model eğitilirken girişteki özellik sayısı 225 olarak belirtildi.
- Eğitim süreci tamamlandıktan sonra modelin performansı test edildi.
- 1:02:32Modelin Performans Değerlendirilmesi
- Eğitilen ağ modeline sorular sorularak cevaplar küsüratlı değerler olarak elde edildi.
- Yapay sinir ağı, bir verinin farklı sınıflara ait olma olasılıklarını aynı anda hesaplayabilir.
- Çıkan sayısal değerler yuvarlanarak 1 veya 2 olarak sınıflandırıldı.
- 1:03:21Eğitim ve Test Performansı
- Eğitim verileri için sınıflandırıcının doğruluk oranı %50-86 olarak hesaplandı.
- Sensitivity, specificity ve F ölçümü değerleri %86 civarında çıktı.
- Test verileri için performans hesaplanırken, veri setindeki yanlış etiketler nedeniyle hata oluştu.
- 1:04:24Test Verilerinin Düzenlenmesi ve Sonuçlar
- Test verilerindeki yanlış etiketler (sıfır ve eksi bir) düzeltildi.
- Düzenlenen test verileri için performans %80 doğruluk, sensitivity %82, specificity %0,82 ve %0,79, F ölçümü %80 civarında çıktı.
- Yuvarlama işlemi yaparken yeni etiketler türetme dezavantajı olduğunu belirtildi.
- 1:06:08Kapanış
- Yapay sinir ağları basit başlayıp zamanla gelişen bir alandır.
- Sınıflandırma için tek bir algoritma kullanarak uygulama yapmanın problemlere çözüm üretmesi gerektiğini vurguladı.
- Bir sonraki derste görüşmek üzere veda edildi.