Search what you want

Labels

Showing posts with label sispak. Show all posts
Showing posts with label sispak. Show all posts

Saturday, May 16, 2015

How to Implement Fuzzy Logic (tsukamoto) to Java Code [sispak]

Sekarang saya akan menggunakan soal yang berada di link berikut -> http://www.academia.edu/6628711/LOGIKA_FUZZY.

PROJECT JAVA dapat d download disini

Sebuah perusahaan makanan kaleng akan memproduksi makanan jenis ABC. Dari data 1 bulan terakhir,PERMINTAAN TERBESAR mencapai 5000 kemasan/hari, dan PERMINTAAN TERKECIL 1000 kemasan/hari. PERSEDIAANTERBANYAK digudang sampai 600 kemasan/hari, dan PERSEDIAAN TERKECIL mencapai 100 kemasan/hari. Dengansegala keterbatasan kemampuan PRODUKSI TERBANYAK adalah 7000 kemasan/hari, dan agar efisien PRODUKSITERKECIL adalah 2000 kemasan/hari. 

Sunday, April 5, 2015

Fuzzy Logic and FIS

Fuzzy Logic merupakan sebuah logika yang mengerapkan derajat keanggotaan dalam suatu himpunan sehingga  keaggotaan tidak hanya bersifat true/false.

penghubung di logika fuzzy:

1. Fuzzy Conjunction (Min)
2. Fuzzy Disjunction (Max)


Fuzzy Inference System (FIS) merupakan suatu sistem yang menggunaka logika Fuzzy untuk membuat keputusan. Terdapat tiga metode dalam Fuzzy Reasoning:

1. Fuzzy Mamdani
2. Fuzzy Takagi Sugeno
3. Fuzzy Tsukamoto

berikut perbedaan dari ketiga metode tersebut:


Secara umum semua metode menggunakan mekanisme yang sama dalam pembuatan keputusan. Berikut Mekanisme FIS:

1. Problem Domain
-Kelayakan masalah karena tidak bisa diselesaikan menggunakan metode crisp. 
-Penentuan variabel-variabel yang digunakan dalam sistem

2. Fuzzifikasi
-Mengubah nilai Crisp dari semua parameter menjadi variable linguistik
-Mengubah semua variabel menjadi himpunan Fuzzy.
-Representasi variabel Fuzzy dalam bentuk kurva

3. Pembuatan Aturan Fuzzy
-Memetakan setiap input terhadap Output
-Membuat aturan If-Then

4. Defuzzifikasi
-Mendapatkan kembali nilai Crisp dari sejumlah aturan, tergantung metode yang digunakan
   ->Mamdani: center of gravity, SOM, LOM, MOM
   ->Sugeno   : Weighted average
   ->Tsukmoto: Weighted average


Mencari nilai keanggoaan:








CONTOH SOAL:
Suatu perusahaan sparepart akan memproduksi sparepartdengan jenis tertentu. Dari 1 bulan terakhir, permintaan terbesar mencapai 5000 jenis per bulan, dan permintaan terkecil mencapai 1000 jenis bulan. Persediaan barang di gudang tiap hari paling banyak 600 jenis. dan persediaan terkecil mencapai 100 jenis per hari.Dikarenakan memiliki keterbatasan, perusahaan ini hanya mampu memproduksi 
pakaian paling banyak 7000 jenis per bulan.Untuk efisiensi, mesin dan SDM setiap hari diharapkan perusahaan memproduksi paling tidak 2000 jenis . Berapa banyak jenis sparepart yang harus diproduksi apabila terdapat permintaan sejumlah 4000 jenis dan persediaan di gudang terdapat 300 jenis. 

1. pemodelan masalah
Input  : a. Permintaan [1000 5000] {TURUN NAIK} 
           b. Persediaan [100 600]{SEDIKIT BANYAK} 
Output : Jumlah Produksi [2000 7000]{BERKURANG BERTAMBAH} 

2. Pembuatan aturan
   [R1]: IF Permintaan TURUN And Persediaan BANYAK THEN Produksi sparepart                           BERKURANG
   [R2] : IF Permintaan TURUN And Persediaan SEDIKIT THEN Produksi sparepart                            BERKURANG
   [R3] : IF Permintaan NAIK And Persediaan BANYAK THEN Produksi sparepart                              BERTAMBAH
   [R4] : IF Permintaan NAIK And Persediaan SEDIKIT THEN Produksi sparepart                                 BERTAMBAH

3. Analisis masalah
    4000 : termasuk dalam kategori turun dan naik
    300 : termasuk dalam kategori banyak dan sedikit
    Jadi, Semua Aturan / Rule digunakan

mencari nilai keanggotaan:



Dekomposisi 

1. Center of Gravity 



2. LOM : Mencari nilai z terbesar dari nilai μf maksimum
    Mengambil nilai z terbesar dari nilai derajat keanggotaan(μ(z))yang maksimal 
    LOM=5000

3. SOM : Mencari nilai z terkecil dari nilai μf  maksimum
    Mengambil nilai z terkecil dari nilai derajat keanggotaan(μ(z))yang maksimal
    SOM=3000

4. MOM : Mencari rataan z dari nilai μf maksimum
    Mengambil nilai z rata-rata dari nilai derajat keanggotaan(μ(z))yang maksimal
    MOM= (5000+3000) / 2=4000




Ref:
http://informatika.web.id/jenis-jenis-fungsi-keanggotaan.htm

Naive Bayes

          Naïve Bayes merupakan salah satu metode machine learning yang menggunakan perhitungan probabilitas. Konsep dasar yang digunakan oleh Naïve bayes adalah Teorema Bayes, yaitu teorema dalam statistika untuk menghitung peluang, Bayes Optimal Classifier menghitung peluang dari satu kelas dari masing-masing kelompok atribut yang ada, dan menentukan kelas mana yang paling optimal.

sebelum melakukan perhitungan ini diperlukan pemahaman tentang dua jenis peluang penyusunnya terlebih dahulu, yaitu:
1. peluang posterior
2. peluang prior

jika X melambangkan set atribut data dan Y melambangkan kelas variabel. Peluang bersyarat P(Y|X) ini juga dikenal dengan posterior  peluang untuk Y, dan  sebaliknya peluang prior untuk Y adalah P(Y).

contoh soal:
jika diketahui terdapat tabel data sebagai barikut:

Jika diberikan test record dengan atribut berikut : X  = (Home Owner = No, Marital Status = Married, Annual Income = $120K).  masuk ke klasifikasi manakah data tersebut? Yes? or No?

langkah pertama yang harus dilakukan yaitu:
-> hitung peluang posterior  P(Yes|X) , P(No|X)

-> Jika  P(Yes|X)>P(No|X), maka record diklasifikasikan sebagai Yes
-> Jika  P(Yes|X)<P(No|X)maka record diklasifikasikan sebagai No

- untuk data data diskrit peluang dapat dihitung lansung dengan mengunakan peluang kejadian dibagi peluang keseluruhan. contoh untuk P(Home Owner = No| No) karena peluang home ownner yang no ada 7 data, sedangkan dari 7 data tersebut yang masuk ke kelas(defauited Borrowed) no ada 4 maka peluangnya adalah 4/7
- sedangkan untuk mencari peluang dari data yang bernilali kontinue dapat dicari dengan menggunakan cara data diskrit atau menggunakan distribusi Gausian untuk data yang kuntinu, distribusi Gausian memiliki rumus:
perhitungan untuk data diskrit:
jika kelas no: rata-rata=110
                    SD = 2954 {cari menggunakan excel dengan rumus =var(120,100,70,120,60,220,75)}
jika kelas yes: rata-rata=90
                     SD = 25 


jawab:
1. P(yes)=3/10
cari semua komponen P(X|Yes)
P(Home Owner = No| Yes)=1
P(Marital Status = Married| Yes)=0
P(Annual Income = $120K| Yes)=0.0388
P(X|Yes)=P(Home Owner = No| Yes) x P(Marital Status = Married| Yes) x P(Annual Income = $120K| Yes) = 1*0*0.0388=0


2. P(no) = 7/10
cari semua komponen P(X|No)
P(Home Owner = No| No)=4/7
P(Marital Status = MarriedNo)=4/7
P(Annual Income = $120K|No)=0.0073
P(X|No)=P(Home Owner = No| No) * P(Marital Status = MarriedNo) * P(Annual Income = $120K|No)=4/7*4/7*0.0073=0.0024

3. karena P(X|No)>P(X|Yes) maka data tersebut diklasifikasikan ke kelas no

untuk contoh soal yang data kontinunya tetap menggunakan perhitungan data diskret dapat membaca blog ini.