Bot Account Detection Using Machine Learning
Deteksi akun bot pada Twitter menggunakan algoritma Machine Learning Random Forest dan XGBoost
Twitter merupakan media sosial yang popular dan memiliki perkembangan pesat dalam situs jejaring sosial. Popularitas dan sifatnya yang sangat terbuka menjadikan Twitter sebagai target untuk dieksploitasi oleh program otomatis, yang disebut bot. Bot dapat digunakan untuk melakukan aktivitas seperti spamming, memanipulasi diskusi, mengubah popularitas pengguna, mencemari konten, menyebarkan informasi yang salah, dan melakukan propaganda. Salah satu langkah yang dilakukan pemerintah dalam hal ini Badan Siber dan Sandi Negara (BSSN) terkhusus Subdirektorat Deteksi Sosiokultural untuk mengurangi dan menanggulangi pengaruh negatif dari akun bot yaitu dengan menjalankan monitoring media sosial dan melakukan deteksi akun bot. Namun, BSSN belum memiliki alat untuk melakukan deteksi akun bot. Penelitian ini dilakukan untuk memberikan perspektif baru dalam mengkaji peluang suatu akun terdeteksi sebagai akun bot menggunakan teknik Machine Learning. Algoritme yang digunakan adalah Random Forest dan XGBoost. Data profil didapatkan dari Kaggle dan Subdirektorat Deteksi Sosiokultural. Penelitian dimulai dengan melakukan Exploratory Data Analysis (EDA) untuk mengetahui kondisi dataset yang digunakan. Tahap selanjutnya yaitu pemodelan yang mencakup proses feature engineering, feature selection, hyperparameter tuning, dan benchmarking algoritme. Hasil dari penelitian ini menunjukkan bahwa algoritme XGBoost lebih unggul dari Random Forest, dengan hasil akhir akurasi XGBoost 0.8908 sedangkan Random Forest 0.8762, sehingga algoritme yang digunakan untuk tahap selanjutnya adalah XGBoost. Tahap akhir dari penelitian ini yaitu implementasi model prediksi dalam bentuk dashboard menggunakan framework Flask dengan hasil analisis deteksi bot berupa skor probabilitas.
Judul penelitian
Analisis Deteksi Akun Robot pada Twitter Menggunakan Teknik Machine Learning.
Implementasi
Penelitian ini mengambil lokus Subdirektorat Deteksi Sosiokultural (D142), Direktorat Deteksi Ancaman, Deputi I Identifikasi dan Deteksi, BSSN. Objek penelitian ini adalah Twitter akun tersangka bot, yang berasal dari dataset Kaggle dan lokus D142, dimana profil suatu akun diperoleh dengan cara scraping melalui Twitter API. Penelitian dilakukan implementasi teknik Machine Learning dengan benchmarking algoritme Random Forest dan XGBoost menggunakan bahasa pemrograman python untuk mendapatkan model terbaik. Hasil pemodelan diimplementasikan dalam bentuk dashboard menggunakan framework Flask.
Langkah pertama dalam menganalisis data adalah mempelajari karakteristik dari data tersebut. Sebelum melakukan analisis data, terdapat alasan penting yang perlu dipertimbangkan diantaranya ialah pemeriksaan data untuk memeriksa dan mempelajari kesalahan-kesalahan yang mungkin terjadi di berbagai tahap, mulai dari pencatatan data di lapangan hingga pada entri data komputer. Alasan berikutnya adalah untuk tujuan eksplorasi data agar kita dapat lebih memahami kondisi dataset yang kita miliki.
Pemodelan dilakukan dengan tahapan Data Pre-Processing, Feature Engineering, Feature Selection, SMOTE dan Benchmarking I, Hyperparameter Tuning dan Benchmarking II, dan Feature Importance. Benchmarking algoritme Random Forest dan XGBoost dilakukan untuk mendapatkan model dengan hasil akurasi terbaik. Langkah awal dalam pemodelan adalah melakukan data pre-processing.
Data pre-processing adalah proses manipulasi data sebelum diinput ke dalam model atau mesin agar dapat terurai dengan mudah. Pre-processing pada tahap ini yaitu mengonversi data ke bentuk yang lebih dapat digunakan, mengubah boolean menjadi biner 1/0, dan konversi datetime untuk cap waktu (time stamp) pembuatan akun. Beberapa feature yang melakukan pre-processing diantaranya adalah 'index', 'bot', 'default_profile', 'default_profile_image', 'geo_enabled', 'verified', 'created_at' dan 'hour_created'. Tabel di bawah ini berisi penjelasan terkait data pre-processing pada masing-masing feature tersebut.
Setelah mendapatkan model prediksi dengan algoritme terbaik, selanjutnya dilakukan implementasi model dalam bentuk dashboard menggunakan framework Flask. Flask adalah kerangka kerja (framework) aplikasi web yang ditulis dalam bahasa pemrograman python. Dashboard digunakan dengan melakukan input username untuk mengetahui skor bot dari akun tersebut. Langkah akhir dari penelitian ini adalah pengambilan kesimpulan dari hasil analisis deteksi bot pada Twitter berdasarkan skor probabilitas.
Berdasarkan penelitian yang telah dilakukan, maka diperoleh beberapa kesimpulan seperti berikut.
-
Deteksi akun bot pada Twitter dapat dilakukan dengan teknik Machine Learning. Pada penelitian ini dilakukan feature engineering, feature selection dan hyperparameter tuning agar dapat menghasilkan model dengan performa paling baik.
-
Benchmarking algoritme Random Forest dan XGBoost didapatkan hasil bahwa algoritme XGBoost lebih unggul daripada Random Forest, dengan hasil akhir akurasi algoritme XGBoost 0.8908 dan Random Forest 0.8762. Feature Importance pada algoritme terbaik (XGBoost) adalah verified, dimana verified merupakan feature untuk mengetahui suatu akun terverifikasi atau tidak. Akun human memiliki kecenderungan berstatus verified. Berdasarkan hasil tersebut, algoritme XGBoost terpilih untuk proses implementasi selanjutnya.
-
Implementasi model prediksi dengan algoritme XGBoost dalam bentuk dashboard berhasil dilakukan, sehingga dashboard ini dapat berjalan sesuai dan dapat membantu tugas BSSN khususnya Subdirektorat Deteksi Sosiokultural.
Tangkapan Layar
-
Halaman hasil deteksi akun bukan bot
-
Halaman hasil deteksi akun bot
Peneliti
- Febriora Nevita Pramitha
Supervisor
- Girinoto
- R. Budiarto Hadiprakoso
- Nurul Qomariasih
Publikasi
F. N. Pramitha, R. B. Hadiprakoso, N. Qomariasih and Girinoto, "Twitter Bot Account Detection Using Supervised Machine Learning," 2021 4th International Seminar on Research of Information Technology and Intelligent Systems (ISRITI), Yogyakarta, Indonesia, 2021, pp. 379-383, doi: 10.1109/ISRITI54043.2021.9702789.