Aksioma Probabilitas

Saya lagi belajar tentang aksioma probabilitas. Di matematika teori dapat dikembangkan dari aksioma. Aksioma itu adalah aturan dasar atau prinsip yang dijadikan sandaran teori matematika berikutnya. Dari aksioma diturunkan menjadi teori berdasarkan bukti (proof) melalui logika deduktif.

Contohnya dalam teori probabilitas, kita bisa turunkan keseluruhan teori hanya dari 3 aksioma. Pendekatan aksioma ini berguna misalnya untuk memastikan bahwa sebuah teori konsisten dan tidak bertentangan dengan teori lainnya. Aksioma dapat juga kita program di komputer, dan digunakan untuk menyelesaikan permasalahan riil lainnya.

Selain teori dan aksioma, biasanya ada juga definisi. Definisi membangun konsep baru dari konsep yang sudah ada. Konsep yang sudah ada pada axioma. Definisi tidak memberikan asumsi baru ke teori, namun menjelaskan aksioma.

Jadi ada 3 macam pernyatan.

  1. Aksioma: Prinsip dasar yang kita terima kebenarannya
  2. Definisi: Pernyataan yang mengenalkan konsep baru
  3. Teori: Pernyataan yang diturunkan dari aksioma dan definisi

3 Aksioma Probabilitas

Teori Probabilitas memiliki 3 aksioma, yaitu:

  1. Normality: 0<=P(A)<=1
  2. Tautology rule: P(True) = 1 ; P(False)=0
  3. Additivity rule : P(A or B) = P(A) + P(B) – P(A and B)

Dari 3 aksioma ini kemudian dapat kita turunkan berbagai teori probabilitas. Yang pertama adalah Rule Negasi:

P(A’)=1-P(A)

Contradiction Rule

Bila A adalah kontradiksi maka P(A)=0

Conditional Probability

Multiplication Rule:

Bila P(B)>0 maka P(A and B) = P(A|B) P(B)

Equivalent Rule:

Jika A & B logical equivalent maka P(A)=P(B)

General Addition Rule

P(A or B) = P(A) + P(B) – P(A and B)

Total Probability rule:

Jika 0< P(B) < 1 maka P(A) = P (A|B) P(B) + P(A|B’) P(B’)

Teori Bayes

Versi Panjang:

Independensi:

A independen dari B jika P(A|B) = P(A) dan P(A) > 0

Jika A independen dari B, maka P (A and B) = P(A) P(B)

Jika A independen dari B, maka B independen dari A

Semoga Bermanfaat!

diterjemahkan dari:

https://jonathanweisberg.org/vip/the-axioms-of-probability.html

Occam Razor

Dalam kuliah machine learning ada dibahas tentang Occam Razor principle. Occam razor yang dimaksud adalah prinsip law of parsimony yang disampaikan oleh Sir William of Ockham (1287-1347), yaitu “plurality must never be posited without necessity” . Maksudnya bila ada beberapa hypothesis yang bisa diambil untuk menyelesaikan sebuah masalah (prediksi) yang sama, hipotesis yang lebih sederhana lebih diutamakan. Atau dengan kata lain, “penjelasan yang lebih mudah adalah yang terbaik”.

Dalam konteks decision tree, prinsip ini digunakan untuk mencoba menyederhanakan tree untuk menghindari masalah overfitt. Bila ada beberapa pilihan tree yang menghasikan prediksi yang sama (atau eror klasifikasi yang sama), maka sebaiknya kita memilih tree yang lebih sederhana.

Pertanyaan berikutnya apa yang dimaksud dengan pohon yang sederhana. Tentunya bila kita harus memperhatikan depth dari tree, atau kedalaman tree. Maksudnya lebih banyak cabang dari tree maka lebih kompleks tree tersebut.

Ada 2 pendekatan yang digunakan untuk membuat tree yang lebih sederhana. Yang pertama adalah early stopping, atau berhenti lebih awal. Maksudnya daripada membuat tree yang lebih panjang (dalam) atau lebih banyak cabang, lebih baik berhenti lebih awal untuk menghindari overfitting. Sehingga akan didapatkan tree yang lebih sederhana. Pendekatan ini menyebutkan bahwa kita dapat berhenti bila proses cabang tidak lagi signifikan secara statistik.

Pendekatan lain adalah pruning. Yaitu membangun tree yang dalam kemudian memotong beberapa cabang di bawah seperti beberapa keputusan (decision) yang tidak penting.

Untuk memilih pohon terbaik digunakan juga tiga pendekatan:

  • menghitung performa pada training data
  • menghitung performa pada dataset validasi yang terpisah
  • MDL: melakukan minimalisasi: size (tree) + size (misclassifications(tree))

Semoga bermanfaat!

https://en.wikipedia.org/wiki/Occam’s_razor

http://www.cs.cmu.edu/~tom/10601_sp09/lectures/DTreesAndOverfitting-1-14-2009-ann.pdf

Forensik Android

Hari ini ada anak bimbingan yang sidang (michelle) dia ngambil tema forensik di Android. Kasusnya di salah satu apps e-payment. Biasanya untuk android musti di root dulu, supaya bisa diakses databasenya. Kemudian mulai dicloning data2nya. Biasanya di folder /root/data/data/ disana ada banyak folder apps. Tinggal dicari folder appsnya. Kemudian tinggal dicari file .db nya. File .db ini kemudian coba dibuka di sql lite. Tentunya dilakukan dulu pengujian integrity test.

Cuman menariknya apps e-payment ini dia pake firebase, sehingga file .db nya hanya sedikit. Jadi agak sedikit ribet untuk proses forensiknya beda dengan apps android lainnya. Firebase ini nyimpen databasenya di cloud. Hasil googling dan nanya2 ada beberapa alternatif untuk ngatasin kasus ini, misalnya melakukan replica aplikasi atau bikin skrip yg nge-patch data dan alamat point Firebase menggunakan API key.nya. Atau ada juga alternatifmelakukan intercept aplikasinya. Untuk meakukan ini SSL pinning nya musti di bypass dulu. Atau bisa juga kita lakukan analisa pake mobSF.

Anaknya dah panik juga karena sampe menjelang sidang, masih belum dapat artefak transaksi. Akhirnya kita bisa coba pendekatan lain, melalui data-data lainnya selain file .db bisa dipelajari dan ditemukan adanya transaksi. Lumayan seru juga sidang hari ini.

referensi:

https://blog.group-ib.com/whatsapp_forensic_artifacts

https://www.raywenderlich.com/3419415-hack-an-android-app-finding-forensic-artifacts

https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/firebase-database

Bagging dan Boosting

Saya lagi baca2 tentang metode ensemble learning. Ensemble learning melakukan kombinasi beberapa algoritma learning untuk meningkatkan performa. Ada dua metode yang populer di model ensemble, yaitu bagging dan boosting.

dari https://www.pluralsight.com/guides/ensemble-methods:-bagging-versus-boosting

Bagging

Bagging atau bootstrap aggregation adalah metode ensemble yang melakukan training beberapa classifier secara terpisah (paralel). Hasil dari training klasifier2 ini kemudian dikombinasi untuk menghasilkan prediksi akhir dari sistem.

Bagging diajukan oleh Breiman pada tahun 1994. Ketika kita melakukan training sebuah mode, hasil prediksi dan parameter modelnya tergantung pada ukuran data dan komposisi data yang digunakan pada training. Pada beberapa training bisa terjadi overfitting, dimana hasil prediksi dan model akhir berbeda jauh. Pada kasus ini, parameter model variance dan prediksi berbeda jauh. Dengan teknik bagging ini dapat digunakan untuk mengurangi model variance dan membuat prediksi lebih independen terhadap noise.

Model bagging yang populer diantaranya adalah random forest. Random forest adalah tipe khusus dari decision tree ensemble. Metrik yang digunakan untuk memprediksi eror dari random forest adalah out-of-bag error (OOB). OOB adalah rata-rata eror prediksi yang dihitung ddari semua sampel

Boosting

Bossting menggunakan beberapa model secara sequensial untuk meningkatkan performa. Beberapa weak model disusun untuk meningkatkan hasil prediksi. Weak Model yang dimaksud adalah model dengan parameter yang sedikit dan ditraining hanya dengan beberapa iterasi, contohnya shallow decision tree. Model lemah ini umumnya hanya menghasilkan performa yang baik pada data tertentu saja. Dengan boosting ditambahkan model lemah lainnya dengan tujuan pada eror dari model sebelumnya.

Kelebihan metode ini adalah memori. Model yang ditraining secara sequensial membutuhkan memori yang lebih sedikit, dibandingkan random forest yang melakukan training beberapa strong model secara bersamaan.

Keuntungan lainnya adalah spesialisasi pada weak model. Model2 ini secara umum tidak menghasilkan performa yang baik. Namun menghasilkan performa yang baik pada beberapa tipe data. Setiap model dapat di susun weight nya pada proses decision.

Boosting digunakan pada task prediksi numerik. Bisa juga digunakan untuk melakukan klasifikasi probabilitas kelas sebagai nilai prediksi. Training diakhiri ketika jumlah iterasi maksimal telah dicapai atau eror model terlalu besar. Boosting umumnya digunakan pada weak model. Teknik boosting cukup sensitif terhadap noise dan outlier, yaitu overfitting.

Gradient boosted trees adalah model ensemble yang menggabungkan beberapa model regression trees menjadi model yang kuat.

referensi:

https://www.pluralsight.com/guides/ensemble-methods:-bagging-versus-boosting

Decision Tree – CART

Pada tulisan sebelumnya telah dibahas tentang Decision Tree, dengan contoh algoritma ID3. Sekarang akan dibahas tentang algoritma CART. Klo ID3 menggunakan perhitungan Information Gain untuk menentukan atribut yang dipilih, di CART digunakan Gini index.

Contohnya misalnya kita masih menggunakan dataset berikut tentang cuaca yang cocok untuk main tenis:

Gini index adalah metrix yang digunakan untuk klasifikasi di CART. Gini menyumpan kuadrat probabilitas dari setuap kelas. Rumusnya :

Outlook

Untuk Outlook ada 3 nilai yaitu sunny, overcast dan rain

Dari tabel kita bisa lihat untuk sunny ada 5 yang terdiri dari 2 yes dan 3 no

Sementara untuk overcast ada 4 yang terdiri dari 4 yes dan 0 no

Rain ada 5 yang terdiri dari 3 yes dan 2 no.

total outlook ada 14

Perhitungan Gini indexnya:

Gini(outlook=sunny)= 1-(2/5)^2-(3/5)^2=1-0,16-0,36=0,48

Gini(outlook=Overcast)=1-(4/4)^2=0

Gini(outlook=rain)=1-(3/5)^2-(2/5)^2=1-0,36-0,16=0,48

Jumlah Gini untuk outlook:

Gini(outlook)=(5/14)*0,48+(4/14)*0+(5/14)*0,48=0,171+0+0,171=0,342

Temperatur:

Temperatur memiliki 3 nilai: Cool Hot dan Mild

Hot: ada 4 dengan 2 yes dan 2 no

Cool: ada 4 dengan 3 yes dan 1 no

Mild: ada 6 dengan 4 yes dan 2 no

Gini(temp=hot)=1-(2/4)^2-(2/4)^2=0,5

Gini(temp=Cool)=1-(3/4)^2-(1/4)^2=1-0,5625-0,0625=0,375

Gini(temp=mild)=1-(4/6)^2-(2/6)^2=1-0,444-0,111=0,445

Gini(temp)=(4/14)*0,5+(4/14)*0,375+(6/14)*0,445=0,142+0,107+0,190=0,439

Humidity:

Humidity hanya memiliki 2 nilai High dan normal

Dari tabel didapat high ada 7 dengan 3 yes dan 4 no

normal ada 7 dengan 6 yes dan 1 no:

Gini(Humidity=high)=1-(3/7)^2-(4/7)^2=1-0,183-0,326=0,489

Gini(humidity=normal)=1-(6/7)^2-(1/7)^2=1-0,734-0,002=0,244

Gini(humidity)=(7/14)*0,489+(7/14)*0,244=0,367

Wind:

Wind hanya ada 2 nilai: weak & strong

Weak ada 8: dengan 6 yes dan 2 no

strong ada 6 dengan 3 yes dan 3 no

Gini(wind=weak)=1-(6/8)^2-(2/8)^2=1-0,5625-0,062=0,375

Gini(wind=strong)=1-(3/6)^2-(3/6)^2=1-0,25-0,25=0,5

Gini(wind)=(8/14)*0,375+(6/14)*0,5=0,428

Root

dari perhitungan kita mendapatkan gini outlook=0,342; temperatur=0,439; humidity=0,367 dan wind=0,428 ; berbeda dengan ID3 yang memilih Gain terbesar, disini kita pilih Gini terkecil yaitu outlook.

sehingga diperoleh rootnya adalah:

outlook

–sunny

–overcast–yes

–rain

Dari tabel terlihat untuk overcast hanya menghasilkan yes, sehingga tidak perlu kita hitung lagi cabangnya

langkah selanjutnya adalah menentukan cabang dari sunny

sunny

tabel untuk sunny adalah sebagai berikut:

Selanjutnya kita hitung nilai gini untuk temperatur dari tabel diatas:

sunny-temperatur

temperatur ada 7 dengan 3 nilai Hot, mild dan cool

Hot ada 2 dengan 0 yes dan 2 no

Cool ada 1 dengan 1 yes dan 0 no

mild ada 2 dengan 1 yes dan 1 no

Gini(outlook=sunny dan temp=hot)=1-(0/2)^2-(2/2)^2=0

Gini(outlook=sunny & temp=cool)=1-(1/1)^2-(0/1)^2=0

Gini(outlook=sunny & temp=mild)=1-(1/2)^2-(1/2)^2=1-0,25-0,25=0,5

Gini(outlook=sunny & temp)=(2/5)*0+(1/5)*0+(2/5)*0,5=0,2

sunny dan humidity

Humidity ada 2 nilai yaitu high dan normal dengan 5 instance

High ada 3 dengan 0 yes dan 3 no

normal ada 2 dengan 2 yes dan 0 no

Gini(outlook=sunny,humidity=high)=1-(0/3)^2-(3/3)^2=0

Gini(outlook=sunny,humidity=normal)=1-(2/2)^2-(0/2)^2=0

Gini(outlook=sunny,humidity)=3/5*0+2/5*0=0

sunny dan wind

ada 5 instance dengan 2 nilai yaitu weak dan strong

weak ada 3 dengan 1 yes dan 2 no

strong ada 2 dengan 1 yes dan 1 no

gini(outlook=sunnny,wind=weak)=1-(1/3)^2-(2/3)^2=0,266

gini(outlook=sunny,wind=strong)=1-(1/2)^2-(1/2)^2=0,2

gini(outlook=sunny,wind)=3/5*0,266+2/5*0,2=0,466

Cabang sunny

Dari perhitinugan didapat gini temperatur=0,2; humidity=0; dan wind=0,466. Nilai terkecil adalah humidity. Dari tabel humidity terdapat dua cabang yaitu high dan normal. Dari nilai high diperoleh klasifikasi yang semuanya bernilai no sedangkan normal selalu yes

Sehingga kita dapatkan

outlook

–sunny

—-humidity

——-high=no

——-normal=yes

–overcast–yes

–rain

Sekarang tinggal menghitung cabang dari rain:

Rain

Rain memiliki tabel berikut:

Selanjutnya kita hitung gini untuk temperatur:

rain – temperatur

hanya ada 2 nilai temperatur yaitu mild dan cool, dengan total ada 5 instance

cool ada 2 dengan 1 yes dan 1 no

mild ada 3 dengan 2 yes dan 1 no

Gini(outlook=rain,temp=cool)=1-(1/2)^2-(1/2)^2=0,5

gini(outlook=rain,temp=mild)=1-(2/3)^2-(1.2)^2=0,44

gini(outlook=rain,temp)=(2/5)*0,5+3/5*0,44=0,466

rain-humidity

dari tabel terlihat ada 5 instance humidity dengan nilai high dan normal

high ada 2 dengan 1 yes dan 1 no

normal ada 3 dengan 2 yes dan 1 no

Gini(outlook=rain, humidity=high)=1-(1/2)^2-(1/2)^2=0,5

gini(outlook=rain, humidit=normal)=1-(2/3)^2-(1/3)^2=0,44

gini(outlook=rain,humidity)=2/5*0,5+3/5*0,44=0,466

Rain-wind

ada 5 instance dengan nilai weak dan strong

weak ada 3 dengan 3 yes dan 0 no

strong ada 2 dengan 0 yes dan 2 no

gini(outlook=rain,wind=weak)=1-(3/3)^2-(0/3)^2=0

gini(outlook=rain,wind=strong)=1-(0/2)^2-(2/2)^2=0

gini(outlook=rain,wind)=3/5*0+2/5*0=0

cabang rain

dari hasil perhitungan gini temperatur=0,466; humidity=0,466; wind=0

sehingga gini yang terkecil adalah wind

wind memiliki 2 nilai yaitu weak dan strong

dari tabel terlihat weak hanya memiliki nilai yes dan string hanya menghasilkan nilai no

dengan demikian perhitungan ini telah selesai dan menghasilkan decision tree yang sama dengan id3 yaitu:

Semoga bermanfaat!

referensi:


https://sefiks.com/2018/08/27/a-step-by-step-cart-decision-tree-example/

Decision Tree Learning

Decisition Tree Learning adalah salah satu metode yang cukup banyak digunakan pada mesin learning. Ada beberapa algoritma yang dapat digolongkan sebagai Decision Tree (DT), yaitu ID3, ASSISTANT dan C4.5.

DT adalah metode untuk memprediksi nilai diskret dari fungsi target. Fungsi yang dipelajari direpresentasikan dalam bentuk decision tree. Tree dapat direpresentasikan juga dengan rules if-then. DT melakukan klasifikasi menggunakan sebuah tree, mulai dari root, node sampai ke leaf (daun). Setiap node melakukan pengujian atribute tertentu, dan mengikuti cabang dari tree ke bawah sampai daun.

Contoh kasus adalah tabel decision tree tentang klasifikasi cuaca yang cocok untuk main tenis. Dengan 3 fitur yaitu: outlook (ramalan cuaca), Humidity (Kelembapan udara) dan Kecepatan Angin.

Outlook memiliki tiga cabang yaitu: sunny (cerah), Overcast (mendung), Rain (Hujan)

Humidity: ada high dan normal

Wind: Strong dan weak

Secara umum DT cocok untuk permasalahan dengan karakteristik berikut:

  1. Kondisi dapat digambarkan dengan sepasang nilai atribut (karakter) tertentu.
  2. Fungsi target memiliki nilai diskrit
  3. Diperlukan Hipotesis yang logis
  4. Training data yang mengandung noise, atau data dengan nilai yang hilang

Contohnya penggunaan: diagnosa data medis, analisa resiko kredit,

Algoritma dasar yang digunakan untuk DT adalah ID3 yang diteliti oleh Quinlan pada tahun 1986, dan kemudian dikembangkan menjadi C4.5 juga oleh Quinlan tahun 1993.

Pertanyaan pertama adalah atribut apa yang dipilih menjadi root? Untuk menentukannya, setiap atribut diuji secara statistik untuk menentukan seberapa baik atribut tersebut melakukan klasifikasi data training. Atribut terbaik kemudian dipilih menjadi root. Kemudian cabangnya dipilih lagi berdasarkan atribut mana yang terbaik dst.

Untuk menentukan atribut mana yang terbaik digunakan information gain. Information gain mengukur seberapa baik atribut tersebut memisahkan data berdasarkan klasifikasi yang diinginkan.

Untuk mendapatkan information gain, kita harus mengukur entropy terlebih dahulu. Entropy adalah ukuran impurity (keteracakan) dari data

Contoh dari tabel tentang Cuaca yang baik untuk main tenis:

Kita hitung nilai Gain dengan rumus berikut:

dengan rumus entropi:

diperoleh nilai Gain berikut:

Nilai Gain tertinggi adalah Outlook, sehingga outlook kita pilih menjadi root.

Kemudian untuk memilih cabang dari sunny harus dihitung lagi gain terbaik sebagai berikut:

Karena nilai gain tertinggi adalah humidity maka dipilih cabang dari sunny adalah humidity. kemudian dilakukan perhitungan lagi sehingga diperoleh Decision Tree akhir adalah sebagai berikut:

Contoh video yang menjelaskan tentang merancang decision tree:

Sampai disini dulu. semoga Bermanfaat!

referensi:

Mitchell, Tom Michael. The discipline of machine learning. Vol. 9. Pittsburgh: Carnegie Mellon University, School of Computer Science, Machine Learning Department, 2006

Pengenalan Machine Learning – 3

Berikut ini contoh dari learning task T, dengan pengukuran performance P, berbasis pengalaman E.

T: Bermain catur

P: Persentase game yang dimenangkan

E: Pengalaman Berlatih melawan diri sendiri


T: Pengenalan kata dari tulisan tangan

P: Persentasi jumlah kata yang berhasil diklasifikasi dengan benar

E: Database gambar-gambar kata dari tulisan tangan yang telah diberi label oleh manusia



T: Kendali otomatis mobil pada jalan 4 lajur menggunakan sensor

P: Jarak tempuh rata-rata hingga terjadi eror menurut penilaian (orang)

E:Urutan gambar-gambar dan perintah kemudi yang direkam ketika mengamati pengemudi orang


T: Kategorisasi pesan email sebagai spam atau legitimate (bukan spam)

P: Persentasi pesan email yang diklasifikasikan dengan benar

E: Database email, dengan label dari orang

Beberapa contoh teknologi machine learning:

  1. Autonomous car
  2. Deteksi objek
  3. Labeling objek pada gambar
  4. Speech recognition

Contoh task Data mining:

Klasifikasi kedaruratan seorang pasien hamil dari data medis dengan task data mining.

Diketahui: data 9714 pasien, masing-masing menjelaskan status kehamilan pasien. Yang terdiri dari 215 fitur. Seperti:

  • kehamilan pertama? (yes/no)
  • Anemia?(y/n)
  • diabetes?(y/n)
  • proses kelahiran sebelumnya prematur? (y/n)
  • hasil ultrasound? (normal/abnormal)
  • operasi c-section?
  • emergency c-section?

Lakukan prediksi pasien yang memiliki resiko tinggi untuk Emergency Cesarean section!

Hasil data mining, dari 18 rules disimpulkan bahwa:

If tidak ada kelahiran sebelumnya yang normal, dan hasil ultrasound trismester 2 tidak normal dan Malpresentation pada saat admisi, Then: Kemungkinan emergency c-section adalah 0,6 ; dari data training 26/41=0,63 dari data tes 12/20= 0,6

Contoh kasus lainnya adalah Analisa resiko Pinjaman.

Dari data seorang pelanggan pada 3 waktu berbeda berikut ini:

  • Tahun kredit
  • Jumlah pinjaman
  • besar Pemasukan
  • Punya rumah?
  • Akun ilegal?
  • Apakah pelanggan yang profitable?

Dari data tersebut bisa dibuat rules untuk memprediksi apakah pelanggan ini profitable atau beresiko.

Begitu juga dari data pembelian pelanggan dapat dipelajari polanya dan diprediksi pembelian berikutnya serta strategi customer retention.

Sampai disini dulu. Insyaallah nanti akan saya lanjutkan pada tulisan berikutnya. Semoga bermanfaat!

Pengenalan Machine Learning-2

Proses Learning adalah generalization. Maksudnya kita menggunakan pengalaman masa lalu yang telah kita miliki, kemudian menggunakan pengalaman tersebut untuk masalah yang dihadapi saat ini jika kondisinya dianggap serupa. Caranya dengan melakukan generalisasi.

Contohnya di masa lalu saya pernah makan apel, ternyata setelah makan apel itu tenggorokan saya gatal. Dari kejadian itu otak kita menyimpulkan bahwa saya alergi apel. Saat ini saya ditawari pisang. Saya belum pernah makan pisang. Namun dari pengalaman memakan apel, otak saya melakukan generalisasi, menganggap bahwa pisang dan apel sama-sama buah, sehingga bisa jadi tenggorokan saya akan gatal juga bila makan pisang.

Menurut Herbert Simon,

Learning denotes changes in the system that are adaptive in the sense that they enable the system to do the task or tasks drawn from the same population more efficiently and more effectively the next time.

H.Simon

Kurang lebih artinya pembelajaran berarti menunjukkan perubahan dalam sistem yang adaptif dalam arti bahwa mereka memungkinkan sistem untuk melakukan tugas (task), atau menyelesaikan task yang diambil dari pengalaman yang sama lebih efisien dan lebih efektif di waktu berikutnya.

Bisa dikatakan proses learning adalah kemampuan untuk melakukan sebuah task pada kondisi yang belum pernah dihadapi sebelumnya.

Beberapa contoh task

  1. Pengenalan pola: mengenali wajah, atau ekspresi, mengenali tulisan tangan, atau suara, atau gambar medis
  2. Membuat pola: membuat gambar, atau urutan gambar
  3. Mengenali anomali (kejanggalan): transaksi kartu kredit yang tidak normal, pola pembacaan sensor yang tidak normal pada instalasi nuklir
  4. Prediksi: harga saham, atau kurs mata uang asing

Contoh aplikasi mesin learning:

  1. Perdagangan: Market Basket analysis (analisa pola pembelian barang di toko), customer relationship management (menganalisa pola belanja pelanggan di masa lalu)
  2. Keuangan: Credit scoring (penilaian pengajuan kredit), Fraud detection (deteksi kecurangan)
  3. Manufacturing: Kontrol, robotik, troubleshooting
  4. Medicine: Medical diagnosis
  5. Telecommunications: spam filtering, intrusion detection
  6. Bioinformatic: Motif, alignment
  7. Web Mining: Search Engine

Sampai disini dulu, insyaallah nanti saya lanjutkan pada tulisan berikut. Semoga Bermanfaat!

Bahasa R dasar – 4

untuk membaca file excel kita dapat menggunakan library openxlsx. Cara manggilnya:

library(openxlsx)

untuk menampilkan tabel yang telah diimport menggunakan perintah

print(nama_tabel) 

untuk menampilkan kolom tertentu dari tabel dengan cara

print(nama_tabel$nama_kolom)

Dengan menggunakan perintah diatas, data di tabel bisa ditampilkan berdasarkan kategori/kolom tertentu. Untuk menampilkan grafik batang contohnya menampilkan tren jumlah mahasiswa dari tahun ke tahun perfakultas dari tabel data mahasiswa sebagai berikut:

summarybyfakultas_nama_variabel <- aggregate(x=mahasiswa_namatabel$JUMLAH_namakolom, by=list(Kategori=mahasiswa$FAKULTAS, Tahun=mahasiswal$ANGKATAN), FUN=sum)
summarybyfakultas <- setNames(summarybyfakultas, c("fakultas","tahun", "jumlah_mahasiswa"))
summarybyfakultas
summarybyfakultas$tahun = as.factor(summarybyfakultas$tahun)
ggplot(summarybyfakultas, aes(x=fakultas, y=jumlah_mahasiswa)) +
geom_bar(stat = "identity", aes(fill = tahun), width=0.8, position = position_dodge(width=0.8)) +
theme_classic()

Untuk membuat Pie Chart di R bisa menggunakan ggplot dan coord_polar

contoh:

piechart<- ggplot(nama_tabel, aes(x="", y=...., fill=...))+ geom_bar(width = 1, stat = "identity")
piechart <- piechart + coord_polar("y", start=0)
piechart <- piechart + ggtitle("Judul Tabel")
piechart <- piechart + scale_fill_brewer(palette="Blues_warna")+ theme_minimal()
piechart <- piechart + guides(fill=guide_legend(title="Judul legen"))
piechart <- piechart + ylab("keterangan legend")
piechart

Semoga Bermanfaat!

referensi:

academy.dqlab.id

Bahasa R dasar -3

Misalnya kita sudah membuat sebuah vektor:

a(1:10)

berarti vektor a isinya angka 1 sampai dengan 10. Sekarang kita dapat mengambil sebuah data dari vektor a. Misalnya kita ingin mengambil angka 5. Pada vektor setiap data memiliki nomer index, atau urutan ke berapa dia ada di vektor tersebut. Penulisan index adalah dengan menggunakan kurung siku yang mengapit sebuah angka urutan. Cara penulisan ini disebut juga accessor

Beberapa catatan tentang struktur data di R:

  • Vector tipe data yang cuman bisa diisi dengan tipe data yang sama. alias semua isinya harus memiliki tipe data yang sama, misalkan angka ataupun teks. Pembuatan vector menggunakan fungsi c, dan bisa diakses dengan accessor dengan angka indeks yang diapit kurung siku. Namun jika berupa named vector, maka indeksnya adalah berupa teks.
  • List adalah tipe data yang dapat diisi dengan tipe data berbeda, contoh dengan campuran teks dan angka misalnya. Pembuatan list adalah menggunakan fungsi list, dan seperti vector elemen pada list diakses dengan accessor yang diapit kurung siku.
  • Data Frame adalah tipe data yang terdiri dari satu atau beberapa vector ataupun list. Untuk membuat data frame kita gunakan fungsi  data.frame, dan kita bisa mengakses menggunakan accessor $ diikuti nama kolom, dan juga angka indeks.

Untuk menampilkan grafik di R, contohnya kita dapat menggunakan paket ggplot. Untuk menggunakannya paket ini bisa menggunakan perintah

library("ggplot2")

membuat kanvas: nama_kanvas<-ggplot(nama_data.frame, aes(x=nama_vektor, y=nama_vektor, fill=nama_vektor)

membuat bentuk geometri bar:

nama_kanvas+geom_bar(width=ukuran_lebar_tiap_bar, stat=transformasi_data_contoh”identity”)

menambahkan judul

nama_kanvas + ggtitle(“…”)

menambah caption pada sumbu x

+ xlab(“..”)

pada sumbu y

+ylab(“..”)

Semoga Bermanfaat!

reference:

https://academy.dqlab.id/