k-En yakın komşular (k-Nearest Neighbors)

k-En yakın komşular algoritması en basit makine öğrenimi algoritmalarından biridir. Bir örnekle inceleyelim. Elimizde kırmızı ve yeşil olarak sınıflandırılmış noktalar olsun. Yıldız noktasının sınıfını tahmin etmek istiyoruz. Yıldız noktasına en yakın noktalar "komşu" olarak adlandırılır. Algoritmanın adındaki k sayısı sınıflarına bakılacak komşu sayısıdır. Noktanın komşuları en çok hangi sınıfa ait ise, tahmin o sınıftır. k=3 … Okumaya devam et k-En yakın komşular (k-Nearest Neighbors)

Reklamlar

Karar Ağaçları (Decision Trees) – 2

Her bir düğüm (node) gini özelliğine sahiptir: gini özelliği o düğümün "kirlilik" (impurity) ni ölçer: Eğer o düğümdeki eğitim örneklerinin hepsi aynı sınıftan ise, düğüm saftır (gini = 0) denir. Formulü ise: CART Algoritması Scikit-Learn'in karar ağaçları için CART algoritmasını kullandığını bir önceki yazıda söylemiştim. Algoritmadan bahsedelim: algoritma ilk olarak eğitim verilerini tek bir öznitelik … Okumaya devam et Karar Ağaçları (Decision Trees) – 2

Karar Ağaçları (Decision Trees) – 1

Karar ağaçları, destek vektör makineleri gibi oldukça güçlü bir makine öğrenimi algoritmasıdır. Hem regresyon hem de sınıflandırma problemleri için kullanılabilirler. Ayrıca ileride değineceğimiz rastgele ormanlar (random forests) algoritmasının temel bileşenidir. Karar ağaçlarını daha kolay anlayabilmek için bir örnek yapalım ve nasıl tahmin ettiğine bakalım. Yine Iris verisetini kullandık. Karar ağacını görselleştirebilmemiz için öncelikle graf tanım … Okumaya devam et Karar Ağaçları (Decision Trees) – 1

Rastgele Ağaçlar ile Kredi kartı dolandırıcılık tespiti

Verisetini buradan indirebilirsiniz. Verisetimiz, 284,807 kredi kartı işlemi içermektedir. 28 tane anonimleştirilmiş ve normalize edilmiş öznitelik içermektedir. Normalleştirme işlemi, tüm özniteliklerin değerlerinin aynı aralıkta olmasını sağlar. Anonimleştirme ve normalleştirme işlemi Temel Bileşen Çözümlemesi (Principal Component Analysis - PCA) ile yapılmıştır. Bu algoritmaya ileride değineceğiz. Verisetimiz, ayrıca, kredi kartı işleminin ne zaman gerçekleştiğini belirten bir zaman değişkeni ve … Okumaya devam et Rastgele Ağaçlar ile Kredi kartı dolandırıcılık tespiti

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 8

Bir kısıtlanmış optimizasyon problemi (primal problem) için, oldukça benzer başka bir problem (dual problem) ifade edilebilir. Dual problemin çözümü, genelde, primal problemin çözümü için bir alt sınır verir. Ancak, amaç fonksiyonu konveks, eşitsizlik kısıtlamaları (inequality constraints) sürekli türevlenebilir ve konveks fonksiyonlar ise, primal ve dual problemlerin çözümleri aynıdır. DVM problemi de bu koşulları sağladığından, primal problem veya … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 8

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 7

Karar Fonksiyonu ve Tahmin Doğrusal DVM sınıflandırıcısı, yeni $latex x$ örneğinin sınıfını karar fonksiyonunu hesaplayarak tahmin eder. Karar fonksiyonu, $latex w^T \cdot x + b$ pozitif ise, $latex \hat{y}$ tahmini pozitif sınıf(1), değilse negatif sınıf(0) olur. Burada $latex b$, yanlılık terimi, $latex w$ ise ağırlık vektörüdür. Aşağıdaki grafikte Iris veriseti üzerindeki bir modelin karar sınırını … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 7

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 5

Polinomial Çekirdek (Polynomial Kernel) Verisetine polinomial öznitelikler eklemek basit ve kullanışlı ve ayrıca diğer makine öğrenimi modellerinde de kullanılabilmesine rağmen, düşük dereceden polinomlar, karmaşık verisetlerinde işe yaramaz, yüksek dereceden polinomlar ise modele yüksek sayıda öznitelik ekleyerek, oldukça yavaşlatmaktadır. DVM kullanırken, çekirdek hilesi (kernel trick) olarak adlandırılan bir teknik kullanabiliriz. Çekirdek hilesini daha ileride detaylıca açıklayacağım. … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 5

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 4

Nonlineer DVM ile sınıflandırma Doğrusal DVM sınıflandırıcıları birçok durumda iyi sonuç versede, bir çok veriseti doğrusal-ayrılabilir (linearly seperable) değildir. Bu problem için yaklaşımlardan biri, nonlineer verisetlerine polinomial öznitelikler eklemektir. Soldaki grafikte, veriseti sadece $latex x_1$ özniteliğini içermektedir. Bu veriseti doğrusal-ayrılabilir değildir. Ama, $latex x_2 = (x_1)^2$ özniteliğini bu verisetine eklersek, doğrusal-ayrılabilir hale gelmektedir (Sağdaki grafik). … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 4

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 3

Artık python ile bir örnek yapalım. Örneğimizde Iris verisetini kullanacağız. İlk olarak gerekli modülleri ve fonksiyonları içeri aktardık. X değişkenimize Iris verisetindeki yaprak uzunluğu ve yaprak genişliği özniteliklerini atadık. Iris veriseti üç farklı yaprak çeşidi içermektedir (Setosa, Versicolour, ve Virginica). y değişkenine de eğer Virginica ise 1, değilse 0 değerlerini atadık. Makine öğrenimi için "pipeline" oluşturduk. … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 3

Destek Vektör Makineleri (Support Vector Machines – SVMs) – 2

Eğer tüm veri örneklerinin, cadde dışında ve caddenin sağında olmasını zorunlu tutarsak, bu hard margin classification olarak adlandırılır. Bu, iki önemli problem yaratmaktadır. Birincisi, hard margin classification, veriler sadece doğrusal ayrılabilir ise işe yaramaktadır. İkincisi ise aykırı noktalara karşı hassas olmasıdır. Yukarıdaki grafikte, iris verisetine bir tane aykırı nokta eklenmiştir. Karar sınırı ise, bir önceki yazımızdakinden … Okumaya devam et Destek Vektör Makineleri (Support Vector Machines – SVMs) – 2