Makine Öğrenmesi dersinin giriş konusu olan Kavram Öğrenmesi(Concept Learning) konusunun anlaşılması için verilen ilk örnek Find-S Algoritması’dır.

Makine Öğrenmesi konusunda ana kaynak Tom M. Mitchell’in yazmış olduğu Machine Learning kitabıdır. Aşağıdaki bilgiler oradan okuyup, anladığımı yazdıklarımdan oluşmaktadır.

Kavram öğrenmesi, giriş olarak verilen eğitim verilerinden boole(doğru veya yanlış gibi) bir çıkış değeri üretmeye yarayan bir öğrenme yaklaşımıdır. Genel hipotezi özelleştirmeye çalışır.

En genel hipotez: (?, ?, ?, ?, ?, ?)
En özel hipotez: (∅,∅,∅,∅,∅,∅)

Aşağıdaki bilgiler ekseninde:

find-s-algoritmasi-1

Genelden özele hipotez çıkarımları yapılır. Örneğin:
h1=⟨Sunny,?,?,Strong,?,?⟩
h2=⟨Sunny,?,?,?,?,?⟩

h1 hipotezi h2 hipotezinden daha özeldir. Çünkü görüleceği üzere h1’de iki özellik etkindir h2’de ise bir özellik etkindir. h2 hipotezi h1 hipotezine göre daha geneldir de diyebiliriz. h1 için olumlu sonuç üreten her örnek, h2 içinde olumlu sonuçlanacaktır.

Find-S Algoritması

h hipotezini tüm hipotezleri içeren H kümesinde en özel olarak başlat. Eğitim setindeki negatif örnekleri dikkate alma. Sadece pozitif örnekleri inceleyerek sırayla başlıyoruz.

Küme içindeki elemanların anlamları sırasıyla aşağıdaki gibidir:
{Sky,Temp,Humid,Wind,Water,Forecast,Enjoy Sport?}

h hipotezini boş olarak başlıyoruz.
h=⟨∅,∅,∅,∅,∅,∅⟩

İlk örneğimizi alıyoruz.
⟨ Sunny,Warm,Normal,Strong,Warm,Same⟩

Daha önceki hipotez içeriği boş olduğundan aynısını yazıyoruz.

2.adımda 2.örneği alıyoruz.
⟨Sunny,Warm,High,Strong,Warm,Same⟩ mevcut h ile gelen örnek arasında farklı olan, yani değişken olduğu halde sonuca bir etkisi olmayan durumu ? ile değiştiriyoruz. Buradan anlaşılacağı üzere Humid değeri Normal de olsa High da olsa sonuç pozitifse artık bu parametreyi dikkate alma!

3.örneği almadan h=⟨ Sunny,Warm,?,Strong,Warm,Same⟩ durumunu almıştır.
3.örnek Negatif bir sonuca sahip olduğundan sisteme dahil etmiyoruz.

4.örnek olan ⟨ Sunny,Warm,High,Strong,Cool,Change⟩ elimizdeki h ile kıyaslandığında ⟨ Sunny,Warm,?,Strong,?,?⟩ sonucu elde edilir. Görüleceği üzere Water=Warm da olsa Warm=Cool da olsa ve Forecast=Same de olsa Forecast=Change de olsa sonuç pozitifse bu parametrelerin nihai sonuca bir etkisi yoktur.

4 örnek olduğundan en genel hipotezimizi elde etmiş olduk. ⟨ Sunny,Warm,?,Strong,?,?⟩

Find-S algoritması gürültülü ve tutarsız eğitim verileri iyi sonuçlar vermez.

Find-S algoritmasının yukarıdaki verilerle Matlab ortamında kodlanmış hali:

%% Eğitim verisi 

data={'Sunny','Warm','Normal','Strong','Warm','Same','Yes';
    'Sunny','Warm','High','Strong','Warm','Same','Yes';
    'Rainy','Cold','High','Strong','Warm','Change','No';
    'Sunny','Warm','High','Strong','Cool','Change','Yes'};

%% Olumlu örnekler olumlu, olumsuzlar olumsuz içerisine taşınır
[satir sutun]=size(data);
k=1;
l=1;
for i=1:satir
    if strcmp(data(i,sutun),'Yes')
        olumlu(k,:)=data(i,:);
        k=k+1;
    else
        olumsuz(l,:)=data(i,:);
    end
end
%% Find-S algoritması başlatılır. 
[olumlusatir olumlusutun]=size(olumlu);
h={'x','x','x','x','x','x'};

%% İlk adımda ilk olumlu eğitim verisi hipotez olarak alınır
h(1,:)=olumlu(1,1:(olumlusutun-1));

%% Tüm satır ve sütunlardaki içerikler kıyaslanır aynı olmama durumunda ? yazılır.
for i=1:(olumlusatir-1)
    for j=1:(olumlusutun-1)
        if strcmp(h(1,j),olumlu(i+1,j))
        else
            h(1,j)={'?'};
        end
    end
end

%% Bulunan sonuç hipotezi yazdırılır
h

Kaynak: http://jmvidal.cse.sc.edu/talks/conceptlearning/

  1. Pingback: Kavram Öğrenimi (Concept Learning) yöntemleri nelerdir? – Ahmet Cevahir ÇINAR

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir