21
Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ 1 Bilim adamı fisher, İris çiçeğini çeşitli ölçümler neticesinde yukarıda görüldüğü gibi 3 türe ayrılarak sınıflandırmıştır. Bu sınıflandırmada kullanılan ölçümler çanak yaprak genişliği, çanak yaprak uzunluğu, taç yaprak genişliği ve taç yaprak uzunluğu olmuştur. Bu değerler neticesinde üstte görüldüğü gibi iris çiçeği 3 tür olarak sınıflanmıştır. Bu ölçüm değerlerinin küçük bir bölümü aşağıda verilmiştir. A: Çanak Yaprak Uzunluğu(sepal length) B: Çanak Yaprak Genişliği(sepal width) C: Taç Yaprak Uzunluğu(petal length) D: Taç Yaprak Genişliği (petal width) E: İris çiçeğinin türleri Bu durumda A,B,C,D değerleri giriş ve E değeri ise çıkış değerini oluşturmaktadır. A B C D E 5.1 3.5 1.4 0.2 setosa 4.9 3 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 5.2 2.7 3.9 3.4 versicolor 6.3 2.9 5.6 1.8 virginica Toplamda 45 adet ölçülmüş veri bulunmaktadır.(Asıl veri kaynağı 150 adet veri içeriyor.) Veriler cm cinsinden ölçülmüştür. Bu çalışmadaki asıl amacımız bu 45 adet veri dışında bize bir veri verilseydi bu veriler doğrultusunda E değerini tahmin etmek olacaktır. Bu durumda Verilerimizi Eğitim ve test olarak 2 kısma ayıracağız. Önce eğitim verilerimizle ağımızı eğitip, sonra eldeki gerçek test verilerini ağ üzerinde doğru sonuç verip vermeyeceklerini deneyeceğiz. iris setosa iris versicolor iris virginica

iris setosa iris versicolor iris virginica · Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ 3 Alttaki değerleri uygulamak için Önce A sütununun ilk değerine

Embed Size (px)

Citation preview

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

1

Bilim adamı fisher, İris çiçeğini çeşitli ölçümler neticesinde yukarıda görüldüğü gibi 3 türe

ayrılarak sınıflandırmıştır. Bu sınıflandırmada kullanılan ölçümler çanak yaprak genişliği,

çanak yaprak uzunluğu, taç yaprak genişliği ve taç yaprak uzunluğu olmuştur. Bu değerler

neticesinde üstte görüldüğü gibi iris çiçeği 3 tür olarak sınıflanmıştır.

Bu ölçüm değerlerinin küçük bir bölümü aşağıda verilmiştir.

A: Çanak Yaprak Uzunluğu(sepal length)

B: Çanak Yaprak Genişliği(sepal width)

C: Taç Yaprak Uzunluğu(petal length)

D: Taç Yaprak Genişliği (petal width)

E: İris çiçeğinin türleri

Bu durumda A,B,C,D değerleri giriş ve E değeri ise çıkış değerini oluşturmaktadır.

A B C D E

5.1 3.5 1.4 0.2 setosa

4.9 3 1.4 0.2 setosa

4.7 3.2 1.3 0.2 setosa

5.2 2.7 3.9 3.4 versicolor

6.3 2.9 5.6 1.8 virginica

Toplamda 45 adet ölçülmüş veri bulunmaktadır.(Asıl veri kaynağı 150 adet veri içeriyor.)

Veriler cm cinsinden ölçülmüştür.

Bu çalışmadaki asıl amacımız bu 45 adet veri dışında bize bir veri verilseydi bu veriler

doğrultusunda E değerini tahmin etmek olacaktır. Bu durumda Verilerimizi Eğitim ve test

olarak 2 kısma ayıracağız. Önce eğitim verilerimizle ağımızı eğitip, sonra eldeki gerçek test

verilerini ağ üzerinde doğru sonuç verip vermeyeceklerini deneyeceğiz.

iris setosa iris versicolor iris virginica

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

2

1. NORMALİZASYON İŞLEMİ

Aşağıda giriş ve çıkış değerlerinin excel formatındaki hali görülmektedir. Çıkış değerleri için

1-3 arası değerler veriyoruz, çünkü ysa’da mutlaka değerlerimizi sayısal bir ifade ile

karşılamalıyız.(Örn: Bay-Bayan olsaydı 1-2 verebilirdik)

Normalizasyon formülü: Normalizasyon için aşağıdaki formül kıllanılırsa değerlerin hepsi

pozitif çıkacaktır. Dolayısıyla bu durumda log-sig fonksiyonu kullanılmalıdır.

VR: Normalize edilecek verileri ifade eder.

VMin: En küçük değerdeki veri.

Vmax: En büyük değerdeki veri.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

3

Alttaki değerleri uygulamak için Önce A sütununun ilk değerine karşılık gelen formülü yazıp

alta sürükleyerek tüm değerleri otomatik normalize edelim. Aynı işlemi diğer 4 sütun içinde

yapalım yani eğitim verileri için toplam 5 formül yazmalıyız.

Şekil: Eğitim Verilerinden bir bölüm

Şimdi eldeki 45 verinin %80’ini(36 adet) eğitim ve %20’sini(9 adet) test verisi olarak

belirleyeceğiz. Test verileri random olarak farklı bölgelerden seçilebilir, ya da her 5 (45/9)

veriden biri olabilir.

Şekil:Test verileri

Şimdi sırada bu verileri matlab da girilebilecek şekilde matris formunda düzenlemeye gerekvar. Bunun için tablo formatından çıkarmak ve matris formatına dönüştürmek gerekir.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

4

Excel formatı

Matlab Formatı Notepad ve Word ile bu işlemler gerçekleştirilebilir. Test verileri için bu işlem şu şekilde gerçekleştirilecektir. Siz hem test hem de eğitim verileri için aynı işlemleri uygulayınız. 1. Önce ilk eğitim giriş verimizin olduğu sütunu excelden kopyalayıp notpad’e atalım.(Notepad’den direk olarak word’e atarsak tablolu gider.)

2. Şimdi buradan kopyalayıp word’e atalım.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

5

3. CTRL+H ile word’de aşağıdaki değiştir penceresini açalım. Burada paragrafları boşluk değerleri ile değiştiriyoruz. Yeni değer yazan yere mutlaka boşluk tuşuna basalım.

Sonuçta veriler aşağıdaki hali alıyor.

Bunu aşağıdaki gibi düzenleyelim.

Şimdi kalan test verileri için ve eğitim verileri için aynı işlemleri tekrarlayalım. Not: Eğer değerleriniz noktalı değil virgüllü ise aynı yöntemle virgülleri nokta yapınız. Çünkü

Matlab’da ondalık ayıracı olarak nokta kullanbiliriz.

Matlab ortamında girdi ve çıktıları yazabileceğimiz sadece birer alan vardır. Bu yüzden elimizdeki 4 adet veriyi araya noktalı virgül koyarak birleştirelim. Oluşan bu veriye G diyelim. Çıktıya da Ç diyelim.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

6

Veriler son halde yukarıdaki şekle dönüşmelidir. Yani Eğitim için G ve Ç değerleri, Test için G ve Ç değerleri.

MATLAB İŞLEMLERİ

YSA ile çalışacağımız toolbox’ı açmak için nntool komutunu çalıştıralım.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

7

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

8

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

9

Yeni ağımızı oluşturduk şimdi ağımızın eğitimini gerçekleştireceğiz.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

10

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

11

Deneme sayısı az olduğu için eğitim kısa sürdü. İstersek grafiği sava-as yapabiliriz.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

12

Sayıların genelde 8 olması, 8 adet nöron seçilmiş olmasındandır. TEST VERİLERİ İÇİN İŞLEMLER -new data dedikten sonra

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

13

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

14

Bu değerler test çıktı değerleridir. Bunu kopyalayalım. Altına da ilk başta oluşturduğumuz gerçek test çıktı değerlerini yazalım. Ağın bulduğu değerler (Tahmin) [0.099934 0.099793 0.10006 0.50005 0.50001 0.5 0.89987 0.90017 0.9] Gerçek test değerleri: (Gerçek) [0.1 0.1 0.1 0.5 0.5 0.5 0.9 0.9 0.9] Şimdi gerçek test ile ağdan elde edilmiş değerlerin ne kadar yakın olduğu görmeye geldi. Bunun için excel’de R-kare grafiği çizmek gerekir. Dolayısıyla bu değerleri excel’e atacağız. Uygulamamızda test çıktıları ile gerçek test çıktıları 8 adet. Bu az sayılabilecek bir değer. Excel’e bu veriler kolaylıkla girilebilir. Binlerce veri girmek için ise aşağıdaki yol izlenmelidir.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

15

Bu iki değerin de ctrl+h ile boşlukları paragraf yapıp(ilk yaptığımızın tersi) parantezleri kaldıralım. Aşağıdaki değerler elde edilir. Tahmin 0.099934 0.099793 0.10006 0.50005 0.50001 0.5 0.89987 0.90017 0.9 Gerçek 0.1 0.1 0.1 0.5 0.5 0.5 0.9 0.9 0.9 Bu değerleri seçip tablo-dönüştür-metni tabloya dönüştür ile tablo yapalım.

Tahmin

0.099934

0.099793

0.10006

0.50005

0.50001

0.5

0.89987

0.90017

0.9

Gerçek

0.1

0.1

0.1

0.5

0.5

0.5

0.9

0.9

0.9

Sonra bu değerleri Excel’e kopyalayalım.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

16

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

17

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

18

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

19

İki çizgide neredeyse üst üste çıktı yani R2=1 oldu. Bu mükemmel sonuç anlamına gelir. FORMÜLASYON

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

20

A=5.1 B=3.5 C=1.4 D=0.2 E=? Önce değerleri normalize edelim.(normalizasyon formülü ile)

NOT: F9 için kullanılan formül logsig formülüdür. Burada F9 değeri bizim 4 giriş değerine karşı elde ettiğimiz çıktı değeridir. Bu değer normalizasyon değeri olup bunu gerçek değer haline dönüştürmemiz gerekir.

Yapay Sinir Ağları-Matlab Uygulaması-Öğr.Gör. Sinan UĞUZ

21

Formülünü uygularsak;

Vr:Gerçek değerdir

Vn: F9 ile elde edilen değerdir.

Vmax: E sütununun max değeri(3)

Vmin: E sütununun Min değeri(1)

Alttaki gibi formülleri matlab’a yazalım ve bir isimle kaydedilim. Daha sonra verdiğimiz ismi matlab ana penceresinde >> kısmına yazalım. Çalıştıralım.

Elde edilen değerler

Artık her deneme için Matlab dosyamızda yazan A,B,C ve D değerlerini değiştirip dosyayı

çalıştırıp E değerini görmemiz mümkündür.