Senin, 15 Januari 2024

Algoritma Naive Bayes, Pengertian dan Contohnya

Algoritma Naive Bayes adalah suatu metode klasifikasi yang berdasarkan teorema Bayes dengan asumsi bahwa semua variabel prediktor (fitur) adalah independen satu sama lain. Meskipun asumsi ini seringkali tidak terpenuhi di dunia nyata, namun Naive Bayes tetap menjadi pilihan yang baik dan efisien untuk masalah klasifikasi, terutama dalam kasus dengan data yang cukup besar.


Langkah-langkah umum dalam algoritma Naive Bayes adalah sebagai berikut:

1. Pelatihan (Training):

  • Menghitung probabilitas prior untuk setiap kelas berdasarkan data latih.
  • Menghitung probabilitas kondisional untuk setiap fitur dalam setiap kelas
2. Klasifikasi:
  • Menggunakan teorema Bayes, menghitung probabilitas kelas untuk suatu contoh baru.
  • Memilih kelas dengan probabilitas tertinggi sebagai prediksi.

Contoh sederhana dapat diilustrasikan dengan kasus klasifikasi email sebagai spam atau bukan spam. Misalkan terdapat dua fitur: (1) kata "lottery" muncul atau tidak, dan (2) kata "money" muncul atau tidak. Kita ingin mengklasifikasikan email berdasarkan dua fitur tersebut.


Contoh Perhitungan:

Data Pelatihan:

| No. | Email Text                             | Spam (Kelas) |

|-- ---|---------------------------------|-----------------|

| 1    | Win the lottery, win money! | Yes                |

| 2    | Meeting tomorrow                 |  No               |

| 3    | Lottery winner                       | Yes               |

| 4    | Money for you                       | Yes               |

| 5   | Important meeting                  | No                |


Pelatihan:

Menghitung probabilitas prior:

P(Spam=Yes) = 3/5
P(Spam=No) = 2/5
Menghitung probabilitas kondisional untuk setiap fitur dalam setiap kelas:

P("lottery" | Spam=Yes) = 2/3
P("money" | Spam=Yes) = 2/3
P("lottery" | Spam=No) = 1/2
P("money" | Spam=No) = 1/2

Klasifikasi:
Misalkan kita punya email baru: "Win money fast."

1. Menggunakan teorema Bayes untuk menghitung probabilitas kelas:

  • P(Spam=Yes | "win", "money", "fast") ∝ P("win" | Spam=Yes) * P("money" | Spam=Yes) * P("fast" | Spam=Yes) * P(Spam=Yes)
  • P(Spam=No | "win", "money", "fast") ∝ P("win" | Spam=No) * P("money" | Spam=No) * P("fast" | Spam=No) * P(Spam=No)

2. Memilih kelas dengan probabilitas tertinggi sebagai prediksi.

Dalam kasus ini, kita akan memprediksi bahwa email tersebut adalah spam karena probabilitas kelas "Spam=Yes" lebih tinggi.


Algoritma Naive Bayes memiliki beberapa manfaat yang membuatnya sering digunakan dalam berbagai aplikasi:

1. Sederhana dan Efisien:
  • Naive Bayes adalah algoritma yang relatif sederhana dan mudah dipahami.
  • Komputasinya cepat dan efisien, terutama ketika dihadapkan dengan dataset yang besar.
2. Kemampuan Menangani Data Besar:
  • Cocok untuk dataset dengan fitur yang besar dan independen, karena asumsi utama Naive Bayes adalah adanya independensi antar fitur.
3. Kemampuan Klasifikasi Baik:
  • Meskipun asumsinya naif (fitur independen), Naive Bayes sering memberikan kinerja yang baik dalam tugas klasifikasi, terutama pada dataset dengan jumlah fitur tinggi.
4. Efektif untuk Klasifikasi Teks dan NLP:
  • Naive Bayes sering digunakan dalam pemrosesan bahasa alami (Natural Language Processing/NLP) dan klasifikasi teks karena dapat mengatasi permasalahan klasifikasi dokumen dengan baik.
5. Ketahanan terhadap Data yang Hilang:
  • Naive Bayes cukup tahan terhadap data yang hilang, artinya dapat melakukan klasifikasi dengan baik meskipun beberapa fitur tidak lengkap.
6. Sederhana untuk Diperbarui:
  • Model Naive Bayes dapat diperbarui dengan mudah ketika ada tambahan data pelatihan baru.
7. Cocok untuk Klasifikasi Multikelas:
  • Naive Bayes dapat digunakan untuk tugas klasifikasi dengan lebih dari dua kelas (multikelas).
8. Baik untuk Klasifikasi dengan Dimensi Tinggi:

Cocok untuk klasifikasi dengan data berdimensi tinggi seperti pengenalan wajah atau analisis citra.
Namun, perlu diingat bahwa meskipun Naive Bayes memiliki banyak keunggulan, ia juga memiliki asumsi yang cukup kuat tentang independensi fitur yang mungkin tidak selalu terpenuhi di dunia nyata. Sehingga, performanya dapat bervariasi tergantung pada sifat dataset yang digunakan.






Senin, 04 Desember 2023

Cara buat surat keterangan domisili untuk pembayaran google adsense Indonesia

Surat Keterangan domisili ini salah satu persyaratan agar kita tidak terkena pajak yang besar, untuk itu google asia pasific mensyaratkan mengupload surat keterangan domisili, bisa jadi karena kita sudah ada perjanjian pajak dengan negara Singapura.

Cara buatnya via web kantor pajak

link: https://infokswp.pajak.go.id


Gambar 1. Login masuk ke web pajak

Gambar 2. Pilih Layanan pilih e-SKD



Hasil akhir jadi seperti dibawah ini:


Alamat dan data penting sebagai berikut:
Syarat pencairan bayaran adsense youtube Indonesia via kantor google youtube Asia Pacific Singapore, Anda diminta surat keterangan domisili. Saat anda membuat SKD via websitenya pajak Indonesia, sampai pada isian 

TIN Lawan isikan seperti di video 
Google Asia Pacific Pte. Ltd. 
Mapletree Business City II 70 Pasir Panjang Road, #03-71 Singapore 117371 
Untuk referensi, nomor GST adalah:  200817984R


link terkait lihat ini
















Jumat, 10 November 2023

Cek Kualitas artikel Penelitian dan Pengabdian (catatan dari Prof. Muji/UMMagelang)

 Kualits Standar artikel Penelitian/pengabdian (body text)

  1. Pastikan
  2. Tidak terjadi salah ketik, salah eja, misspelling, dan sejenisnya;
  3. Penulisan kata, kalimat dan paragraf mengikuti Pedoman Umum Bahasa Indonesia atau Bahasa inggris yang benar (enak dibaca dan enak dilihat);
  4. Semua Tabel dan Gambar diberikan nomor Tabel dan nomor Gambar secara urut;
  5. Judul Tabel diletakkan di atas Tabel dengan style Sentence case;
  6. Judul Gambar diletakkan dibawah Gambar dengan style Sentence case;
  7. Foto, Grafik, Gambar dan semua ilustrasi “Artwork” disebut Gambar;
  8. Untuk Tabel, pastikan hanya ada garis horizontal, tanpa garis vertikal;
  9. Untuk Gambar berupa grafik, harus ada axis title dengan skala yang tepat;
  10. Persamaan diberikan nomor persamaan dengan tanda kurung (1);
  11. Semua Gambar, Tabel, dan Persamaan harus “disebutkan” di paragraf sebelum Gambar, Tabel, dan Persamaan disajikan;
  12. Sitasi dalam body text dan dalam daftar referensi harus akuntabel, menggunakan gaya IEEE (atau yang ditetapkan)
  13. Referensi harus dituliskan dengan benar dan seragam; 

Format (untuk artikel penelitian):

  1. Judul harus lugas, informatif, dan mencerminkan temuan penting dalam artikel.
  2. Pastikan abstrak memuat permasalahan dan tujuan, bagaimana riset dilakukan (metode), hasil, dan ditutup dengan pernyataan singkat kesimpulan.
  3. Pastikan bagian pendaluluan mengangkat masalah penting, ada state of the art/ research gap dan ada kebaruan/kontribusi riset. [SITASI]
  4. Pastikan metode yang digunakan valid.
  5. Pastikan pembahasan artikel berisi argumen dan mendialogkan dengan beberpa hasil peneltiian sebelumnya. [SITASI]

Format (untuk artikel pengabdian):
  1. Judul harus lugas, informatif, dan mencerminkan kegiatan pengabdian.
  2. Pastikan abstrak memuat permasalahan dan tujuan, bagaimana pengabdian dilakukan (metode), hasil, dan ditutup dengan pernyataan singkat kesimpulan.
  3. Pastikan bagian pendaluluan ada analisis situasi mitra dan permasalahan mitra
  4. Pastikan metode peksanaan runut dan benar-benar mencerminkan kegiatan pengabdian (peran pengabdi dan mitra)
  5. Pastikan hasil dan pembahasannya memuat kondisi mitra sebelum dan sesudah pengabdian terlaksana, bagaimana peningkatan (pengetahuan, keterampilan, produktifitas, dll) pada mitra sasaran terukur dan terlaporkan dengan benar.






Senin, 02 Oktober 2023

Apa itu Kovarians ?

Kovarians adalah suatu konsep dalam statistik yang mengukur hubungan antara dua variabel acak. Kovarians mengukur sejauh mana dua variabel bergerak bersamaan. Dengan kata lain, kovarians mengukur apakah kenaikan atau penurunan dalam satu variabel cenderung disertai dengan kenaikan atau penurunan dalam variabel lainnya.

Ada beberapa kemungkinan hasil kovarians:

Jika kovarians positif, ini menunjukkan bahwa dua variabel cenderung bergerak ke arah yang sama. Artinya, ketika satu variabel meningkat, kemungkinan besar yang lain juga akan meningkat, dan ketika satu variabel menurun, yang lain juga kemungkinan besar akan menurun.

Jika kovarians negatif, ini menunjukkan bahwa dua variabel cenderung bergerak ke arah yang berlawanan. Artinya, ketika satu variabel meningkat, kemungkinan besar yang lain akan menurun, dan sebaliknya.

Jika kovarians mendekati nol atau sangat kecil, maka tidak ada hubungan yang kuat antara dua variabel. Ini berarti perubahan dalam satu variabel tidak memberikan informasi yang baik tentang perubahan dalam variabel lainnya.

Kovarians dihitung dengan rumus matematis yang melibatkan data statistik dari dua variabel. Namun, perlu diingat bahwa nilai kovarians bisa terpengaruh oleh skala data, sehingga untuk menilai sejauh mana dua variabel berhubungan, seringkali lebih baik menggunakan koefisien korelasi Pearson, yang adalah kovarians yang dinormalisasi.

Mari kita lihat beberapa contoh untuk memahami konsep kovarians:

Contoh 1:

Misalkan kita memiliki dua variabel, X dan Y, yang mewakili jumlah jam belajar (X) dan nilai ujian (Y) dari sekelompok siswa. Kita ingin menghitung kovarians antara jumlah jam belajar dan nilai ujian. Jika kita menemukan bahwa ketika jumlah jam belajar siswa meningkat, nilai ujian mereka juga cenderung meningkat, maka kovariansnya positif.

Contoh 2:

Kita memiliki dua variabel, A dan B, yang mewakili jumlah hujan harian (A) dan penjualan payung (B) di sebuah toko selama sebulan. Jika kita menemukan bahwa ketika jumlah hujan harian meningkat, penjualan payung di toko juga meningkat, maka kovariansnya positif.

Contoh 3:

Kita memiliki dua variabel, C dan D, yang mewakili jumlah tidur (C) dan tingkat kelelahan (D) seorang individu. Jika kita menemukan bahwa ketika seseorang tidur lebih banyak, tingkat kelelahannya cenderung berkurang, maka kovariansnya negatif.

Dalam statistik, kovarians digunakan untuk memahami hubungan antara dua variabel dan dapat membantu dalam menganalisis data. Namun, penting untuk diingat bahwa kovarians tidak memberikan informasi tentang seberapa kuat atau lemah hubungan antara dua variabel tersebut, sehingga seringkali digunakan bersama dengan koefisien korelasi untuk mendapatkan pemahaman yang lebih lengkap tentang hubungan antara variabel-variabel tersebut.


Mari kita contohkan perhitungan kovarians dengan data angka. Misalkan kita memiliki dua set data: satu untuk jumlah jam belajar (X) dan satu untuk nilai ujian (Y) dari sejumlah siswa dalam sebuah kelas. Berikut adalah contoh data angka:

Data Jam Belajar (X):

X = [2, 3, 4, 5, 6]

Data Nilai Ujian (Y):

Y = [60, 70, 75, 85, 95]

Langkah pertama adalah menghitung rata-rata (mean) dari kedua set data:

Rata-rata Jam Belajar (X̄):

X̄ = (2 + 3 + 4 + 5 + 6) / 5 = 20 / 5 = 4

Rata-rata Nilai Ujian (Ȳ):

Ȳ = (60 + 70 + 75 + 85 + 95) / 5 = 385 / 5 = 77

Kemudian, kita dapat menghitung kovarians antara kedua variabel menggunakan rumus kovarians:

Kovarians (cov(X, Y)) = Σ((X - X̄) * (Y - Ȳ)) / (n - 1)

Di sini, n adalah jumlah data (jumlah siswa), dan Σ menunjukkan penjumlahan.

Kovarians (cov(X, Y)) = ((2 - 4) * (60 - 77) + (3 - 4) * (70 - 77) + (4 - 4) * (75 - 77) + (5 - 4) * (85 - 77) + (6 - 4) * (95 - 77)) / (5 - 1)

Kovarians (cov(X, Y)) = (-4 * -17 + (-1) * (-7) + 0 * (-2) + 1 * 8 + 2 * 18) / 4

Kovarians (cov(X, Y)) = (68 + 7 + 0 + 8 + 36) / 4

Kovarians (cov(X, Y)) = 119 / 4

Kovarians (cov(X, Y)) = 29.75

Jadi, kovarians antara jumlah jam belajar (X) dan nilai ujian (Y) dalam contoh ini adalah sekitar 29.75. Hasil positif menunjukkan bahwa terdapat hubungan positif antara kedua variabel, yang berarti ketika jumlah jam belajar meningkat, nilai ujian cenderung meningkat juga.







Kamis, 14 September 2023

Menghitung rerata (rata-rata) berdasarkan data yang masuk

Jika datanya tak terhingga dan terus menerus masuk, Anda perlu menggunakan pendekatan yang berkelanjutan untuk menghitung rata-rata secara real-time. Kita dapat menggunakan konsep moving average atau rata-rata bergerak untuk menangani situasi seperti ini. Moving average adalah teknik yang digunakan untuk menghitung rata-rata dari sejumlah data terbaru, dan data yang lebih lama akan terus digantikan oleh data yang baru.


Berikut adalah contoh implementasi rata-rata bergerak (moving average) menggunakan Arduino untuk menghitung rata-rata dari data sensor yang masuk terus menerus:


  1. const int sensorPin = A0;   // Pin tempat sensor terhubung
  2. const int jumlahData = 10;  // Jumlah data yang akan dihitung rata-ratanya
  3. int data[jumlahData];       // Array untuk menyimpan data
  4. int indeks = 0;             // Indeks saat ini dalam array data
  5. float rataRata = 0;         // Variabel untuk menyimpan rata-rata

  6. void setup() {
  7.   Serial.begin(9600);  // Inisialisasi komunikasi serial
  8.   for (int i = 0; i < jumlahData; i++) {
  9.     data[i] = 0;  // Inisialisasi data dengan nilai 0
  10.   }
  11. }

  12. void loop() {
  13.   // Baca nilai dari sensor A0
  14.   int nilaiSensor = analogRead(sensorPin);

  15.   // Update nilai dalam array data
  16.   data[indeks] = nilaiSensor;

  17.   // Hitung rata-rata dari data dalam array
  18.   rataRata = hitungRataBergerak(data, jumlahData);

  19.   // Tampilkan nilai sensor dan rata-rata di monitor serial
  20.   Serial.print("Nilai Sensor: ");
  21.   Serial.print(nilaiSensor);
  22.   Serial.print(" Rata-rata: ");
  23.   Serial.println(rataRata);

  24.   // Pindah ke indeks berikutnya dalam array data
  25.   indeks = (indeks + 1) % jumlahData;

  26.   // Tunda sebentar sebelum membaca data sensor berikutnya
  27.   delay(1000);  // Tunggu 1 detik
  28. }

  29. float hitungRataBergerak(int data[], int jumlahData) {
  30.   int total = 0;
  31.   for (int i = 0; i < jumlahData; i++) {
  32.     total += data[i];
  33.   }
  34.   return (float)total / jumlahData;
  35. }

Dalam contoh ini, kita menggunakan array untuk menyimpan sejumlah data terbaru dari sensor. Saat data baru masuk, data yang paling lama akan digantikan oleh data yang baru. Ini memungkinkan perhitungan rata-rata bergerak yang terus diperbarui secara real-time.