Anda di halaman 1dari 26

UNIVERSITAS INDONESIA

PENGELOLAAN DATA BESAR

TUGAS LAB 1

HANDOKO RAMADHAN 1806281063


HILMAN WISNU 1806281145
MAJESTY EKSA PERMANA 1806281201
ULFAH ULMI 1806256036

FAKULTAS ILMU KOMPUTER


PROGRAM STUDI MAGISTER TEKNOLOGI INFORMASI
JAKARTA
APRIL 2020
Bagian 1

Context: Anda diminta untuk prediksi pelanggan yang kemungkinan akan pindah ke
competitor (churn). Dengan model ini, Anda dapat membuat program marketing untuk
mempertahankan pelanggan yang akan pindah.
Anda diminta untuk melakukan analisa terhadap data ini menggunakan software Orange.
Insight apa yang bisa didapatkan dari dataset ini. Attribut pada data ini adalah sebagai
berikut:
● customerID: Customer ID
● gender: Whether the customer is a male or a female
● SeniorCitizen: Whether the customer is a senior citizen or not (1, 0)
● Partner: Whether the customer has a partner or not (Yes, No)
● Dependents: Whether the customer has dependents or not (Yes, No)
● Tenure: Number of months the customer has stayed with the company
● PhoneService: Whether the customer has a phone service or not (Yes, No)
● MultipleLines: Whether the customer has multiple lines or not (Yes, No, No phone
service)
● InternetService: Customer’s internet service provider (DSL, Fiber optic, No)
● OnlineSecurity: Whether the customer has online security or not (Yes, No, No
internet service)
● OnlineBackup: Whether the customer has online backup or not (Yes, No, No internet
service)
● DeviceProtection: Whether the customer has device protection or not (Yes, No, No
internet service)
● TechSupport: Whether the customer has tech support or not (Yes, No, No internet
service)
● StreamingTV: Whether the customer has streaming TV or not (Yes, No, No internet
service)
● StreamingMovies: Whether the customer has streaming movies or not (Yes, No, No
internet service)
● Contract: The contract term of the customer (Month-to-month, One year, Two year)
● PaperlessBilling: Whether the customer has paperless billing or not (Yes, No)
PaymentMethod: The customer’s payment method (Electronic check, Mailed check,
Bank transfer (automatic), Credit card (automatic))
● MonthlyCharges: The amount charged to the customer monthly
● TotalCharges: The total amount charged to the customer
● Churn: Whether the customer churned or not (Yes or No)

Jawab :
1. pilih Data > File, kemudian klik 2x pada File, kemudian file yang akan digunakan,
pada bagian 1 ini, kami menggunakan file Customer-Churn-Data.csv
2. Kemudian pilih Data Table jika ingin melihat Data keseluruhan dari file csv yang
diimport dan pilih Select Column. Select Column digunakan untuk menentukan
attribut mana yang akan digunakan, serta penentuan feature dan target variable

Feature Churn dipilih sebagai target variablenya yang merupakan class yang telah
memiliki label “yes/no” terhadap apakah customer akan pindah ke kompetitor (churn)
atau tidak. Feature Statistics digunakan untuk melihat statistic terhadap features dari
data yang ada. Kami tidak mengambil semua variable yang ada sebagai features,
sebelumnya kami telah mensimulasikan dengan tree dan visualisasi data dengan tree
viewer untuk 5 level, dan kami melihat bahwa 11 features tersbut sebagai features
yang digunakan (berada pada level atas).
3. Setelah menentukan target variabelnya, kita dapat memilih model mana yang akan
digunakan. Kami memilih beberapa model sebagai bahan perbandingan dengan
melakukan Test and Score pada pada setiap model.

4. Klik 2x pada Test and Score untuk melihat score dari setiap model yang digunakan.
Kami menggunakan Cross Validation dengan number of folds 10. Cross Validation
merupakan metode yang dapat digunakan untuk mengevaluasi kinerja model atau
algoritma dimana data dipisahkan menjadi dua subset yaitu data training dan data
testing. Pada gambar dibawah dapat dilihat bahwa model Tree memiliki akurasi
sebesar 0.783 yang berarti lebih baik akurasinya dibanding model yang lain.
5. Untuk melihat Tree-nya dengan menggunakan Tree Viewer.

dengan klik 2x pada Tree Viewer untuk melihat hasil tree nya
6. Menggunakan Scatter Plot untuk melihat sebaran datanya

dengan klik 2x pada Scatter Plot untuk melihat sebarannya


7. Adapun insight yang dapat dilihat dari hasil scatter plot tersebut adalah dapat terlihat
bahwa cutomer baru yaitu yang waktu tenure-nya kecil dan total charges nya kecil
cenderung mudah untuk pindah ke competitor
Bagian 2

Analisa dataset AirBnB menggunakan software Orange. Anda diminta untuk melakukan
berbagai macam analisa yang dapat memberikan insight. Jelaskan langkah-langkah data
pre-processingnya. Jelaskan juga parameter-parameter yang digunakan.

Jawab :
Bagian 3

Analisa data “Bank Marketing” dari https://archive.ics.uci.edu/ml/datasets/bank+marketing#


Analisa data tersebut menggunakan aplikasi Orange. Tuliskan dalam laporan:
• Context: sumber data, latar belakang permasalahan
• Data understanding: eksplorasi data, distribusi data
• Data preprocessing
• Data modelling
• Results and Analysis: evaluasi model/pola yang dihasilkan

Jawab :
a. Context :
Pada link dataset https://archive.ics.uci.edu/ml/datasets/bank+marketing#, terdapat sebanyak
4 buat dataset dengan format csv, yaitu :
1. bank-additional-full.csv, yang berisi semua contoh data sebanyak 41188 dan 20 input.
Data yang ada pada file ini merupakan data yang terbaru yang ada pada repositori
dataset tersebut yaitu data dari bulan Maret 2008 sampai November 2010
2. bank-additional.csv, merupakan sampel data sebesar 10% yang dipilih acak dari
dataset no 1 dan tetap memiliki 20 input
3. bank-full.csv, merupakan dataset yang sama dengan dataset 1, namun merupakan
versi lama dari dataset 1, di mana dataset ini memiliki jumlah data / baris yang sama
namun hanya memiliki lebih sedikit jumlah input / kolom yaitu sebanyak 17
4. bank.csv, merupakan dataset yang dibentuk dengan mengambil sampel 10% secara
acak dari dataset no 3, dan memiliki jumlah input yang sama yaitu 17

Adapun secara umum dataset tersebut merupakan, data asli yang dikumpulkan oleh peneliti
sebelumnya (Moro et al., 2014) yang berisikan direct campaign dari sebuah dari sebuah
institusi bank yang berasal dari negara Portugal.berkaitan dengan langganan deposito
berjangka. Dari deskripsi kasus yang ada pada tautan tersebut, disebutkan bahwa institusi
bank tersebut melakukan campaign secara manual yaitu melalui panggilan telepon. Hal ini
sering menyebabkan direct campaign yang dilakukan menjadi tidak efisien dan tepat sasaran
karena ada kemungkinan bahwa orang yang menjadi target tidak tertarik dan tidak memiliki
niat sama sekali atau bukanlah merupakan target yang tepat. Berdasarkan hal tersebut, maka
perlu dibuat sebuah predictive model yang berfungsi untuk dapat membantu perusahaan /
bank tersebut meningkatkan efisiensi dari proses campaign yang dilakukan.

b. Data Understanding
Berdasarkan deskripsi dari dataset yang tersedia pada tautan repositori, maka kami memilih
untuk menggunakan dataset bank-additional-full.csv. Adapun alasan pemilihan dataset
tersebut adalah :
1. Dataset tersebut merupakan dataset yang berisikan data yang paling baru, dan bisa
dikatakan merupakan data yang paling relevan jika ingin membuat model untuk
kejadian saat ini. Hal ini diperkuat dengan adanya tambahan input dari yang
sebelumnya sebanyak 17 menjadi 20.
2. Dataset tersebut merupakan dataset dengan jumlah yang paling banyak. Hal ini kita
gunakan sebagai pertimbangan karena kita ingin menggunakan lebih banyak data
sebagai awal untuk melakukan pembuatan model (terlepas apakah diperlukan
melakukan sampling di proses selanjutnya)

Setelah menetapkan dataset yang akan digunakan, kemudian kami melakukan pengunduhan
data dan kemudian melakukan pengunggahan data tersebut ke dalam tools yang digunakan,
yaitu orange v3.24. Adapun secara lebih terperinci proses yang kami lakukan dalam tahap
data understanding ini adalah sebagai berikut :
1. Melakukan unggah data dari dataset yang akan digunakan yaitu bank-additional-
full.csv. Drag and drop komponen “File” yang ada pada Tool Dock pada bagian kiri
workspace, atau bisa dengan melakukan double-click pada komponen tersebut.

Setelah memilih file kemudian akan muncul tampilan seperti gambar di atas. Dari
informasi yang muncul kemudian kita dapat melihat bahwa dataset tersebut memiliki
jumlah data sebanyak 41.188 baris dan memiliki 21 feature yang terdiri dari 11
variabel categorical atau variabel diskrit dan 10 variabel numerik atau continuous
variable. Adapun kolom yang terdapat pada dataset tersebut dapat dilihat pada tabel
di bawah ini.
Feature Description Type
Age usia atau umur dari nasabah Numerik

Job pekerjaan nasabah Kategorikal

Marital status pernikahan Kategorikal

Education pendidikan Kategorikal

Default apakah credit secara default? Kategorikal

Housing apakah punya kredit pinjaman Kategorikal


rumah?

Loan apakah memiliki pinjaman? Kategorikal

Contact tipe alat komunikasi yang Kategorikal


digunakan

Month bulan terakhir komunikasi Kategorikal

Day_Of_Week hari terakhir komunikasi Kategorikal

Duration lama komunikasi terakhir Numerik

Campaign jumlah komunikasi atau Numerik


kontak yang dilakukan selama
campaign

Pdays jumlah hari setelah komunikasi Numerik


terakhir dari campaign terakhir

Previous jumlah komunikasi yang Numerik


dilakukan kepada nasabah
sebelum campaign saat ini

Poutcome Hasil dari campaign terakhir Kategorikal

Emp.var.rate indikator employment rate Numerik


yang diukur setiap kuarter

Cons.price.idx indikator indeks harga rata-rata Numerik


barang dan jasa yang
dikonsumsi dalam rumah
tangga yang diambil setiap
bulan

Cons.conf.idx indikator terhadap consumer Numerik


confidence index diukur setiap
bulan

euribor3m kurs referensi harian yang Numerik


mengacu pada rata-rata suku
bunga yang ditawarkan oleh
bank untuk dipinjamkan dalam
bentuk pinjaman tanpa jaminan
kepada bank lainnya pada
pasar uang euro dalam 3 bulan

nr.employed jumlah karyawan setiap Numerik


kuarter

y apakah berlangganan? Kategorikal

2. Untuk melihat contoh data yang ada, dapat menggunakan komponen “Data Table”.
Dapat dilakukan dengan menambahkan komponen tersebut lalu menarik garis /
penghubung dari “File” ke “Data Table”.

3. Selanjutnya kita melakukan proses statistik untuk melihat secara keseluruhan


persebaran yang ada pada dataset yang akan kita gunakan. Hal ini dapat kita lakukan
dengan menarik link dari komponen “File” ke komponen “Feature Statistics”.

Sehingga dapat kita lihat persebaran data dalam setiap kolom yang ada seperti yang
dapat dilihat pada gambar di bawah ini :
Dari hasil statistik yang didapatkan tersebut, hal yang perlu diperhatikan adalah pada
kolom “y”, dimana kolom tersebut merupakan target class atau variabel yang akan
kita prediksi. Dari gambar tersebut maka didapatkan bahwa persebaran nilai
“y”terlihat tidak seimbang atau dengan kata lain bahwa dataset tersebut bisa
dikatakan merupakan imbalance dataset. Lebih lanjut lagi dapat dilihat bahwa dataset
tersebut lebih didominasi oleh data dengan nilai “no”, hal ini dapat membuat model
yang kita bangun menjadi model yang tidak efektif, tidak baik dan dapat
menyebabkan overfitting jika digunakan

c. Data Preprocessing

Setelah melakukan tahap data understanding dan mendapatkan kesimpulan dari proses
tersebut terhadap dataset, maka perlu dilakukan beberapa tahap preprocessing. Tahap
preprocess dilakukan untuk mempersiapkan data yang akan kita gunakan dalam membangun
model. Tahap-tahap preprocessing yang dilakukan dalam membangun model ini di antaranya
adalah :
1. Melakukan proses undersampling terhadap dataset. Terdapat beberapa cara yang
dapat kita lakukan untuk mengatasi dataset yang tidak seimbang atau imbalance
dataset yang memiliki binary class atau 2 kelas klasifikasi. Beberapa cara berikut
adalah melakukan oversampling, undersampling, threshold-moving dan ensemble
techniques. Pada proses ini kami memilih untuk melakukan proses undersampling
untuk mendapatkan sampel dataset yang seimbang. Undersampling dilakukan untuk
mengurangi jumlah dataset dengan nilai ‘no’.

Pada aplikasi orange adapun langkah yang dilakukan untuk menerapkan proses
undersampling adalah dengan terlebih dahulu memisahkan dataset yang bernilai ‘no’
dengan ‘yes dengan menggunakan 2 komponen ‘Select Rows’. Kemudian pada
komponen ‘Select Rows’ pertama kita akan pilih semua nilai ‘no’ pada kolom ‘y’ dan
melakukan hal yang sebaliknya pada komponen kedua sehingga didapatkan gambar
seperti di bawah ini

Selanjutnya adalah melakukan proses undersampling atau mengurangi jumlah dataset


yang ada pada komponen ‘row with ‘n’’ . Proses ini dapat dilakukan dengan
menggunakan komponen “Data Sampler” yang dihubungkan dengan komponen
“row with’no’”. Pada kasus ini kami mengurangi jumlah dataset dengan nilai ‘no’
yang awalnya berjumlah 36.548 menjadi 4.640 dimana jumlah tersebut sama dengan
jumlah kolom dengan nilai ‘yes’.
Setelah melakukan undersampling terhadap dataset dengan nilai ‘no’ maka kita sudah
mendapatkan dataset yang seimbang dengan jumlah ‘yes’ sebanyak 4.640 dan jumlah
no’ sebanyak 4.640 dengan total data sebanyak 9.280 dengan jumlah fitur sebanyak
21. selanjutnya kita dapat menggabungkan kedua data tersebut dengan menggunakan
komponen “Concatenate” seperti gambar di bawah ini.
2. Melakukan proses pemilihan kolom / feature dan penentuan target class. Proses ini
dilakukan dengan menggunakan komponen ‘Select Columns’. Dimana kita hanya
perlu memastikan bahwa target variable sudah diisi sesuai dengan yang kita inginkan
yaitu kolom ‘y’.

3. Melakukan proses tahap preprocess terhadap dataset yang sudah balance. Dengan
menggunakan bantuan komponen “Preprocess” dapat dilakukan beberapa pilihan
transformasi dan proses terhadap dataset. Adapun fitur komponen yang kami gunakan
adalah fitur “Normalize Features” dan “Select Relevant Features”. Sebelum
pemilihan preprocess dilakukan kami terlebih dahulu melihat peringkat relevansi
feature dengan target class. Hal ini dilakukan untuk memilih hanya beberapa feature
yang memiliki pengaruh paling besar terhadap nilai target. Untuk mendapatkan
peringkat ini dapat menggunakan komponen “Rank” seperti gambar di bawah
Dengan menambahkan komponen “Rank” tersebut kita bisa melihat feature yang
paling berpengaruh terhadap target class, yang dalam hal ini kami melihat dari jumlah
information gain untuk setiap feature. Dari hasil tersebut, kami lalu menentukan
untuk memilih 5 feature yang terbaik berdasarkan information gain yaitu duration,
nr.employed, euribor3m, emp.var.rate, dan pdays. Keseluruhan feature tersebut
memiliki tipe numerik atau continuous value, yang artinya memiliki bentuk berupa
angka yang pastinya memiliki range yang cukup banyak.

Hal-hal yang sudah dikemukakan tersebut kemudian menjadi alasan dari pemilihan
fitur preprocess yang akan digunakan dalam pembuatan model.
- Penggunaan “Select Relevant Features” untuk mengambil 5 feature teratas
yang paling berpengaruh terhadap target class berdasarkan score information
gain. Pilihan ini didasari oleh hasil yang didapatkan dari komponen ‘Rank’ di
tahap sebelumnya, dimana jumlah feature yang akan diambil adalah 5 feature
yang paling berpengaruh.

- Untuk penggunaan “Normalize Features” digunakan untuk melakukan


normalisasi terhadap nilai feature dimana fitur yang kami pilih adalah
“Normalize to interval [-1.1]”, untuk membagi nilai continuous tersebut ke
dalam 3 bagian yaitu -1,0 dan 1. Hal ini dilakukan untuk mengurangi rentang
nilai yang ada pada feature yang dipilih (5 feature) dimana tipenya adalah
numerik

Setelah melakukan tahapan preprocessing, maka kita akan mendapatkan dataset dengan 5
feature yang paling berpengaruh / kuat terhadap target class yaitu kolom ‘y’, dengan nilai
feature yang berupa nilai numerik sudah dilakukan normalisasi untuk mengecilkan range dari
nilai tersebut. Hasil akhir graph yang dicapai sampai pada tahap data preprocessing ini
adalah seperti gambar di bawah ini
d. Data Modelling

Setelah melakukan tahap data preprocessing, kemudian akan dilanjutkan dengan tahap
pembuatan model yaitu proses data modelling. Dalam melakukan proses data modelling akan
digunakan 3 algoritma, yaitu random forest, naive bayes, dan decision tree.
1. Decision Tree
Algoritma decision tree ini merupakan algoritma yang menggunakan struktur seperti
pohon. Dalam orange dapat menggunakan komponen “Tree”. Adapun konfigurasi
algoritma yang digunakan adalah seperti gambar di bawah. Dimana subset akan
berhenti jika lebih kecil dari 5 dan minimal jumlah leaf class adalah 2 yaitu class
target. Selanjutnya proses klasifikasi akan berhenti ketika majority mencapai 95%.
yang artinya bahwa hasil leaf node 95% sudah merujuk ke satu class target.
Untuk melihat pohon yang dibentuk dari algoritma ini dapat menggunakan komponen
“Tree Viewer”. Pada komponen ini dapat dilakukan penyesuaian konfigurasi seperti
menentukan tingkat kedalaman tree yang ingin ditampilkan, pengaturan edge atau
link dan target class yang ingin dilihat pada tampilan tree tersebut.
2. Random Forest Classifier
Untuk dapat menggunakan algoritma ini kita dapat menggunakan komponen
‘Random Forest’ dan menghubungkannya dengan komponen “Preprocess”. Dalam
menggunakan algoritma classifier ini, digunakan jumlah tree sebanyak 10, yang
artinya akan ada sebanyak 10 buah decision tree. Hasil akhir dari klasifikasi akan
didapatkan dengan melakukan voting dari hasil class dari setiap trees yang ada.
Selanjutnya variabel yang ditentukan adalah bahwa subset tidak akan dilanjutkan jika
lebih kecil dari 5.

3. Naive Bayes
Naive Bayes merupakan algoritma klasifikasi yang menggunakan metode peluang.
Untuk dapat menggunakan naive bayes pada orange akan digunakan komponen
“Naive Bayes”. Untuk komponen ini tidak memiliki konfigurasi sehingga kita bisa
dapat langsung menggunakan algoritma ini dengan menghubungkannya dengan
komponen “Preprocess”.
Setelah menambahkan algoritma yang akan digunakan maka kita sudah menerapkan model
tersebut terhadap data yang sudah kita lakukan preprocessing. Adapun pada tampilan orange,
graph yang akan terlihat pada orange adalah seperti gambar di bawah ini.

e. Results and Analysis

Pada tahap ini akan dilakukan pengujian dan analisis terhadap model yang dibangun dengan
menggunakan pendekatan evaluasi pada metode classification. Dalam orange untuk
menjalankan atau melakukan tes terhadap algoritma dan melakukan penilaian terhadap model
yang dibangun, maka dapat menggunakan komponen “Test and Score” yang dapat
dihubungkan dengan komponen algoritma yang digunakan dan juga menghubungkannya
dengan komponen “Preprocess” seperti yang terlihat pada gambar di bawah ini
Dalam melakukan evaluasi dengan menggunakan komponen “Test and Score” ini digunakan
metode sampling dengan 10-Stratified Cross Validation dengan tujuan dari setiap proses fold,
persentase sample data akan tetap seimbang dan terjaga. Pemilihan 10 fold adalah
berdasarkan tingkat kepopuleran jumlah fold yang sudah banyak digunakan pada penelitian
yang menggunakan algoritma classification seperti pada kasus ini. Adapun konfigurasi yang
digunakan pada komponen “Test and Score” adalah seperti gambar di bawah

Adapun evaluation metrics yang ditampilkan adalah AUC (Area Under Curve), CA
(Classification Accuracy), F1 (harmony mean of precision and recall), Precision, dan Recall.
Seperti yang dapat dilihat pada gambar di atas, bahwa hasil menunjukkan bahwa metode atau
algoritma Random Forest menunjukkan performa yang paling baik dimana menghasilkan
AUC sebanyak 0.934. Untuk dapat melihat lebih detail data atau hasil pengukuran dari
evaluasi model ini, dapat ditambahkan komponen “Confusion Matrix”. Pada matrik tersebut
dapat terlihat jumlah actual dan predicted class berdasarkan setiap algoritma yang dilakukan
seperti ditunjukkan gambar berikut

Adapun tampilan atau hasil akhir graph yang digunakan dalam orange untuk melakukan
pembuatan model pada kasus ini adalah seperti berikut

Hasil analisa berdasarkan keseluruhan proses yang dilakukan adalah bahwa menggunakan
dataset yang balance cukup menghasilkan model dengan performa yang cukup baik,
meskipun saran dari kami bahwa mungkin model tersebut dapat diuji terlebih dahulu pada
keadaan sebenarnya. Selain itu kami juga melakukan perbandingan performa dari ketiga
metode tersebut dengan tidak melakukan imbalance dataset pada tahap pre process data.
Dengan menggunakan konfigurasi dan fitur yang sama, yang terlihat bahwa performa yang
dihasilkan dari data yang balance lebih baik daripada imbalance dataset. Random forest tetap
menjadi algoritma dengan performa yang paling baik.. Untuk penelitian selanjutnya mungkin
dapat mencoba dan melakukan percobaan terhadap algoritma yang lain dan dengan
menggunakan pengaturan terhadap setiap komponen dengan nilai yang berbeda.

Anda mungkin juga menyukai