Machine Learning
Machine learning merupakan serangkaian teknik yang dapat membantu dalam menangani dan memprediksi data yang sangat besar dengan cara mempresentasikan data-data tersebut dengan algoritma pembelajaran(Danukusumo, 2017).
Istilah machine learning pertama kali didefinisikan oleh Arthur Samuel pada tahun 1959. Menurut Arthur Samuel, machine learning adalah suatu bidang ilmu komputer yang memberikan kemampuan pembelajaran kepada komputer untuk mengetahui sesuatu tanpa pemrograman yang jelas.
Menurut (Mohri et.al, 2012) machine learning dapat didefinisikan sebagai metode komputasi berdasarkan pengalaman untuk meningkatkan performa atau membuat prediksi yang akurat. Definisi pengalaman disini ialah informasi sebelumnya yang telah tersedia dan bisa dijadikan data pembelajar.
Dalam pembelajaran machine learning, terdapat skenario-skenario seperti :
1. Supervised Learning
Penggunaan skenario supervised learning, pembelajaran menggunakan masukan data pembelajaran yang telah diberi label. Setelah itu membuat prediksi dari data yang telah diberi label.
2. Unsupervised Learning
Penggunaan skenario unsupervised learning, pembelajaran menggunakan masukan data pembelajaran yang tidak diberi label. Setelah itu mencoba untuk mengelompokan data berdasarkan karakteristik-karakteristik yang ditemui.
3. Reinforcement learning
Pada skenario reinforcement learning fase pembelajaran dan tes saling dicampur. Untuk mengumpulkan informasi pembelajar secara aktif dengan berinteraksi ke lingkungan sehingga untuk mendapatkan balasan untuk setiap aksi dari pembelajar.
Langkah-langkah Machine Learning:
1. Identifikasi Masalahmu
Tahapan pertama dalam proses Machine Learning yaitu harus mampu mendeteksi dan memilah masalah yang ada di dalam programnya. Apa saja masalah atau tujuan yang hendak dicapai dengan proses Machine Learning ini, termasuk ketika pengumpulan data. Karena tanpa data, maka masalah tidak akan bisa diselesaikan oleh Machine Learning. Data data tersebut bisa saja berupa Excel, MS Access, maupun file-file lain sebagainya. Langkah ini merupakan bentuk dasar untuk pembelajaran kedepannya. Dari permasalahan yang ada, kamu dapat memecahnya menjadi beberapa pertanyaan seperti:
- Apa tujuanmu? Apa yang ingin kamu prediksi?
- Feature (Bobot) seperti apa yang akan kamu gunakan?
- Data seperti apa yang ingin kamu input? Apakah data itu tersedia?
- Masalah seperti apa yang sedang kita hadapi? Binary Classification? Ataukah Clustering?
- Improvement seperti apa yang diharapkan?
- Bagaimana cara kamu mengukur Feature (bobot) dalam data?
2. Mengumpulkan dan Mempersiapkan Data
Langkah selanjutnya dalam proses Machine Learning yaitu mengumpulkan dan mempersiapkan data. Semakin banyak dan berkualitas data yang dimiliki, maka performa dari Machine Learning akan semakin baik. Contoh metode dalam pengumpulan data seperti web scraping dan Data Mining. Namun secara umum tahapnya dapat dijabarkan seperti berikut.
Pertama, data yang akan digunakan "diajarkan" pada tahapan memilah data dipisahkan menjadi tiga bagian, yaitu training data (data yang akan dilatih), validation data (data yang dipakai untuk validasi) dan test data (data yang dipakai untuk percobaan prediksi). Hal ini juga menegaskan bahwa Machine Learning yaitu suatu hal yang sangat bergantung pada adanya data. Dari data ini maka kita dapat memutuskan akan menggunakan algoritma seperti apa di tahap selanjutnya.
3. Seleksi Algoritma Untuk Solusi
Tahap selanjutnya adalah membuat model data. Tahapan ini melibatkan pemilihan algoritma dan representasi data yang sesuai dalam bentuk model. Data yang disiapkan dibagi menjadi dua bagian, yaitu data training dan testing. Data training digunakan untuk pengembangan model dan data testing digunakan sebagai referensi. Setelah itu barulah dilakukan validasi model yaitu pengujian terhadap model data dengan validation data. Hal ini bermanfaat untuk mendapat feedback dari input, proses serta output yang dipakai.
Idealnya untuk mendapatkan model terbaik maka semua algoritma yang tersedia di tools tersebut harus dicoba untuk mendapatkan model terbaik. Akan tetapi, seringkali hal ini tidak memungkinkan bahkan untuk seorang Data Scientist yang cukup berpengalaman. Penyebabnya bisa karena waktu yang tidak cukup atau pengetahuan tentang algoritma yang kurang memadai. Untuk pemula, sebaiknya dipilih beberapa model atau biasanya cukup satu dulu tetapi yang sederhana dan mudah dipahami.
4. Evaluasi dan Perbaikan Terhadap Model
Setelah memiliki model Machine Learning dan model tersebut dapat digunakan untuk memprediksi data tes, langkah terakhir adalah kita harus menganalisa performa model dan melakukan evaluasi dari model tersebut. Untuk menguji keakuratan dan performa dari model digunakan data testing (data uji). Ini akan menentukan keakuratan suatu algoritma yang telah diseleksi pada tahap sebelumnya.
Caranya adalah dengan membaca error metrics. Error metrics setiap permasalahan pun berbeda beda, contohnya untuk permasalahan classification terdapat accuracy_score, precision, recall, f1-score, r2_score dan confusion matrix. Untuk accuracy_score, precision, recall, dan f1-score dapat diakses dengan satu fungsi saja yaitu classification_report.
Dasar-Dasar Python
Apa itu Python dan kenapa belajar Python?
Apa saja alat-alat yang diperlukan untuk belajar python?
Apa itu Python?
Python merupakan bahasa pemrograman tingkat tinggi yang diracik oleh Guido van Rossum.Python banyak digunakan untuk membuat berbagai macam program, seperti: program CLI, Program GUI (desktop), Aplikasi Mobile, Web, IoT, Game, Program untuk Hacking, dsb.Python juga dikenal dengan bahasa pemrograman yang mudah dipelajari, karena struktur sintaknya rapi dan mudah dipahami.
Kenapa belajar Python?
- Cepat dan efektif.
- Mudah dipelajari.
- Banyak digunakan di perusahaan besar.
- Sekedar ingin tahu saja.
Visual Data
Pengertian Data Visualization
Menurut Tableau, visualisasi data atau data visualization adalah tampilan berupa grafis atau visual dari informasi dan data.Dengan kata lain, data visualization mengubah kumpulan data menjadi hal lebih sederhana untuk ditampilkan. Dengan menggunakan elemen visual tersebut, pembaca akan lebih mudah memahami tren, outliers, dan pola dalam suatu data. Dalam bisnis, data visualization memungkinkan para pembuat keputusan untuk melihat analitik yang disajikan secara visual.
Dengan begitu, mereka dapat memahami konsep yang sulit atau mengidentifikasi pola baru. Hal ini akan membuat pengambilan keputusan menjadi lebih mudah dan tepat.
Fungsi Data Visualization
1. Mempermudah komunikasi
Salah satu kegunaan visualisasi data adalah untuk menghadirkan mempermudah komunikasi antar-stakeholder. Visualisasi data memberikan informasi yang sangat berguna untuk kepentingan bisnis.Pengambil keputusan di perusahaan akan dapat dengan mudah melihat dan memahami mengenai hasil kerja perusahaan, berdasarkan variabel-variabel yang dimiliki. Penyajian data dalam bentuk mentah atau berupa tulisan saja tentu akan mempersulit orang awam, terutama pimpinan perusahaan untuk mengetahui maksudnya.
2. Mempercepat pengambilan keputusan
Manfaat lanjutan dari komunikasi yang lebih jelas adalah proses decision making yang jadi semakin efektif.Oleh karenanya, pentingnya visualisasi data adalah agar pengambil kebijakan dapat dengan cepat memahami dengan baik data tersebut dan dapat mengambil keputusan sesegera mungkin.Semakin lama waktu yang diperlukan untuk memahami data dan permasalahan, waktu yang diperlukan untuk mengambil keputusan juga akan semakin panjang.
3. Memperkaya perspektif tim
Ketika suatu data dan informasi mudah dicerna oleh lebih banyak orang, maka mereka juga akan lebih mudah mendapatkan ide untuk berbagi perspektif masing-masing.Bayangkan jika di dalam satu tim, hanya terdapat beberapa orang saja yang mengerti sajian data yang cukup teknis.Mereka pasti kesulitan untuk memahaminya dan merasa ragu harus memberikan pendapat seperti apa.
4. Mengidentifikasi masalah
Fungsi data visualisasi yang terakhir adalah sebagai pengidentifikasi masalah.
Data yang telah disajikan menjadi informasi yang mudah dicerna akan mampu menghadirkan beberapa insight penting, termasuk potensi isu, tren, atau suatu pola tertentu.Hal ini tentu akan membantu perusahaan untuk bisa mengantisipasi dan mengatasi permasalahan yang berpotensi merugikan bisnis.
Tipe Visualisasi Data
Dengan banyaknya tujuan serta variabel yang dibutuhkan dalam menghasilkan suatu data, maka terdapat berbagai macam pula visualisasi yang dihasilkan.Menurut Klipfolio, terdapat lima tipe visualisasi data yang lazim digunakan.
1. Temporal
Salah satu tipe visualisasi data yang paling sering ditemui adalah tipe visualisasi temporal. Tipe ini biasanya cocok untuk menunjukkan hasil dari rangkaian data yang berbentuk linear, atau satu dimensi saja.Ciri utama dari visualisasi tipe ini adalah berupa garis, yang bermulai dan berakhir di titik tertentu. Garis tersebut dapat berdiri sendiri, atau bersinggungan dengan garis lainnya.Contoh visualisasi data seperti ini adalah diagram scatterplot, timeline, data time series, dan diagram garis.
2. Hierarki
Tipe selanjutnya dalam data visualization adalah hierarki. Tipe seperti ini umum digunakan untuk menunjukan hubungan antara suatu kelompok terhadap kelompok lain yang lebih besar.Visualisasi seperti ini cocok untuk menunjukkan munculnya data-data baru yang berasal dari suatu penyebab.
Salah satu penggunaan yang umum adalah diagram pohon.
3. Network
Pada dasarnya, sekumpulan data atau dataset bisa saling berpengaruh satu sama lain.Oleh karena itu, penggunaan network pada data visualization adalah untuk mempermudah hubungan antar dataset tersebut.Salah satu contoh yang paling sering digunakan adalah word cloud dan node-link diagram.
4. Multidimensi
Seperti namanya, tipe visualisasi multidimensi berarti cocok untuk memvisualisasikan data yang memiliki banyak variabel atau dimensi.Karena banyaknya dataset yang ditampilkan, biasanya visualisasi ini akan lebih menarik dan mencolok agar lebih mudah dipahami.Salah satu contoh visualisasi ini adalah histogram, pie chart, dan stacked-bar.
5. Geospasial
Tipe data visualization yang terakhir yaitu geospasial. Pada tipe kali ini, visualisasi merepresentasikan wujud nyata dari suatu benda, atau ruang yang memiliki data untuk ditampilkan.Pada umumnya, visualisasi geospasial sering kali digunakan untuk menunjukkan penetrasi penjualan di suatu wilayah, peta pertumbuhan bisnis, hingga menunjukkan flow pada suatu UX.Contoh visualisasi geospasial yang paling sering digunakan adalah heatmap dan kartograf.
Software Visualisasi Data
Beberapa contoh aplikasi atau software yang dapat digunakan untuk membuat visualisasi data adalah sebagai berikut.
1. Tableau
Tableau merupakan software yang bisa membantumu memproduksi berbagai bentuk visualisasi data, mulai dari grafik, chart, dan mapping yang interaktif.Fitur di dalamnya juga memungkinkan anggota tim untuk dapat langsung berkolaborasi di waktu yang bersamaan.
2. QlikView
Software yang satu ini akan membantumu menyatukan berbagai jenis sumber database maupun spreadsheet.Lalu kamu akan mengolahnya menjadi tabel, bar chart, grafik, pie chart, dan lain-lain. Selain menjadi alat untuk membuat visualisasi data, QlikView juga dikenal sebagai data discovery platform.
3. Microsoft Power BI
Apakah data yang kamu miliki cenderung berbentuk data intelijen bisnis?
Jika ya, software yang satu ini lebih cocok digunakan olehmu. Microsoft Power BI dapat kamu gunakan untuk membuat laporan dan analisis.Semua visualisasi data perusahaan dapat disentralisasi di Microsoft Power BI, sehingga memberikan kemudahan akses bagi semua anggota tim.
4. Microsoft Excel
Software pasti sudah tidak asing lagi bagimu.Selain dapat digunakan untuk mengolah data, tentunya Excel dapat kamu manfaatkan untuk memproduksi visualisasi data yang tidak kalah menarik dari software di atas.Interface-nya yang sederhana banyak disukai oleh para data analis pemula.
5. Sisense
Sisense memiliki fitur yang akan memudahkanmu dalam membuat sebuah visualisasi data yang interaktif lalu mengolahnya menjadi sebuah dashboard.Teknologi Sisense dirancang untuk big data dan dilengkapi dengan artificial intelligence, membuat analisis data menjadi lebih prediktif dan mudah.Nah, itulah penjelasan dari Glints mengenai data visualization. Jika kamu tertarik dengan informasi sejenis, kamu bisa mendapatkannya dengan terus kunjungi Glints Blog.Di kategori Data Analytics, kamu akan mendapatkan beragam informasi menarik lainnya mengenai data analysis.
Preprocessing Data
Sebelum terjun ke dalam dunia big data analytics, data preprocessing adalah sebuah istilah yang wajib kamu ketahui.Proses kerja ini sejatinya dapat ditemukan pada setiap perusahaan yang menggunakan data dalam jumlah besar.Pasalnya, ia diperlukan supaya data yang didapatkan perusahaan bisa diolah dan disaring dengan baik.
Secara tidak langsung, ia bisa mempermudah proses data mining yang diluncurkan perusahaan.
Apa Itu Data Preprocessing?
Melansir laman Geeks for Geeks, data preprocessing adalah teknik yang digunakan untuk mengubah data mentah dalam format yang berguna dan efisien.Inisiatif ini diperlukan karena data mentah seringkali tidak lengkap dan memiliki format yang tidak konsisten. Kualitas data sendiri memiliki korelasi langsung dengan keberhasilan setiap proyek yang melibatkan analisis data.Preprocessing sendiri melibatkan validasi dan imputasi data.
Tujuan dari validasi adalah untuk menilai tingkat kelengkapan dan akurasi data yang tersaring. Di sisi lain, tujuan imputasi adalah untuk memperbaiki kesalahan dan memasukkan nilai yang hilang, baik secara manual atau otomatis melalui program business process automation (BPA).
Data preprocessing biasanya digunakan pada aplikasi rule-based dan yang berbasis database.
Dalam machine learning, kegiatan ini sangat penting untuk memastikan bahwa big data sudah diformat dan informasi yang dikandungnya dapat ditafsirkan dan algoritma perusahaan.
Tahap Kerja Data Preprocessing
Sejatinya, data preprocessing adalah langkah awal yang wajib diterapkan sebelum perusahaan memulai penyaringan insight.Namun, supaya bisa berjalan secara optimal, proses kerjanya dibagi menjadi 4 tahap yang berbeda.Meskipun berbeda, masing-masing tahap kerja saling berkaitan dan memiliki peran penting dalam pembentukan kualitas proses penyaringan data.Nah, supaya lebih jelas, berikut adalah keempat tahap kerja data preprocessing yang perlu kamu pelajari.
1. Data cleaning
Melansir laman Techopedia, tahap kerja pertama dalam data preprocessing adalah data cleaning.Dalam tahap kerja ini, data dibersihkan melalui beberapa proses seperti mengisi nilai yang hilang, menghaluskan noisy data, dan menyelesaikan inkonsistensi yang ditemukan.Data juga bisa dibersihkan dengan dibagi menjadi segmen-segmen yang memiliki ukuran serupa lalu dihaluskan (binning).Kamu juga bisa menyesuaikannya dengan fungsi regresi linear atau berganda (regression), atau dengan mengelompokkannya ke dalam kelompok-kelompok data yang serupa (grouping).
2. Data integration
Tahap kerja berikutnya dalam proses data preprocessing adalah data integration.
Di sini, data dengan representasi yang berbeda disatukan dan semua konflik dalam di dalamnya diselesaikan.Tahap kerja satu ini merupakan proses lanjutan dari data cleansing dengan tujuan untuk membuat data lebih halus.
3. Data transformation
Data transformation adalah tahap kerja selanjutnya dalam proses data preprocessing.Pada tahap ini, data akan dinormalisasi dan digeneralisasikan. Normalisasi sendiri adalah sebuah proses di mana perusahaan memastikan bahwa tidak ada data yang berlebihan.
Semua data akan disimpan dalam satu tempat dan semua dependensinya haruslah logis.
Langkah ini juga diambil untuk mentransformasikan data ke dalam bentuk yang sesuai untuk proses mining.
4. Data reduction
Tahap kerja terakhir dalam proses kerja data preprocessing adalah data reduction.Data mining adalah sebuah teknik yang digunakan untuk menangani data dalam jumlah yang besar.Saat bekerja dengan volume data yang besar, proses analisis akan menjadi lebih sulit.Nah, untuk mempermudah proses data mining, kamu bisa menggunakan teknik data reduction.Sebab, menurut Monkey Learn, inisiatif ini bisa meningkatkan efisiensi penyimpanan dan mengurangi representasi data dalam data warehouse.
Manfaat Data Preprocessing
Setelah membaca definisinya, jelas bahwa data preprocessing adalah sebuah proses kerja yang sangat penting.Selain memperlancar proses data mining, langkah ini juga menawarkan beberapa manfaat lain untuk perusahaan.Seperti apa manfaat lainnya yang ditawarkan data preprocessing? Berikut adalah penjelasannya, sesuai disebutkan oleh Science Direct.
- membuat data lebih mudah untuk dibaca
- mengurangi beban representasi dalam data
- mengurangi durasi data mining secara signifikan
- mempermudah proses analisis data dalam machine learning
Regresi Linear
Konsep linear regression
Regresi merupakan machine learning kategori supervised learning dengan target data berupa data numerik. linear regression atau least-square merupakan sebuah metode untuk memodelkan hubungan antar variabel terikat/target (Y) dengan satu atau lebih variabel bebas/prediktor (X). Linear regression digunakan untuk prediksi dan modelling berdasarkan data-data yang ada. Regresi linear sederhana merupakan pemodelan regresi berdasarkan 1 variabel prediktor.
Persamaan regresi linear sederhana
y^=β0+β1∗x1
di mana: β_0=intersept β_1 = beta coefficient β_1 y = target variabel x = prediktor x_1
Regresi linear ganda
Regresi linear ganda merupakan pemodelan regresi menggunakan lebih dari satu variabel prediktor.
y^=β0+β1x1+β2x2+...+βnxn
Decision Tree
Decision tree adalah algoritma machine learning yang menggunakan seperangkat aturan untuk membuat keputusan dengan struktur seperti pohon yang memodelkan kemungkinan hasil, biaya sumber daya, utilitas dan kemungkinan konsekuensi atau resiko. Konsepnya adalah dengan cara menyajikan algoritma dengan pernyataan bersyarat, yang meliputi cabang untuk mewakili langkah-langkah pengambilan keputusan yang dapat mengarah pada hasil yang menguntungkan.
Dimana setiap cabang mewakili hasil untuk atribut, sedangkan jalur dari daun ke akar mewakili aturan untuk klasifikasi. That"s why algoritma ini disebut decision tree karena pilihannya bercabang, membentuk struktur yang terlihat seperti pohon. Kamu bisa membuat pohon keputusan baik itu secara vertikal atau horizontal tergantung pada preferensi kamu. Membaca pohon keputusan horizontal dari kiri ke kanan dan pohon keputusan vertikal dari atas ke bawah.
Mengapa Menggunakan Decision Tree?
Berikut ini adalah dua alasan alasan kamu untuk menggunakan algoritma decision tree;
1) Decision tree biasanya meniru kemampuan berpikir manusia saat membuat keputusan, sehingga mudah dimengerti.
2) Logika dibalik decision tree dapat dengan mudah dipahami karena menunjukkan struktur seperti pohon.
Kelebihan Decision TreeAgar semakin lebih kenal dengan algoritma decision tree kamu juga harus mengetahui kelebihan menggunakan algoritma decision tree antara lain;
1) Mudah dibaca dan ditafsirkan tanpa perlu pengetahuan statistik;
2) Mudah disiapkan tanpa harus menghitung dengan perhitungan yang rumit;
3) Proses Data Cleaning cenderung lebih sedikit, kasus nilai yang hilang dan outlier kurang signifikan pada data decision tree.
Kekurangan Decision Tree
Untuk bahan pertimbangan kamu dalam memilih algoritma data science untuk diterapkan pada dataset yang kamu miliki, kamu juga perlu mengetahui kekurangan decision tree. Disamping kelebihan yang telah dibahas sebelumnya, adapun kekurangan algoritma decision tree antara lain;
1) Sifat tidak stabil, ini menjadi salah satu keterbatasan dari algoritma decision tree ketika terdapat perubahan kecil pada data dapat menghasilkan perubahan besar dalam struktur pohon keputusan;
2) Kurang efektif dalam memprediksi hasil dari variabel kontinu.
Naïve Bayes
Naive Bayes adalah algoritma machine learning untuk masalah klasifikasi. Ini didasarkan pada teorema probabilitas Bayes. Hal ini digunakan untuk klasifikasi teks yang melibatkan set data pelatihan dimensi tinggi. Beberapa contohnya adalah penyaringan spam, analisis sentimental, dan klasifikasi artikel berita.
1. Naive Bayes? Algoritma Apa itu
Algoritma Naive Bayes adalah algoritma yang mempelajari probabilitas suatu objek dengan ciri-ciri tertentu yang termasuk dalam kelompok/kelas tertentu. Singkatnya, ini adalah pengklasifikasi probabilistik. Sahabat data pasti bertanya-tanya mengapa disebut demikian?
Algoritma Naive Bayes disebut "naif" karena membuat asumsi bahwa kemunculan fitur tertentu tidak tergantung pada kemunculan fitur lainnya.
Misalnya, jika kalian mencoba mengidentifikasi buah berdasarkan warna, bentuk, dan rasanya, maka buah berwarna oranye, bulat, dan tajam kemungkinan besar adalah jeruk. Bahkan jika ciri-ciri ini bergantung satu sama lain atau pada keberadaan ciri-ciri lain, semua sifat ini secara individual berkontribusi pada kemungkinan bahwa buah ini adalah jeruk dan itulah sebabnya buah ini dikenal sebagai "naif."
Adapun bagian "Bayes", mengacu pada ahli statistik dan filsuf, Thomas Bayes dan teorema yang
dinamai menurut namanya, teorema Bayes, yang merupakan dasar untuk Algoritma Naive Bayes.
2. Pemodelan dengan Naive Bayes
- Library Python, Scikit learn adalah library paling berguna yang membantu kami membangun Naive Bayes model dengan Python. Kami memiliki tiga jenis model Naive Bayes berikut dibawah Scikit pelajari library Python:
- Gaussian Naive BayesIni adalah pengklasifikasi Naive Bayes paling sederhana yang memiliki asumsi bahwa data dari masing-masing label diambil dari distribusi Gaussian sederhana.
- Multinomial Naive BayesPengklasifikasi Naive Bayes lain yang berguna adalah Multinomial Naive Bayes di mana fitur-fiturnya adalah diasumsikan diambil dari distribusi Multinomial sederhana. Naive Bayes semacam itu adalah paling sesuai untuk fitur yang mewakili jumlah diskrit.
- Bernoulli Naive BayesModel penting lainnya adalah Bernoulli Naive Bayes di mana fitur diasumsikan biner (0s dan 1s). Klasifikasi teks dengan model 'bag of words' dapat menjadi aplikasi dari Bernoulli Naive Bayes.
3. Kelebihan dan Kekurangan
Berikut ini adalah beberapa kelebihan menggunakan pengklasifikasi Naive Bayes:
- Klasifikasi Naive Bayes mudah diimplementasikan dan cepat.
- Ini akan menyatu lebih cepat daripada model diskriminatif seperti regresi logistik.
- Membutuhkan lebih sedikit data pelatihan.
- Sifatnya sangat skalabel, atau skalanya linier dengan jumlah prediktor dan titik data.
- Dapat membuat prediksi probabilistik dan dapat menangani kontinu beserta diskrit data.
- Algoritma klasifikasi Naive Bayes dapat digunakan untuk biner maupun multi-kelas masalah klasifikasi keduanya.
Kelemahan
Berikut ini adalah beberapa kekurangan dari penggunaan pengklasifikasi Naive Bayes:
Salah satu Kelemahan terpenting dari klasifikasi Naive Bayes adalah fiturnya yang kuat kemandirian karena dalam kehidupan nyata hampir tidak mungkin untuk memiliki seperangkat fitur yang benar-benar independen satu sama lain.
Masalah lain dengan klasifikasi Naive Bayes adalah 'frekuensi nol' yang berarti bahwa jika variabel kategori memiliki kategori tetapi tidak diamati dalam data pelatihan set, maka model Naive Bayes akan menetapkan probabilitas nol untuk itu dan itu tidak akan dapat untuk membuat prediksi
4. Aplikasi Naive Bayes
Berikut ini adalah beberapa aplikasi umum dari klasifikasi Naive Bayes:
- Prediksi real-time: Karena kemudahan implementasi dan komputasi yang cepat, ini dapat menjadi digunakan untuk melakukan prediksi secara real-time.
- Prediksi multi-kelas: Algoritma klasifikasi Naive Bayes dapat digunakan untuk memprediksi probabilitas posterior dari beberapa kelas variabel target.
- Klasifikasi teks: Karena fitur prediksi multi-kelas, Naive Bayes algoritma klasifikasi sangat cocok untuk klasifikasi teks. Itu sebabnya itu juga digunakan untuk memecahkan masalah seperti penyaringan spam dan analisis sentimen.
- Sistem rekomendasi: Seiring dengan algoritma seperti pemfilteran kolaboratif, Naive
- Bayes membuat sistem Rekomendasi yang dapat digunakan untuk menyaring informasi yang tidak terlihat dan untuk memprediksi cuaca pengguna akan menyukai sumber daya yang diberikan atau tidak.
K-Nearest Neighbor (KNN)
Algoritma K-Nearest Neighbor (KNN) merupakan algoritma machine learning sederhana dan mudah diterapkan yang dapat digunakan untuk menyelesaikan masalah klasifikasi dan regresi. Algoritma ini termasuk dalam jenis supervised learning.
Pengertian K-Nearest Neighbor (KNN)
Algoritma K-Nearest Neighbor (KNN) adalah algoritma machine learning yang bersifat non-parametric dan lazy learning.
Metode yang bersifat non-parametric memiliki makna bahwa metode tersebut tidak membuat asumsi apa pun tentang distribusi data yang mendasarinya. Dengan kata lain, tidak ada jumlah parameter atau estimasi parameter yang tetap dalam model, terlepas data tersebut berukuran kecil ataupun besar.
Algoritma non-parametric seperti KNN menggunakan sejumlah parameter yang fleksibel, dan jumlah parameter seringkali bertambah seiring data yang semakin banyak. Algoritma non-parametric secara komputasi lebih lambat, tetapi membuat lebih sedikit asumsi tentang data.
Algoritma KNN juga bersifat lazy learning, yang artinya tidak menggunakan titik data training untuk membuat model. Singkatnya pada algoritma KNN tidak ada fase training, kalaupun ada juga sangat minim.
Semua data training digunakan pada tahap testing. Hal ini membuat proses training lebih cepat dan tahap testing lebih lambat dan cenderung ‘mahal’ atau membutuhkan banyak cost dari sisi waktu dan memori.
Dalam kasus terburuk, KNN membutuhkan lebih banyak waktu untuk memindai semua titik data. Proses ini juga akan membutuhkan lebih banyak memori untuk menyimpan data training.
K-Nearest Neighbor termasuk salah satu algoritma paling sederhana yang digunakan dalam machine learning untuk regresi dan klasifikasi. KNN mengikuti strategi “bird of a feather” dalam menentukan di mana data baru sebaiknya ditempatkan.
Algoritma KNN mengasumsikan bahwa sesuatu yang mirip akan ada dalam jarak yang berdekatan atau bertetangga. Artinya data-data yang cenderung serupa akan dekat satu sama lain.
KNN menggunakan semua data yang tersedia dan mengklasifikasikan data atau kasus baru berdasarkan ukuran kesamaan atau fungsi jarak. Data baru kemudian ditugaskan ke kelas tempat sebagian besar data tetangga berada.
Poin-poin Penting dalam Algoritma KNN
Tujuan dari algoritma k-nearest neighbor adalah untuk mengidentifikasi tetangga terdekat dari titik kueri yang diberikan, sehingga kita dapat menetapkan label kelas ke titik tersebut.
Untuk mencapai tujuan tersebut, berikut ini adalah beberapa poin penting yang perlu diperhatikan:
Menentukan metrik jarak
Untuk menentukan titik data mana yang paling dekat dengan titik kueri tertentu, jarak antara titik kueri dan titik data lainnya perlu dihitung. Metrik jarak ini membantu membentuk batasan keputusan, yang mengarahkan kueri partisi ke kelas yang berbeda.
Untuk menemukan titik serupa terdekat, kita bisa menggunakan perhitungan jarak seperti Euclidean distance, Hamming distance, Manhattan distance dan Minkowski distance.
Penjelasan mengenai jenis-jenis perhitungan jarak atau yang biasa disebut dengan distance metric dapat dibaca pada artikel ini
Mendefinisikan nilai K
Nilai k pada algoritma KNN mendefinisikan berapa banyak tetangga yang akan diperiksa untuk menentukan klasifikasi titik kueri tertentu. Misalnya, jika k=1, instance akan ditugaskan ke kelas yang sama dengan tetangga terdekatnya.
Mendefinisikan k dapat menjadi tindakan penyeimbang karena nilai yang berbeda dapat menyebabkan overfitting atau underfitting. Nilai k yang lebih rendah dapat memiliki varians yang tinggi, tetapi bias yang rendah. Sedangkan nilai k yang lebih besar dapat menyebabkan bias yang tinggi dan varians yang lebih rendah.
Pilihan k akan sangat bergantung pada data input karena data dengan lebih banyak outlier atau noise kemungkinan akan berkinerja lebih baik dengan nilai k yang lebih tinggi. Secara keseluruhan, disarankan untuk memilih nilai k berupa angka ganjil untuk menghindari ikatan dalam klasifikasi. Strategi cross validation juga dapat digunakan untuk membantu kita memilih k yang optimal untuk dataset yang kita miliki.
Cara Kerja Algoritma K-Nearest Neighbor
KNN bekerja berdasarkan prinsip bahwa setiap titik data yang berdekatan satu sama lain akan berada di kelas yang sama. Dengan kata lain, KNN mengklasifikasikan titik data baru berdasarkan kemiripan.
Penerapan K-Nearest Neighbor
Klasifikasi adalah masalah penting dalam bidang data science dan machine learning. KNN adalah salah satu algoritma tertua namun akurat yang digunakan untuk klasifikasi pola dan model regresi.
Berikut adalah beberapa area di mana algoritma k-nearest neighbor dapat digunakan:
Peringkat kredit: Algoritma KNN membantu menentukan peringkat kredit individu dengan membandingkannya dengan individu yang memiliki karakteristik serupa.
Persetujuan pinjaman: Mirip dengan peringkat kredit, algoritma k-nearest neighbor bermanfaat dalam mengidentifikasi individu yang cenderung gagal membayar pinjaman dengan membandingkan sifat mereka dengan individu serupa.
Preprocessing data: Dataset dapat memiliki banyak nilai yang hilang. Algoritma KNN bisa digunakan untuk proses yang disebut missing data imputation yang memperkirakan nilai-nilai yang hilang.
Pengenalan pola: Kemampuan algoritma KNN untuk mengidentifikasi pola sangat bermanfaat untuk beberapa bidang. Misalnya, membantu mendeteksi pola penggunaan kartu kredit dan menemukan pola yang tidak biasa. Deteksi pola juga berguna dalam mengidentifikasi pola dalam perilaku pembelian pelanggan.
Prediksi harga saham: Karena algoritma KNN memiliki kemampuan untuk memprediksi nilai entitas yang tidak diketahui, ini berguna dalam memprediksi nilai saham di masa mendatang berdasarkan data historis.
Sistem rekomendasi: Karena KNN dapat membantu menemukan pengguna dengan karakteristik serupa, KNN dapat digunakan dalam sistem rekomendasi. Misalnya, dapat digunakan dalam platform streaming video online untuk menyarankan konten yang kemungkinan besar akan ditonton oleh pengguna dengan menganalisis apa yang ditonton oleh pengguna serupa.
Visi komputer: Algoritma KNN digunakan untuk klasifikasi gambar. Karena mampu mengelompokkan titik data yang serupa, misalnya, mengelompokkan kucing dan anjing di kelas yang berbeda, ini berguna dalam beberapa aplikasi visi komputer.
Kelebihan dan Kekurangan Algoritma KNN
Sama seperti algoritma machine learning lainnya, KNN memiliki keunggulan dan kelemahan. Tergantung pada proyek dan aplikasinya, KNN mungkin pilihan yang tepat, dan bisa juga pilihan yang keliru.
Berikut adalah kelebihan dan kekurangan algoritma KNN
Kelebihan KNN
1. Mudah diterapkan
Mengingat kesederhanaan dan akurasi algoritma, KNN merupakan salah satu pengklasifikasi pertama yang sebaiknya dipelajari oleh data scientist pemula.
2. Mudah beradaptasi
Saat sampel training baru ditambahkan, algoritma KNN menyesuaikan untuk ikut memperhitungkan data baru karena semua data pelatihan disimpan ke dalam memori.
3. Memiliki sedikit hyperparameter
KNN hanya membutuhkan nilai k dan metrik jarak, yang relatif lebih sedikit jika dibandingkan dengan algoritma machine learning lainnya.
Kekurangan KNN
1. Tidak berfungsi dengan baik pada dataset berukuran besar
Untuk dataset berukuran besar, cost untuk menghitung jarak antara titik baru dan setiap titik yang ada sangat besar dan cenderung menurunkan kinerja algoritma.
2. Kurang cocok untuk dimensi tinggi
Algoritma KNN tidak bekerja dengan baik pada data berdimensi tinggi karena dengan jumlah dimensi yang besar, menjadi sulit bagi algoritma untuk menghitung jarak di setiap dimensi.
3. Perlu penskalaan fitur
Kita perlu melakukan penskalaan fitur (standarisasi dan normalisasi) sebelum menerapkan algoritma KNN ke kumpulan data apa pun. Jika kita tidak melakukannya, KNN dapat menghasilkan prediksi yang salah.
4. Sensitif terhadap noise data, missing values dan outliers
KNN sensitif terhadap noise dalam dataset. Kita perlu secara manual memasukkan nilai yang hilang dan menghapus outlier.
Support Vector Machine
Apa itu SVM? Support Vector Machine (SVM) merupakan salah satu metode dalam supervised learning yang biasanya digunakan untuk klasifikasi (seperti Support Vector Classification) dan regresi (Support Vector Regression). Dalam pemodelan klasifikasi, SVM memiliki konsep yang lebih matang dan lebih jelas secara matematis dibandingkan dengan teknik-teknik klasifikasi lainnya. SVM juga dapat mengatasi masalah klasifikasi dan regresi dengan linear maupun non linear.
SVM digunakan untuk mencari hyperplane terbaik dengan memaksimalkan jarak antar kelas. Hyperplane adalah sebuah fungsi yang dapat digunakan untuk pemisah antar kelas. Dalam 2-D fungsi yang digunakan untuk klasifikasi antar kelas disebut sebagai line whereas, fungsi yang digunakan untuk klasifikasi antas kelas dalam 3-D disebut plane similarly, sedangan fungsi yang digunakan untuk klasifikasi di dalam ruang kelas dimensi yang lebih tinggi di sebut hyperplane.
Jenis-jenis Algoritma SVM
SVM dapat dibagi menjadi 2 jenis yakni:
1. SVM Linear
SVM linear digunakan untuk data yang dapat dipisahkan secara linear, yang berarti jika sebuah dataset dapat diklasifikasi menjadi dua kelas dengan menggunakan sebuah garis lurus tunggal, maka data tersebut disebut sebagai data yang dapat dipisahkan secara linear, dan classifier yang digunakan disebut sebagai Linear SVM classifier.
2. SVM Non-linear
SVM non-linear digunakan untuk data yang dapat dipisahkan secara non-linear, yang berarti jika sebuah dataset tidak dapat diklasifikasi menggunkan garis lurus, maka data tersebut disebut data non-linear dan classifier yang digunakan disebut sebagai Non-linear SVM classifier.
Kelebihan dan Kelemahan SVM
Adapun kelebihan dan kelemahan dari algoritma SVM adalah sebagai berikut
Kelebihan
- Cocok untuk ruang dimensi tinggi
- Efektif untuk kasus dimana jumlah dimensi lebih besar dari jumlah sampel
- Hemat memori, karena menggunakan training point dari fungsi keputusan (support vector)
- Bekerja relatif baik ketika ada margin pemisahan yang jelas antar kelas.
- Kelemahan
- Algoritma SVM tidak cocok untuk dataset dalam jumlah yang besar karena membutuhkan waktu training yang lama.
- SVM tidak bekerja dengan baik ketika dataset memiliki lebih banyak noise misalnya kelas target terjadi tumpang tindih.
- Jika jumlah fitur untuk setiap titik data melebihi jumlah sampel data training, SVM akan memiliki performa yang kurang baik
- Karena support vector classifier bekerja dengan meletakkan titik data di atas dan di bawah hyperplane, tidak ada kejelasan probabilistik untuk klasifikasi tersebut. Hal ini dapat menyebabkan beban komputasi yang tinggi.
Hyperplane, Support Vector, dan Max Margin pada Algoritma SVM
Hyperplane
Dalam memisahkan kelas dalam ruang n-dimensi, ada kemungkinkan terdapat beberapa garis atau batas keputusan. Namun kita perlu menemukan batas keputusan terbaik yang membantu mengklasifikasikan titik data. Batas terbaik ini dikenal sebagai hyperplane dari SVM.
Hyperplane adalah batas keputusan yang membedakan dua kelas dalam SVM. Titik data yang jatuh di kedua sisi hyperplane dapat dikaitkan dengan kelas yang berbeda.
Dimensi hyperplane bergantung pada fitur yang ada pada dataset, yang artinya jika terdapat dua fitur, maka hyperplane akan berbentuk garis lurus. Dan jika terdapat tiga fitur, maka hyperplane akan menjadi bidang dua dimensi.
Support Vector
Support vector ialah titik data atau vektor yang paling dekat dengan hyperplane dan yang mempengaruhi posisi hyperplane. Karena vektor-vektor ini mendukung hyperplane, maka disebut support vector.Max Margin
Margin adalah jarak antara support vector dari masing-masing kelas di sekitar hyperplane. Pada gambar dibawah, margin diilustrasikan dengan jarak antara 2 garis putus. Margin terbesar (max margin) dapat ditemukan dengan memaksimalkan nilai jarak antara hyperplane dan titik terdekatnya.
Dapat dilihat pada gambar bagian kanan memiliki margin lebih besar daripada gambar bagian kiri. Secara intuitif, margin yang lebih besar akan menghasilkan performa klasifikasi yang lebih baik.
Cara Kerja Algoritma SVM
Algoritma SVM bekerja dengan cara memetakan data ke ruang fitur berdimensi tinggi sehingga titik data dapat dikategorikan, bahkan ketika data tersebut tidak dapat dipisahkan secara linier.
Apabila pemisah antar kategori berhasil ditemukan, data dapat ditransformasikan sedemikian rupa sehingga pemisah tersebut dapat digambarkan sebagai hyperplane. Kemudian, karakteristik data baru dapat digunakan untuk memprediksi pada kelompok mana record baru seharusnya berada.
Fungsi matematis yang digunakan pada proses transformasi algoritma SVM dikenal dengan istilah fungsi kernel (kernel function). Fungsi kernel digunakan untuk mengklasifikasikan data non-linier. Caranya adalah dengan mengubah data non-linear menjadi data linier dan kemudian membentuk hyperplane.
Fungsi kernel linier direkomendasikan ketika pemisahan linier data dilakukan secara langsung. Dalam kasus yang berbeda, penggunaan fungsi lain mungkin diperlukan.
K-Means Clustering
K-Means Clustering merupakan salah satu algoritma Machine Learning khususnya Unsupervised Learning yang populer digunakan. Dalam algoritma ini, kita akan akrab dengan nilai k yang merupakan jumlah cluster yang akan dibentuk. Sebelum mulai menggunakan k-Means, kita harus mendefinisikan nilai k terlebih dahulu.
Pada dasarnya, nilai k ini akan merujuk kepada jumlah centroid (titik pusat dari setiap cluster) yang kita butuhkan di dataset.
Proses k-Means Clustering
Untuk melakukan clustering, kita memerlukan beberapa tahapan, diantaranya adalah:
- Penentuan nilai k atau cluster yang akan dibuat
- Inisialisasi nilai centroid secara random
- Centroid merupakan nilai pusat (center) dari sebuah cluster. Misalkan kita mengatur k = 3, maka akan terbentuk centroid C1, C2, dan C3 secara random.
- Menetapkan setiap data point ke centroid terdekat
- Tahapan ini akan melakukan perhitungan jarak pada setiap data terhadap centroid yang telah dibuat menggunakan Euclidean distance.
- Menghitung ulang nilai centroid dari cluster yang baru terbentuk.
- Proses ini dilakukan dengan menghitung nilai mean dari setiap data points di dalam cluster tersebut.
- Melakukan optimasi agar kriteria terpenuhi dengan mengulang step 3 dan 4.
3. Kelebihan dan Kekurangan K-Means Clustering
Hingga saat ini, belum ada metode pengolahan data yang sempurna. Semua metode pasti memiliki kelebihan dan kekurangannya masing-masing. Begitupun untuk K-Means Clustering. Berikut ini adalah kelebihan yang dimiliki oleh K-Means Clustering:
- Terbilang cukup mudah untuk dipahami dan diimplementasikan
- Proses pembelajaran membutuhkan waktu yang relatif cepat
- Sangat umum digunakan sebagai teknik clustering
Selain kelebihan, k-Means Clustering tentunya juga memiliki kekurangan. Beberapa kekurangannya adalah:
- Perlu inisialisasi nilai k menggunakan metode lain untuk mendapatkan nilai k yang optimal
- Apabila hasil nilai random untuk centroid kurang baik, maka hasil clustering yang didapatkan menjadi tidak optimal
- Cukup sulit jika digunakan untuk mencari jarak dari data yang berdimensi banyak
Penerapan K-Means Clustering
Salah satu contoh penerapan k-Means Clustering adalah pada Segmentasi Pelanggan. Setiap usaha perlu untuk melakukan segmentasi pelanggan agar bisa mengenal pelanggannya dengan baik dan bisa memberikan pelayanan yang tepat sesuai dengan karakteristik pelanggannya.
Dalam segmentasi pelanggan, kita akan membagi seluruh pelanggan dalam beberapa kelompok. Dengan memanfaatkan k-Means Clustering, proses segmentasi pelanggan akan menjadi lebih mudah.
AHC(Agglomerative Hierarchical Clustering)
Hierarchical methods adalah teknik clustering membentuk hirarki atau berdasarkan tingkatan tertentu sehingga menyerupai struktur pohon. Dengan demikian proses pengelompokannya dilakukan secara bertingkat atau bertahap. Biasanya, metode ini digunakan pada data yang jumlahnya tidak terlalu banyak dan jumlah cluster yang akan dibentuk belum diketahui.
Di dalam metode hirarki, terdapat dua jenis strategi pengelompokan yaitu:
Agglomerative (metode penggabungan) adalah strategi pengelompokan hirarki yang dimulai dengan setiap objek dalam satu cluster yang terpisah kemudian membentuk cluster yang semakin membesar. Jadi, banyaknya cluster awal adalah sama dengan banyaknya objek.
Divisive (metode pembagian) adalah strategi pengelompokan hirarki yang dimulai dari semua objek dikelompokkan menjadi cluster tunggal kemudian dipisah sampai setiap objek berada dalam cluster yang terpisah. (Supranto, 2004)
Teknik Agglomerative Hierarchical Clustering
Dalam agglomerative method, teknik pengelompokan yang paling dikenal adalah:
a. Single linkage (jarak terdekat atau tautan tunggal)
Teknik yang menggabungkan cluster-cluster menurut jarak antara anggota-anggota terdekat di antara dua cluster.
b. Average linkage (jarak rata-rata atau tautan rata-rata)
Teknik yang menggabungkan cluster-cluster menurut jarak rata-rata pasangan anggota masing-masing pada himpunan antara dua cluster.
c. Complete linkage (jarak terjauh atau tautan lengkap)
Teknik yang menggabungkan cluster-cluster menurut jarak antara anggota-anggota terjauh di antara dua cluster.
Komentar
Posting Komentar