python data-mining naive-bayes python3 naive-bayes-classifier classification naive-algorithm data-mining-algorithms naive-bayes-algorithm naivebayes naive-bayes-classification naive maximum-likelihood-estimation maximum-a-posteriori-estimation log-likelihood naive-bayes-tutorial naive-bayes-implementation laplace-smoothing Show
RaczeQ / naive-bayes-classifierStar 0
A Python implementation of Naive Bayes from scratch. Repository influenced by https://github.com/gbroques/naive-bayes python data-mining naive-bayes python3 naive-bayes-classifier classification python-3 data-mining-algorithms naive-bayes-algorithm naivebayes naive-bayes-classification naive maximum-likelihood-estimation maximum-a-posteriori-estimation log-likelihood naive-bayes-implementation
mustafa1728 / Robot_LocalizationStar 0
Robot Localization using Hidden Markov Model hmm localisation estimation artificial-intelligence sensors hmm-model hmm-viterbi-algorithm log-likelihood most-likely-path Loss Function – Saat mengerjakan Machine Learning / Deep Machine Learning menggunakan loss function/fungsi kerugian/biaya digunakan untuk mengoptimalkan model selama pelatihan. Tujuannya hampir selalu untuk meminimalkan minimize loss function/fungsi kerugian. Semakin rendah kerugian, semakin baik modelnya. Pada PyTorch ada banyak jenis loss function seperti MSE, Cross Entropy dan yang lainnya. Loss function digunakan untuk mengukur kesalahan antara keluaran prediksi dan nilai target yang diberikan. Sebuah loss function memberitahu kita seberapa jauh model algoritma dari mewujudkan hasil yang diharapkan. Kata ‘loss’ berarti penalit/hukuman yang didapat model karena gagal memberikan hasil yang diinginkan. Misalnya, fungsi kerugian (sebut saja J) dapat mengambil dua parameter berikut:
Fungsi ini akan menentukan kinerja model dengan membandingkan keluaran yang diprediksi dengan keluaran yang diharapkan. Jika deviasi antara y_pred dan y sangat besar, nilai loss akan sangat tinggi. Jika penyimpangannya kecil atau nilainya hampir sama, itu akan menghasilkan nilai loss yang sangat rendah. Oleh karena itu, kalian perlu menggunakan loss function yang dapat membuat penalti / menghukum model dengan benar saat melakukan proses pelatihan. Loss function berubah berdasarkan pernyataan masalah yang coba dipecahkan oleh algoritme kita pilih. Bagaimana cara menambahkan loss function PyTorchContents Modul torch.nn PyTorch memiliki beberapa loss function standar yang dapat kita gunakan, untuk menambahkannya, kita harus terlebih dahulu mengimpor perpustakaan: Copy Code Copied! Use a different Browser
Selanjutnya, tentukan jenis loss function yang ingin digunakan. Berikut adalah cara untuk mendefinisikan fungsi mean absolute error loss: Copy Code Copied! Use a different Browser
Jenis Loss FunctionAda banyak jenis loss function yang bisa kalian pakai, yaitu
Lebih lengkapnya yaitu 1. Mean Absolute Error (L1 Loss Function)Mean Absolute Error (MAE), juga disebut L1 Loss, menghitung rata-rata jumlah perbedaan mutlak antara nilai aktual dan nilai prediksi. Ini memeriksa ukuran kesalahan dalam satu set nilai yang diprediksi, tanpa mempedulikan arah positif atau negatifnya. Jika nilai absolut dari kesalahan tidak digunakan, maka nilai negatif dapat membatalkan nilai positif.
Kapan itu bisa digunakan? Masalah regresi, terutama ketika distribusi variabel target memiliki outlier, seperti nilai-nilai kecil atau besar yang sangat jauh dari nilai rata-rata. Hal ini dianggap lebih kuat untuk outlier. Copy Code Copied! Use a different Browser
2. Loss Function MSE (L2 Loss function)Mean Squared Error (MSE), juga disebut L2 Loss, menghitung rata-rata perbedaan kuadrat antara nilai aktual dan nilai prediksi. Pytorch MSE Loss selalu menghasilkan hasil positif, terlepas dari tanda nilai aktual dan prediksi. Untuk meningkatkan akurasi model, kita harus mencoba mengurangi L2 Loss sekecil mungkin atau mencapai nilai sempurna adalah 0,0. Copy Code Copied! Use a different Browser
Rumus MSE yaitu
MSE digunakan untuk kasus seperti kasus regression. Ada 3 yang digunakan yaitu ‘none’ | ‘mean’ | ‘sum’. Saya akan demokan cara menghitung secara manual. Misalkan jika kita memilih opsi mean Copy Code Copied! Use a different Browser
atau bila dalam pytorch yaitu Copy Code Copied! Use a different Browser
Kalian bisa coba-coba untuk mengganti reduction = ‘ sum’ Mengapa menggunakan loss function MSE?MSE sensitif terhadap outlier dan diberikan beberapa contoh dengan nilai fitur input yang sama, prediksi optimal akan menjadi nilai target rata-ratanya. Ini harus dibandingkan dengan Mean Absolute Error, di mana prediksi optimal adalah median. Oleh karena itu, MSE baik digunakan jika yakin bahwa data target yang dikondisikan pada input, terdistribusi secara normal di sekitar nilai rata-rata Kapan menggunakan loss function MSE?Gunakan MSE saat melakukan regresi, percaya bahwa target Anda, dikondisikan pada input, terdistribusi normal, dan ingin kesalahan besar secara signifikan (kuadrat) lebih diberikan perhitungan daripada kesalahan kecil. Contoh: kalian ingin memprediksi harga rumah di masa depan. Harga adalah nilai kontinu, oleh karena itu kami ingin melakukan regresi. MSE di sini dapat digunakan sebagai fungsi kerugian. Tidak cocok menggunakan loss function MSETidak cocok menggunakan loss function MSE jika target yang digunakan berupa one hot encoding yaitu kasus yang berkaitan dengan klasifikasi. Misalkan saja kasus 3 kelas yang dibuat one hot encoding
Kita coba saja misalkan terdapat hasil prediksi [0.5,0.5,1] maka akan masuk kelas yang mana? Copy Code Copied! Use a different Browser
maka untuk akan sulit jika hasil point 1 dan 2 adalah sama yaitu 1.5 untuk itu loss function MSE tidak cocok untuk klasifikasi dengan target one hot encoding diperlukan loss function yang lain. Untuk target one hot encoding sudah jarang digunakan bahkan untuk pytorch tidak menyediakan khusus untuk hal tersebut. 3. Negative Log-Likelihood Loss FunctionFungsi Negatif Log-Likelihood Loss (NLL) hanya diterapkan pada model dengan fungsi softmax sebagai lapisan aktivasi keluaran. Softmax mengacu pada fungsi aktivasi yang menghitung fungsi eksponensial yang dinormalisasi dari setiap unit di lapisan. Fungsi Softmax dinyatakan sebagai:
NLL menggunakan konotasi negatif karena probabilitas (atau kemungkinan) bervariasi antara nol dan satu, dan nilai logaritma dalam rentang ini negatif. Pada akhirnya, nilai kerugian menjadi positif. Di NLL, meminimalkan fungsi kerugian membantu kita mendapatkan output yang lebih baik. Kemungkinan log negatif diperoleh dari perkiraan perkiraan kemungkinan maksimum (MLE). Ini berarti bahwa kita mencoba untuk memaksimalkan kemungkinan log model, dan sebagai hasilnya, meminimalkan NLL. Dalam NLL, model akan diberikan penalti / hukuman karena membuat prediksi yang benar dengan probabilitas yang lebih kecil dan didorong untuk membuat prediksi dengan probabilitas yang lebih tinggi. NLL tidak hanya peduli tentang prediksi yang benar tetapi juga tentang model yang yakin tentang prediksi dengan skor tinggi. Misalkan kita punyai 3 record dengan 5 ciri fitur/paramater yaitu Copy Code Copied! Use a different Browser
arti dari
Kapan itu bisa digunakan?Masalah klasifikasi multi-kelas, jadi misalkan ada 4 kelas kalian bisa menggunakan target nilai 0,1,2,3 Cara menggunakannyaKalian bisa melihat Cara menggunakan loss function Negative log likelihood loss nn.NLLLoss 4. Cross-Entropy Loss FunctionCopy Code Copied! Use a different Browser
Loss function ini menghitung perbedaan antara dua distribusi probabilitas untuk serangkaian kejadian atau variabel acak yang disediakan. Ini digunakan untuk menghitung skor yang merangkum perbedaan rata-rata antara nilai yang diprediksi dan nilai sebenarnya. Untuk meningkatkan akurasi model, kalian harus mencoba meminimalkan skor—skor lintas entropi antara 0 dan 1, dan nilai sempurna adalah 0. Loss function lainnya, seperti MSE memberikan penalti prediksi yang salah. Cross-Entropy akan memberikan penalti yang banyak. Berbeda dengan Negatif Log-Likelihood Loss, yang tidak memberikan penalti berdasarkan keyakinan prediksi, Cross-Entropy menghukum prediksi yang salah tapi yakin, serta prediksi yang benar tapi kurang percaya diri. Fungsi Cross-Entropy memiliki variasi yang luas, jenis yang paling umum adalah Binary Cross-Entropy (BCE). BCE Loss terutama digunakan untuk model klasifikasi biner; yaitu, model hanya memiliki 2 kelas. Persamaan matematika dari cross entropy yaitu
Kapan itu bisa digunakan?
Copy Code Copied! Use a different Browser
Cara menggunakannyaKalian bisa melihat Cara menggunakan loss function Cross-entropy loss
ref: https://github.com/christianversloot/machine-learning-articles/blob/main/how-to-use-pytorch-loss-functions.md |