Pertemuan 2 & 3: A.I. Indonesia Academy Surabaya Batch #1

Post on 16-Apr-2017

448 views 2 download

Transcript of Pertemuan 2 & 3: A.I. Indonesia Academy Surabaya Batch #1

Pertemuan 2 & 3Penerapan Konsep & Evaluasi

Agenda• Review & Pertanyaan di Slack• Penerapan Konsep Supervised Machine Learning (full-coding)• Hands-on feature engineering• Intuisi dasar, step-by-step nya• Algoritma -> Python program

• Studi Kasus• Production-grade machine learning, dengan spark + hdfs

• Final project Evaluasi

Review & Pertanyaan di Slack• Model Machine Learning• Classification VS Clustering

Model itu gimana?

Input Output

Training Data

AlgoritmaMachine Learning Model

Input ?

Data Baru

Model Output

Contoh Model Logistic Regression

Tujuan:

Weight vector Training data

Class training data

Regulasi

Fungsi tujuan

Fungsi kerugian

Visualisasi Model Logistic Regression 4 class

Classification VS ClusteringClassification Clustering

Class data Sudah di ketahui Belum di Ketahui

Training data Ada Tidak ada

Metode Supervised Unsupervised

Tujuan Menentukan data baru masuk class yang mana

Menemukan pola dan relasi antar data

Masih Ingat?

Input Output

Training Data

AlgoritmaMachine Learning Model

Input ?

Data Baru

Model Output

Training Data

Input Output

Training DataInput:Respon masyarakat di facebook

Output:Jenis responnya• -1 = spam• 0 = netral• 1 = berisi harapan,

pembelaan, usulan• 2 = meminta kejelasan, aduan

Algoritma & Model

AlgoritmaMachine Learning Model

• Logistic Regression• Decision Trees• Random Forests• Naïve-Bayes

Tujuan Akhir

Input ?

Data Baru

Model Output

Intuisi: Ada respon baru masuk. Apakah response tersebut berisi pembelaan/harapan terhadap pak Jokowi, spam, atau malah mengadukan sesuatu ke pak Jokowi ya?

Feature Engineering• Intuisi:

Bagaimana cara mesin bisa membedakan dan mencari kesamaan sebuah dokumen teks?

Pakai Vektor! (demo via matlab)

• Tujuan: Merepresentasikan input/training data untuk bisa digunakan oleh algoritma Machine Learning

Feature Engineering• Macam Macam Representasi:• Bag of words (en.m.wikipedia.org/wiki/Bag-of-words_model)• TF-IDF (www.tfidf.com)

• Demo dengan simple teks!• Kata kunci:• Corpus: kumpulan Document• Document: Satu dokumen teks (satu komentar)• Term: Satu kata dalam sebuah Document

Feature Engineering: Bag of words• Corpus:• “Mantaaap....Pak Presiden..habisi para pencuri ikan diwilayah kita......jangan

kasi ampun.....sanksi keras akan membuat mereka jera!”• “Insya alloh indonesia akan di sgani dan menjadi macan asia.. Kalau pemimpin

ny sprti bapa presiden kita skarang. Lanjutkan pa kami alloh slalu brsma mu.. Amiin”

Feature Engineering: Bag of words• Dictionary:• mantaaap, pak, presiden, habisi, para, pencuri, ikan, diwilayah, kita, jangan,

kasi, ampun, sanksi, keras, akan, membuat, mereka, jera, insya, alloh, indonesia, di, sgani, dan, menjadi, macan, asia, kalau, pemimpin, ny, sprti, bapa, skarang, lanjutkan, pa, kami, slalu, brsma, mu, amiin

• Representasi corpus:• [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0]• [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

1, 1, 1, 1, 1, 1, 1, 1]

Feature Engineering: TF-IDF• Corpus:• “Mantaaap....Pak Presiden..habisi para pencuri ikan diwilayah kita......jangan

kasi ampun.....sanksi keras akan membuat mereka jera!”• “Insya alloh indonesia akan di sgani dan menjadi macan asia.. Kalau pemimpin

ny sprti bapa presiden kita skarang. Lanjutkan pa kami alloh slalu brsma mu.. Amiin”

Feature Engineering: TF-IDF• Dictionary:

• mantaaap, pak, presiden, habisi, para, pencuri, ikan, diwilayah, kita, jangan, kasi, ampun, sanksi, keras, akan, membuat, mereka, jera, insya, alloh, indonesia, di, sgani, dan, menjadi, macan, asia, kalau, pemimpin, ny, sprti, bapa, skarang, lanjutkan, pa, kami, slalu, brsma, mu, amiin

• Representasi corpus:• [0.03850817669777474, 0.03850817669777474, 0.0, 0.03850817669777474, 0.03850817669777474,

0.03850817669777474, 0.03850817669777474, 0.03850817669777474, 0.0, 0.03850817669777474, 0.03850817669777474, 0.03850817669777474, 0.03850817669777474, 0.03850817669777474, 0.0, 0.03850817669777474, 0.03850817669777474, 0.03850817669777474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

• [0, 0, 0.0, 0, 0, 0, 0, 0, 0.0, 0, 0, 0, 0, 0, 0.0, 0, 0, 0, 0.026659506944613283, 0.053319013889226566, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283, 0.026659506944613283]

Feature Engineering(

(“bravo pak jokowi! klo ….”, “usulan”)

Feature Engineering (catatan tambahan)• Representasi data yang populer adalah LIBSVM format label index1:value1 index2:value2 ... 1 1:0.0953796017474 4:0.227945493411 ... 2 27:0.111566195021 16:0.178174397043 ...

• Index: Index kata di dalam global dictionary• Value: Nilai Frekeunsi kata (Bag of Words)/TF-IDF

Feature Engineeringlabel index1:value1 index2:value2 ...

1. Membuat global dictionary• Dari semua dokumen di korpus• Sebagai data index tiap kata

2. Merepresentasikan dokumen sebagai vektor• Index dari global dictionary• Mencari nilai TF-IDF tiap kata sebagai Value

Feature EngineeringWaktunya Praktek!

Data: data_3k_comments.csvOutput: tf-idf

ML in Production notes:• Banyaknya data yang kita proses kita perlu framework untuk

mempercepat proses analisa• Solusi: Hadoop MapReduce, Spark

• Dengan data yang banyak kita perlu storage engine yang scalable• Solusi: HDFS

Hands-on: Spark + HDFS

Distributed File System

Evaluasi• Metrics yang penting:• Precision• Recall• F1-score