Makine Öğrenmesi

Sadiyebuyukcukurlu
5 min readDec 23, 2020

Veriyi anlamlandırmak için matematik ve istatiksel metotlar kullanarak veriden anlam çıkarma olayıdır.

Yapay zekâ ile karıştırılmasının sebebi ikisinin de kendi çıkarımlarını üretmesidir. Oysa makine öğrenmesi yapay zekanın altında yer almaktadır.

Karşılaştıracak olursak Makine öğrenmesi kullanıcının verdiği verilerle çıkarımlarda bulunur, Yapay zekâ ise kendisine gösterilen yoldan verileri üretebilir.

Kümeleme, regresyon, sınıflandırma şeklinde ayıracak olursam kümeleme için K-ortalama, regresyon için Karar ağacı ve yapay sinir ağları, sınıflandırma için Naive Bayes i ele almak istiyorum.

Karar ağacı

Çok sayıda kayıt içeren bir veri kümesini, bir dizi karar kuralları uygulayarak daha küçük kümelere bölmek için kullanılan, basit karar verme adımları uygulanarak, büyük miktarlardaki kayıtları, çok küçük kayıt gruplarına bölerek kullanılan bir yapıdır.

Rastgelelik derecesini düşüren seçimler yaparak bilgi kazancını maksimize etmeye çalışır. Bunun için de her soruda hata fonksiyonunu tekrar hesaplayıp en düşük hataya sahip durumu seçer.

C&RT Algoritması

Bütün aşamalarda her bir grubu kendinden daha homojen grup oluşturacak şekilde alt gruplara ayırmayı hedefleyen bir yapı ile oluşturulmuştur.

Her seviyede öznitelik seçme işlemi yapılırken bağımlı değişkenler için gini ve twoing, sürekli değişkenler için ise en küçük kare sapması hesaplamaları yapılır. Bu algoritma kar, maliyet değerleri ve önceliklerin tanımlanması gibi avantajları nedeniyle günümüzde yaygındır.

Iterative Dichotomiser 3 Algoritması

Id3 algoritması entropi kuralları içeren bilgi teorisi kullanılmaktadır. Ağaç oluşturulurken öğrenme kümesindeki veriler mümkün olduğunca birbirine benzer hale getirilir ve böylece ağaç ile karmaşıklık minimuma indirilir.

“N” sınıf etiketine sahip bir veri setindeki entropi değer aralığı:

0 < entropi < log2n şeklindedir.

Entropi değeri 1’e yaklaştıkça belirsizlik artar, 0’a yaklaştıkça azalır.

Id3 algoritmasını adım adım uygulayacak olursak;

• Ağaca dahil edilmemiş olan bütün niteliklerin entropi değerleri hesaplanır

• En düşük entropi değerine sahip olan nitelik seçilerek ağaca dahil edilir

  • Her yol için bu adımlar tekrarlanır.

ID3 için matematiksel örnek

her adımda tekrar tekrar entropi hesaplaması yapılır.

Info(d)=ı(5,9) = -5/14 * log2(5/14) -9/14 * log2(9/14) = 0,92

Info-bakım(d) = 8/14 * I(4,4) + 6/14 * I(1,5)

= 8/14 * (-4/8 * log2(4/8)-4/8 * log2(4/8)) + 6/14 * (-1/6 * log2(1/6) -5/6 * log2(5/6))= 0,56

Info-fiyat(d) = 8/14 * I(5,3) + 6/14 * I(0,6)= 8/14 * (-5/8 * log2(5/8)-3/8 * log2(3/8)) + 0 = 0,51

Info-güvenlik(d) = 4/14 * I(0,4) + 6/14 * I(2,4) + 4/14 * I(3,1)= 0 + 6/14 * (-2/6 * log2(2/6)-4/6 * log2(4/6)) + 4/14 * (-3/4 * log2(3/4) -1/4 * log2(1/4)) = 0,59

Info-kişi(d) = 7/14 * I(3,4) + 7/14 * I(2,5)= 7/14 * (-3/7 * log2(3/7)-4/7 * log2(4/7)) + 7/14 * (-2/7 * log2(2/7) -5/7 * log2(5/7)) = 0,88

Info-bakım(D) = 5/8 * I(4,1) + 3/8 * I(1,2)= 5/8 * (-4/5 * log2(4/5) -1/5 * log2(4/5))+3/8 *(-1/3 * log2(1/3) -2/3*log2(2/3))= 0,3

Info-güvenlik(D) = 2/8 * I(0,2) + 2/8 * I(2,0) + 4/8 * I(3,1)= 0 + 0 + 4/8 * (-3/4 * log2(3/4) — 1/4 * log2(1/4)) = 0,4

(her adımda yapılan işlemler örnek oldugu için eklenmemiştir)

ID3 Python örneği

İşlemlerin yapılacağı asıl kod

· Info_d+=(uniquedictionary[ud]/tuplesamt)*\math.Log(uniquedictionary[ud]/tuplesamt, 2)

· Print(“p”+str(uniqueclasses.İndex(ud)+1)+” = “ +str(uniquedictionary[ud])+”/”+str(tuplesamt)+” =”+str(uniquedictionary[ud]/tuplesamt) +”, log2(p” + str(uniqueclasses.İndex(ud)+1)+”) = “+str(math.Log(uniquedictionary[ud]/tuplesamt, 2)) + “, P”+str(uniqueclasses.İndex(ud)+1)+ “ X log2(p” + str(uniqueclasses.İndex(ud)+1) + “) = “+ str((uniquedictionary[ud]/tuplesamt) *math.Log(uniquedictionary[ud]/tuplesamt,2)))

· Info_d = -ınfo_d

· Print(“ınfo(d) = “ + str(ınfo_d)+”\n”)

Return(ınfo_d)

· Info_d = -ınfo_d

· Print(“ınfo(d) = “ + str(ınfo_d)+”\n”)

===== Splitting on String Type =====

|D3| / |D| = 4/20 = 0.2

#Tuples = 4

{‘C1’: 3, ‘C0’: 1}

p1 = 3/4 = 0.75, log2(p1) = -0.4150374992788438, p1 x log2(p1) = -0.31127812445913283

p2 = 1/4 = 0.25, log2(p2) = -2.0, p2 x log2(p2) = -0.5

Info(D) = 0.8112781244591328

Info[String Type] (D) = 0.3796814021716651

Gain(StringType) = 1.0–0.3796814021716651 = 0.6203185978283349

:

Info[Guitar] (D) = 0.8264662506490406

Gain(Guitar) = 1.0–0.8264662506490406 = 0.17353374935095944

bestInfoGain = Gain(StringType) = 0.6203185978283349

Yapay sinir ağları

İnsan beyninin bilgi işleme tekniğinden esinlenerek geliştirilmiş bir bilgi işlem teknolojisidir. Basit biyolojik sinir sisteminin çalışma şekli taklit edilir.

Biyolojik sistemlerde öğrenme, nöronlar arasındaki sinaptik bağlantıların ayarlanması ile olur.

İnsan beyninde öğrenme, eğitme yoluyla örnekler kullanarak olur; başka bir deyişle, gerçekleşme girdi/çıktı verilerinin işlenmesiyle, yani eğitme algoritmasının bu verileri kullanarak bağlantı ağırlıklarını bir yakınsama sağlanana kadar, tekrar tekrar ayarlamasıyla olur.

Backpropagation — Multilayer Perceptron (Çok Katmanlı Algılayıcı) Algoritması

Backpropagation modeli, yapay sinir ağları içerisinde hemen hemen her probleme rahatlıkla uyarlanabilir bir yapıyı oluşturmaktadır.

K-ortalama kümeleme

N adet veri nesnesinden oluşan bir veri kümesini giriş parametresi olarak verilen K adet kümeye bölümlemektir. Amaç, elde edilen kümelerin, küme içi benzerliklerinin maksimum ve kümeler arası benzerliklerinin ise minimum olmasını sağlamaktır.

• Algoritma temel olarak 4 aşamadan oluşur:

• 1.Küme merkezlerinin belirlenmesi

• 2.Merkez dışındaki verilerin mesafelerine göre kümelendirilmesi

• 3.Yapılan kümelendirmeye göre yeni merkezlerin belirlenmesi (veya eski merkezlerin yeni merkeze kaydırılması)

  • 4.Kararlı hale gelinene kadar 2. Ve 3. Adımların tekrarlanması.

excel kullanarak yaptığım bir çalısmayı örnek olarak gösterecek olursam;

uzaklık formulü ile verilen verileri dağınık halden kümelenmiş hale getiriyorum.

Naive Bayes

Olasılık değeri en yüksek olana göre sınıflandırma yapar.

Örneğin Hava durumuna göre futbol oynayıp oynayamayacağımızı hesaplar.

P(A/B)= B olayı gerçekleştiginde A olayı olasılığı

P(B/A)= A olayı gerçekleştiğinde B olayı olasılığı

P(A)= A olayının olma olasılığı

P(B)= B olayının olma olasılığı

--

--