Whitecyber Team kali ini mendapatkan Project pengerjaan Research tentang Pertandingan Golf dengan menggunakan alat penelitian Rapidminer. Buat sahabat Whitecyber yang belum mengerti apa itu Rapidminer, yuk kita simak uraian singkat berikut :
RapidMiner adalah sebuah platform analisis data dan machine learning yang memungkinkan pengguna untuk melakukan berbagai macam tugas analitis, seperti data preparation, data mining, predictive analytics, text mining, dan visualisasi. RapidMiner memiliki antarmuka grafis yang intuitif dan mudah digunakan, yang memungkinkan pengguna untuk membuat dan menjalankan proses analisis tanpa perlu menulis kode. Pada sektor pemasaran, data mining biasanya dipakai untuk marketing target, analisis pasar, segmentasi market, cross selling, dan CRM atau manajemen hubungan pelanggan.
RapidMiner memiliki beberapa fungsi utama, antara lain:
- Data Preparation: RapidMiner dapat mengimpor data dari berbagai sumber, seperti file, database, web service, atau cloud. RapidMiner juga dapat membersihkan, mengubah, menggabungkan, dan mengeksplorasi data dengan menggunakan berbagai operator.
- Data Mining: RapidMiner dapat menerapkan berbagai teknik data mining, seperti klasifikasi, klastering, asosiasi, outlier detection, dan feature selection. RapidMiner juga dapat membangun dan menguji model machine learning dengan menggunakan algoritma seperti decision tree, neural network, support vector machine, dan k-means.
- Predictive Analytics: RapidMiner dapat melakukan prediksi berdasarkan data historis atau data baru dengan menggunakan model machine learning yang telah dibangun. RapidMiner juga dapat melakukan validasi model dengan menggunakan metrik seperti accuracy, precision, recall, dan ROC curve.
- Text Mining: RapidMiner dapat menganalisis teks dari berbagai sumber, seperti dokumen, email, web page, atau media sosial. RapidMiner dapat melakukan preprocessing teks, seperti tokenization, stemming, stop word removal, dan POS tagging. RapidMiner juga dapat melakukan analisis teks, seperti sentiment analysis, topic modeling, keyword extraction, dan named entity recognition.
- Visualisasi: RapidMiner dapat menampilkan hasil analisis dalam bentuk grafik, tabel, atau dashboard yang interaktif dan informatif. RapidMiner juga dapat mengekspor hasil analisis ke dalam format file yang berbeda, seperti Excel, PDF, atau HTML.
RapidMiner adalah sebuah platform yang sangat berguna untuk melakukan analisis data dan machine learning dengan mudah dan cepat. RapidMiner dapat membantu pengguna untuk mendapatkan insight dari data dan membuat keputusan yang lebih baik berdasarkan bukti.
Sekarang saatnya kita akan menganalisa DATAMINING GOLF dengan 14 responden. Berikut ini adalah hasil dari Wawancara kepada ke 14 responden tersebut.
.
.
Setelah kita mengetahui semua DATA yang akan kita proses, maka kita akan membuat MODEL penelitiannya terlebih dahulu. Import Data hasil penelitian Golf tersebut ke Rapidminer kemudian kita taruh metode penelitiannya Decission Tree sehingga tertampang model sebagai berikut :
.
Apa itu decission tree dalam penelitian?
Decission tree adalah salah satu metode analisis data yang dapat digunakan untuk melakukan klasifikasi atau prediksi berdasarkan struktur pohon. Decission tree membagi data menjadi beberapa kelompok berdasarkan kriteria tertentu yang disebut sebagai node. Node-node ini dapat berupa atribut, nilai, atau hasil dari suatu fungsi. Decission tree dapat digunakan untuk menyelesaikan berbagai masalah penelitian, seperti mengidentifikasi faktor-faktor yang mempengaruhi keputusan konsumen, mengevaluasi dampak dari suatu kebijakan, atau mengklasifikasikan jenis-jenis tanaman.
Decission tree memiliki beberapa kelebihan, antara lain:
- Mudah dipahami dan diinterpretasikan, karena memiliki bentuk visual yang intuitif.
- Tidak memerlukan banyak persiapan data, seperti normalisasi, transformasi, atau pemilihan fitur.
- Dapat menangani data kategorikal dan numerik, serta data yang memiliki missing value.
- Dapat menangani data yang tidak linear dan memiliki interaksi kompleks antara fitur.
Decission tree juga memiliki beberapa kelemahan, antara lain:
- Rentan terhadap overfitting, yaitu ketika model terlalu spesifik pada data latih dan tidak dapat memprediksi data baru dengan baik.
- Rentan terhadap varians, yaitu ketika model sangat sensitif terhadap perubahan kecil pada data.
- Rentan terhadap bias, yaitu ketika model cenderung menghasilkan prediksi yang salah karena adanya asumsi yang tidak sesuai dengan data.
- Dapat menjadi sangat kompleks dan sulit diinterpretasikan jika memiliki banyak node dan cabang.
Untuk mengatasi kelemahan-kelemahan tersebut, ada beberapa teknik yang dapat digunakan, seperti pruning, ensemble learning, atau menggunakan algoritma yang lebih canggih seperti random forest atau gradient boosting. Pruning adalah proses menghapus node atau cabang yang tidak signifikan atau tidak relevan dengan tujuan penelitian. Ensemble learning adalah proses menggabungkan beberapa decission tree untuk mendapatkan prediksi yang lebih akurat dan stabil. Random forest dan gradient boosting adalah algoritma yang menggunakan ensemble learning dengan cara yang berbeda untuk meningkatkan performa decission tree.
Decission tree adalah metode analisis data yang cukup populer dan banyak digunakan dalam berbagai bidang penelitian. Decission tree dapat memberikan informasi yang berguna untuk memahami pola-pola dalam data dan membuat keputusan yang berdasarkan pada bukti. Namun, decission tree juga memiliki beberapa keterbatasan yang perlu diperhatikan dan diatasi dengan teknik-teknik tertentu agar dapat menghasilkan model yang optimal dan valid.
Model Decission Tree pada penelitian pertandingan golf dapat dilihat sebagai berikut.
.
.
Information gain adalah salah satu metode yang digunakan untuk memilih atribut terbaik yang akan menjadi node pada decision tree. Information gain mengukur seberapa banyak informasi yang diperoleh dari sebuah atribut tentang kelas target. Atribut dengan information gain tertinggi akan dipilih sebagai node utama, dan proses ini akan diulang untuk setiap cabang dari node tersebut sampai semua data terklasifikasi atau tidak ada lagi atribut yang tersedia.
Information gain didasarkan pada konsep entropi, yang merupakan ukuran ketidakpastian atau keragaman dari sebuah himpunan data. Entropi semakin tinggi jika data semakin bercampur atau tidak seimbang, dan semakin rendah jika data semakin homogen atau seimbang. Rumus entropi untuk sebuah himpunan data D dengan kelas target C adalah:
$$
E(D) = -\sum_{c \in C} p(c) \log_2 p(c)
$$
Di mana $p(c)$ adalah proporsi data yang termasuk dalam kelas $c$. Misalnya, jika kita memiliki data tentang cuaca dan aktivitas bermain golf, dengan dua kelas target: Ya dan Tidak, maka entropi dari data tersebut adalah:
$$
E(D) = -\frac{9}{14} \log_2 \frac{9}{14} – \frac{5}{14} \log_2 \frac{5}{14} \approx 0.94
$$
Karena ada 9 data yang bermain golf (Ya) dan 5 data yang tidak bermain golf (Tidak) dari total 14 data.
Untuk menghitung information gain dari sebuah atribut A, kita perlu menghitung entropi dari setiap nilai atribut A dan kemudian menghitung rata-rata tertimbang dari entropi tersebut. Rumusnya adalah:
$$
E(A, D) = \sum_{v \in A} \frac{|D_v|}{|D|} E(D_v)
$$
Di mana $D_v$ adalah himpunan data yang memiliki nilai atribut A sama dengan $v$, dan $|D_v|$ adalah jumlah data dalam $D_v$. Information gain dari atribut A kemudian diperoleh dengan mengurangi entropi rata-rata dari entropi awal. Rumusnya adalah:
$$
IG(A, D) = E(D) – E(A, D)
$$
Semakin besar nilai information gain, semakin baik atribut tersebut dalam membagi data menjadi kelas-kelas target. Sebagai contoh, jika kita ingin menghitung information gain dari atribut Outlook, kita perlu menghitung entropi dari setiap nilai Outlook (Sunny, Overcast, Rainy) dan kemudian menghitung rata-rata tertimbangnya. Hasilnya adalah:
$$
E(Outlook, D) = \frac{5}{14} E(D_{Sunny}) + \frac{4}{14} E(D_{Overcast}) + \frac{5}{14} E(D_{Rainy})
$$
Di mana:
$$
E(D_{Sunny}) = -\frac{2}{5} \log_2 \frac{2}{5} – \frac{3}{5} \log_2 \frac{3}{5} \approx 0.97
$$
$$
E(D_{Overcast}) = -\frac{4}{4} \log_2 \frac{4}{4} – \frac{0}{4} \log_2 \frac{0}{4} = 0
$$
$$
E(D_{Rainy}) = -\frac{3}{5} \log_2 \frac{3}{5} – \frac{2}{5} \log_2 \frac{2}{5} \approx 0.97
$$
Maka:
$$
E(Outlook, D) = \frac{5}{14} (0.97) + \frac{4}{14} (0) + \frac{5}{14} (0.97) \approx 0.69
$$
Dan information gain dari atribut Outlook adalah:
$$
IG(Outlook, D) = E(D) – E(Outlook, D) = 0.94 – 0.69 = 0.25
$$
Demikianlah penjelasan singkat tentang apa itu information gain pada decision tree. Information gain berguna untuk menentukan atribut mana yang paling relevan dengan kelas target dan membantu membangun struktur pohon keputusan yang optimal. Hasilnya adalah sebagai berikut :
.
.
Sekarang kita akan uji coba dengan Gini Index, hasilnya seperti apa ?
Apa itu metode gini index pada decission tree?
Decission tree adalah salah satu algoritma machine learning yang dapat digunakan untuk klasifikasi dan regresi. Decission tree membagi data menjadi beberapa kelompok berdasarkan kriteria tertentu, yang disebut sebagai node. Node terakhir dalam decission tree disebut sebagai leaf, yang merupakan hasil prediksi dari algoritma.
Metode gini index adalah salah satu cara untuk menentukan kriteria pembagian node dalam decission tree. Gini index mengukur seberapa baik sebuah node memisahkan data berdasarkan label kelasnya. Semakin rendah nilai gini index, semakin baik node tersebut dalam memisahkan data.
Rumus untuk menghitung gini index adalah sebagai berikut:
$$Gini = 1 – \sum_{i=1}^{n}p_i^2$$
Dimana $p_i$ adalah proporsi data dengan label kelas ke-$i$ dalam node tersebut, dan $n$ adalah jumlah kelas yang ada.
Contoh penggunaan metode gini index dalam decission tree adalah sebagai berikut:
Misalkan kita memiliki data tentang mahasiswa yang lulus atau tidak lulus ujian dengan dua fitur: jam belajar dan nilai tugas. Data tersebut dapat dilihat pada tabel berikut:
Jam Belajar | Nilai Tugas | Lulus |
---|---|---|
2 | 50 | Tidak |
4 | 60 | Tidak |
6 | 70 | Ya |
8 | 80 | Ya |
10 | 90 | Ya |
Kita ingin membuat decission tree untuk memprediksi apakah seorang mahasiswa akan lulus atau tidak berdasarkan jam belajar dan nilai tugasnya. Kita dapat menggunakan metode gini index untuk menentukan fitur mana yang akan menjadi node pertama dalam decission tree.
Untuk setiap fitur, kita akan menghitung nilai gini index sebelum dan sesudah pembagian node, dan mengambil selisihnya sebagai nilai information gain. Nilai information gain menunjukkan seberapa besar penurunan ketidakpastian setelah pembagian node. Semakin besar nilai information gain, semakin baik fitur tersebut untuk menjadi node pertama.
Untuk fitur jam belajar, kita akan membagi data menjadi dua kelompok: jam belajar kurang dari atau sama dengan 5, dan jam belajar lebih dari 5. Nilai gini index sebelum pembagian node adalah:
$$Gini_{before} = 1 – (0.4^2 + 0.6^2) = 0.48$$
Dimana 0.4 adalah proporsi data dengan label tidak lulus, dan 0.6 adalah proporsi data dengan label lulus.
Nilai gini index setelah pembagian node adalah:
$$Gini_{after} = \frac{2}{5}(1 – (1^2 + 0^2)) + \frac{3}{5}(1 – (0^2 + 1^2)) = 0$$
Dimana $\frac{2}{5}$ adalah proporsi data dengan jam belajar kurang dari atau sama dengan 5, dan $\frac{3}{5}$ adalah proporsi data dengan jam belajar lebih dari 5.
Nilai information gain untuk fitur jam belajar adalah:
$$IG_{jam belajar} = Gini_{before} – Gini_{after} = 0.48 – 0 = 0.48$$
Untuk fitur nilai tugas, kita akan membagi data menjadi dua kelompok: nilai tugas kurang dari atau sama dengan 65, dan nilai tugas lebih dari 65. Nilai gini index sebelum pembagian node adalah sama dengan sebelumnya, yaitu 0.48.
Nilai gini index setelah pembagian node adalah:
$$Gini_{after} = \frac{2}{5}(1 – (1^2 + 0^2)) + \frac{3}{5}(1 – (0.33^2 + 0.67^2)) = 0.13$$
Dimana $\frac{2}{5}$ adalah proporsi data dengan nilai tugas kurang dari atau sama dengan 65, dan $\frac{3}{5}$ adalah proporsi data dengan nilai tugas lebih dari 65.
Nilai information gain untuk fitur nilai tugas adalah:
$$IG_{nilai tugas} = Gini_{before} – Gini_{after} = 0.48 – 0.13 = 0.35$$
Dari perhitungan di atas, kita dapat melihat bahwa fitur jam belajar memiliki nilai information gain yang lebih besar daripada fitur nilai tugas. Oleh karena itu, kita akan memilih fitur jam belajar sebagai node pertama dalam decission tree.
Decission tree yang dihasilkan dari data tersebut adalah sebagai berikut:
![Decission tree]
Dari decission tree tersebut, kita dapat melihat bahwa jika seorang mahasiswa memiliki jam belajar lebih dari 5, maka ia akan lulus ujian. Jika seorang mahasiswa memiliki jam belajar kurang dari atau sama dengan 5, maka ia tidak akan lulus ujian.
Dengan metode Gini Index pun hasilnya tetap sama, artinya diuji menggunakan metode yang berbeda hasil penelitian pertandingan golf ini hasilnya tetap sama.
.
.
Sekarang kita uji coba dengan metode Gain Ratio.
Gain Ratio adalah sebuah perhitungan yang dilakukan khusus untuk penggunaan algorirma C4.5. Berbeda dengan Information Gain untuk menghitung Gain Ratio digunakan agar tidak bias dalam menentukan atribut pemilah terbaik. (The best split attribute).
Algoritma C4.5 adalah pengembangan dari algoritma ID3 yang juga termasuk dalam keluarga decision tree. Yang membedakan adalah algoritma C4.5 bisa mengatasi atribut data benilai numerik (kontinu) dan bisa menangani atribut yang memiliki nilai yang kosong (missing value). Dan bisa memangkas pohon keputusan, yaitu membuang cabang-cabang pohon yang overfit dan menggantikannya dengan simpul-simpul daun yang lebih general. Hasilnya juga tetap sama.
Bagaimana cara menghitung gain ratio?
Gain ratio adalah salah satu metode untuk memilih atribut yang paling baik untuk membagi data dalam pembelajaran mesin. Gain ratio adalah rasio antara information gain dan intrinsic value dari sebuah atribut. Information gain adalah pengurangan entropi yang terjadi ketika data dibagi berdasarkan atribut tertentu. Entropi adalah ukuran ketidakpastian atau keragaman dari sebuah data. Intrinsic value adalah entropi dari partisi yang dibuat oleh atribut tersebut. Semakin rendah intrinsic value, semakin seimbang partisi yang dihasilkan.
Rumus untuk menghitung gain ratio adalah sebagai berikut:
Gain ratio = Information gain / Intrinsic value
Information gain = Entropi sebelum pemisahan – Entropi setelah pemisahan
Intrinsic value = – Σ (Pi * log2 Pi)
Dimana Pi adalah proporsi data yang termasuk dalam partisi ke-i.
Untuk menghitung gain ratio, kita perlu melakukan langkah-langkah berikut:
- Hitung entropi sebelum pemisahan dengan rumus: Entropi = – Σ (Pj * log2 Pj) Dimana Pj adalah proporsi data yang termasuk dalam kelas ke-j.
- Untuk setiap atribut, hitung entropi setelah pemisahan dengan rumus: Entropi = Σ (Pi * Ei) Dimana Pi adalah proporsi data yang termasuk dalam partisi ke-i, dan Ei adalah entropi dari partisi ke-i.
- Hitung information gain untuk setiap atribut dengan mengurangi entropi sebelum pemisahan dengan entropi setelah pemisahan.
- Hitung intrinsic value untuk setiap atribut dengan rumus: Intrinsic value = – Σ (Pi * log2 Pi) Dimana Pi adalah proporsi data yang termasuk dalam partisi ke-i.
- Hitung gain ratio untuk setiap atribut dengan membagi information gain dengan intrinsic value.
- Pilih atribut yang memiliki gain ratio tertinggi sebagai atribut pemisah terbaik.
Setelah kita uji dengan Gain Ratio maka hasilnya masih tetap sama :
.
.
Sekarang kita uji dengan acurrency, apa itu metode accuracy ?
Bagaimana cara menghitung accuracy pada decission tree?
Accuracy adalah salah satu metrik yang sering digunakan untuk mengukur kinerja dari sebuah model klasifikasi, seperti decission tree. Accuracy adalah rasio antara jumlah prediksi yang benar dengan jumlah total data yang diprediksi. Semakin tinggi accuracy, semakin baik model klasifikasi tersebut.
Untuk menghitung accuracy pada decission tree, kita perlu melakukan beberapa langkah berikut:
- Membuat atau memilih sebuah decission tree yang sesuai dengan data dan tujuan kita. Decission tree adalah sebuah struktur pohon yang terdiri dari node, cabang, dan daun. Node adalah titik dimana kita memilih sebuah atribut untuk membagi data menjadi beberapa subset. Cabang adalah hasil dari pemilihan atribut tersebut. Daun adalah kelas atau label yang diberikan kepada subset data yang mencapai titik akhir pohon.
- Mempersiapkan data uji yang akan digunakan untuk menguji kinerja decission tree. Data uji adalah data yang belum pernah dilihat oleh model sebelumnya dan berisi atribut-atribut dan kelas yang sebenarnya.
- Menggunakan decission tree untuk memprediksi kelas dari setiap data uji. Caranya adalah dengan mengikuti cabang-cabang yang sesuai dengan nilai atribut dari data uji sampai mencapai daun. Daun tersebut adalah prediksi kelas dari data uji tersebut.
- Membandingkan prediksi kelas dengan kelas sebenarnya dari setiap data uji. Jika prediksi kelas sama dengan kelas sebenarnya, maka prediksi tersebut dianggap benar. Jika tidak, maka prediksi tersebut dianggap salah.
- Menghitung jumlah prediksi yang benar dan jumlah total data uji. Kemudian, menghitung accuracy dengan rumus berikut:
$$
accuracy = \frac{jumlah\ prediksi\ yang\ benar}{jumlah\ total\ data\ uji}
$$
Contoh:
Misalkan kita memiliki decission tree berikut untuk mengklasifikasikan apakah seseorang akan bermain tenis atau tidak berdasarkan cuaca.
![Decission tree]
Kemudian, kita memiliki data uji berikut:
Outlook | Temperature | Humidity | Wind | Play Tennis |
---|---|---|---|---|
Sunny | Hot | High | Weak | No |
Overcast | Hot | High | Strong | Yes |
Rainy | Mild | Normal | Weak | Yes |
Sunny | Cool | Normal | Strong | No |
Untuk menghitung accuracy, kita perlu melakukan langkah-langkah berikut:
- Menggunakan decission tree untuk memprediksi kelas dari setiap data uji.
- Data pertama: Outlook = Sunny -> Humidity = High -> Play Tennis = No (prediksi benar)
- Data kedua: Outlook = Overcast -> Play Tennis = Yes (prediksi benar)
- Data ketiga: Outlook = Rainy -> Wind = Weak -> Play Tennis = Yes (prediksi benar)
- Data keempat: Outlook = Sunny -> Humidity = Normal -> Play Tennis = Yes (prediksi salah)
- Membandingkan prediksi kelas dengan kelas sebenarnya dari setiap data uji.
- Jumlah prediksi yang benar = 3
- Jumlah total data uji = 4
- Menghitung accuracy dengan rumus berikut:
$$
accuracy = \frac{jumlah\ prediksi\ yang\ benar}{jumlah\ total\ data\ uji} = \frac{3}{4} = 0.75
$$
Jadi, accuracy dari decission tree tersebut adalah 0.75 atau 75%.
Sekarang kita akan kembali ke pembahasan dan penghitungan untuk Research tentang penelitian pertandingan Golf ini. Yuk kita cek, dan hasilnya adalah sama persis teman-teman :
.
.
Terbukti tidak ada pergerakan apapun dengan ke empat metode tersebut, sekarang kita coba dengan menghilangkan prunningnya. Kita akan menggunakan metode Gain Ratio dengan Tanpa Prunning.
Apa yang dimaksud pruning dalam decision tree?
Pemangkasan pohon (tree pruning)yaitu mengidentifikasikan dan membuang cabang yang tidak diperlukan pada pohon yang telah terbentuk. Hasilnya langsung nampak perubahan seperti ini, walaupun angka dan kesimpulannya tetap sama.
.
.
Sampai disini terlihat, semoga bermanfaat.