Saya menghabiskan sebagian dari libur semester awal tahun 2017 untuk belajar bahasa pemrograman interpreter Python. Awalnya tertarik untuk membuat sebuah machine learning sederhana yang dapat dilatih, hasil pencarian banyak menganjurkan untuk menggunakan bahasa pemrograman Python.
Setelah belajar dasar dan cara kerja Python akhirnya untuk prakteknya kasus pertama yang saya ambil adalah pendeteksi gender pria atau wanita dari karakter masing-masing dengan bantuan tutorial sana-sini. Pendeteksi ini menggunakan metode Decision Tree.
Decision Tree
Bagi yang belum familiar dengan metode Decision Tree, sederhananya metode ini adalah metode klasifikasi untuk mendapatkan kesimpulan dari sebuah data. Proses kerjanya mirip dengan logika IF-THEN.
Logika Decision Tree dapat di latih dengan mengajarkan pola tertentu dari sejumlah dataset untuk membuat keputusan baru, input baru kemudian di analisa untuk mencari pola tertentu sesuai dengan training sebelumnya untuk menghasilkan sebuah pengetahuan yang dapat menentukan kesimpulan untuk data input baru.
Kasus Pendeteksi Pria atu Wanita
Pada kasus ini, data training yang kita gunakan merupakan data karakter tinggi, berat dan ukuran sepatu dari pria dan wanita. Dengan sejumlah dataset training, Decision Tree akan membuat analisa pola karakter dari masing-masing gender agar jika ada input data karakter baru aplikasi dapat menentukan data input tersebut meruapakan karakter dari seorang pria atau wanita.
Cara Membuat
Pada Python, terdapat paket yang telah menyediakan metode decision tree untuk dapat digunakan. Paket ini disimpan dalam paket scikit-learn. Untuk dapat menggunakan scikit-learn terdapat 2 buah paket dependesi lain yang di butuhkan, yaitu numpy dan scipy. Paket-paket ini dapat di install dengan menggunakan perintah #pip install [paket] melalui terminal/cmd. Secara umum installasi paket sebagai berikut:
- pip install numpy
- pip install scipy
- #pip install -U scikit-learn
Bagi yang menemukan kendala dalam penginstalan paket tersebut, khususnya pengguna windows, beberapa turial berikut bisa membantu:
- Melalui Miniconda: https://www.youtube.com/watch?v=pENBnsSCZm8
- Install Executable: https://www.youtube.com/watch?v=-llHYUMH9Dg
Coding
Secara sederhana coding untuk aplikasi ini dapat dilakukan pada satu file saja, buat file dengan nama demo.py, dengan isi:
# sample data format [tinggi, berat, ukuran-sepatu]
# data ukuran dari 11 orang
data = [[181,80,44], [177,70,43], [160,60,38], [154,54,37],
[166,65,40], [190,90,47], [175,64,39], [165,49,40],
[171,75,42], [157,55,39], [181,85,43],]
# data gender,berurut sesuai dengan datanya (merujuk variabel data)
gender = ['pria', 'pria', 'wanita', 'wanita',
'wanita', 'pria', 'pria', 'wanita',
'pria', 'wanita', 'pria',]
# memanggil metode DecisionTreeClassifier() dari onjek tree
klasifikasi = tree.DecisionTreeClassifier()
# training data, memanggil metode fit(param), param = data dan gender
klasifikasi = klasifikasi.fit(data,gender)
# memasukkan data baru untuk di prediksi
# memanggil metode predict([data])
databaru = [170,59,41]
prediksi = klasifikasi.predict([databaru])
# print hasil prediksi
print(data)
# print(type(data))
print(prediksi)
Terdapat beberapa bagian penting dari kode diatas:
- Pertama kita memanggil paket yang akan digunakan yaitu scikit-learn dengan from sklearn import tree
- Memuat data karakter gender pada variabel data
- memuat pasangan karakter gender pada variabel gender
- Melalukan training data
- Mengimput data baru untuk di prediksi
- Kemudian memprint hasilnya dengan perintah print
Github project: https://github.com/yasirutomo/mini-project-python