Analisis Data Kategorik using python.pptx

ErnaPiantari2 0 views 62 slides Oct 02, 2025
Slide 1
Slide 1 of 62
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62

About This Presentation

Analisis Data Kategorik


Slide Content

Analisis Data Kategorik

Data kategorik Data yang mendefinisikan karakteristik dari data tersebut Berbagi menjadi 2 : nominal dan ordinal Data nominal : data diskrit yang setiap data memiliki value yang sama , contoh : jenis kelamin ( laki-laki , perempuan ) Data Ordinal : data diskrit yang memiliki value tingkatan , contoh : rangking (1,2,3,4,5)

Analisis Deskriptif Melakukan analisis frekuensi dan proporsi Analisis Crosstab Analisis crosstab dapat menggunakan heatmap Customer Minuman Makanan 1 Teh Bakso 2 Teh Mie Ayam 3 Kopi Mie Ayam Minuman apa yang harus banyak disediakan Frekuensi : Teh : 2 Kopi : 1 Jawabannya teh Proporsi : Teh : 2/3 = 6,67 Kopi : 1/3 = 3,33 Di python : import matplotlib.pyplot as plt import pandas frekuensi.plot (kind='bar', color =['blue', 'brown', 'orange’]) proporsi.plot (kind='bar', color =['blue', 'brown', 'orange’]) tabel_kontingensi = pd.crosstab (data[' Jenis_Kelamin '], data[' Minuman '])

Statistical Analytic Analisis data descriptive : Menjelasakan apa yang ada dalam data. Statistik deskriptif hanya berhubungan dengan hal menguraikan atau memberikan keterangan-keterangan mengenai suatu data atau keadaan atau fenomena . statistik deskriptif berfungsi menerangkan keadaan , gejala , atau persoalan . Metode : Dengan statistical Dengan visualisasi

Statistical Method Populasi adalah sejumlah data atau semua objek yang digunakan sebagai objek analisis data Contoh : Jika kita ingin melakukan studi mengenai nilai pemograman siswa di sekolah tertentu . Data populasinya adalah semua nilai pemogramanan siswa di sekolah tersebut . Ingat populasinya bukan semua siswa di sekolah tersebut , Sample adalah subset atau bagian dari data pupulasi yang dapat mewakili . Misalnya kita ingin mengestimasi pengaruh proses pembelajaran selama satu semester dengan mengukur 20 siswa di setiap pertemuan . Pemilihian 20 siswa dilakukan secara acak . Dalam penelitian , populasi adalah data yang

Sampling Sampling adalah metode yang digunakan untuk menentukan data sample dari populasi yang ada Random sampling : Pengambilan data secara acak Memilih data observasi secara random Dapat dilakuakan dengan sederhana Perlu hati-hati dalam menentukan ukuran sample Sistematik Sampling

Sampling Stratified Sampling: Modifikasi random sampling dan sistematik sampling yang didesain untuk mendapatkan sample yang lebih representative. Putuskan kriteria utama ( jenis kelamin , usia , dll ) Bagi populasi menjadi beberapa level bergantung pada kriterianya . Ukurannya bisa bervariasi Pilih data dengan ukuran tertentu dengan metode random sampling atau systematic sampling dari setiap subpopulation.

Sampling Cluster Sampling/ Area Sampling: Proses sampling terdiri dari beberapa grup yang disebut sebagai cluster dari elemen popupasi . Setaip cluster berinteaksi dalam grup secara natural, berbeda dengan stratified sampling yang dibuat berdasarkan variable tertentu . Misal : kita ingin memilih sampel sekitar 10% dari seluruh siswa kelas lima di suatu kabupaten . Kita secara acak memilih 10% sekolah dasar yang diasumsikan memiliki jumlah siswa kelas lima yang kurang lebih sama dan memilih semua siswa kelas lima dari sekolah-sekolah tersebut . Dalam contoh ini : klaster merupakan sekolah dasar yang dipilih .

Sampling Multiphase Sampling: melibatkan pengumpulan sejumlah informasi dari keseluruhan sampel dan informasi tambahan , baik secara bersamaan maupun setelahnya , dari sub- sampel keseluruhan sampel . Pengambilan sampel multifase atau multitahap pada dasarnya merupakan kombinasi dari teknik-teknik yang telah dijelaskan sebelumnya . Misal : Seorang peneliti dalam sensus penduduk dapat menanyakan pertanyaan-pertanyaan dasar seperti jenis kelamin , usia , atau status perkawinan untuk seluruh populasi , tetapi hanya 10% dari populasi yang boleh ditanyai tentang tingkat pendidikan mereka atau tentang berapa tahun pendidikan matematika dan sains yang telah mereka tempuh .

Uji Statistik Mean Median Modus Quartile 1 Quartile 2 Quartile 3 Cari nilai masing – masing : 20, 13, 15, 18, 19, 25, 18, 15, 17, 12, 11, 12, 13, 13,

Uji Statistik Uji Chi-square Menguji hubungan antara variable dalam data Apakah ada hubungan antara makanan dan minuman H₀ ( Hipotesis Nol ): Tidak ada hubungan antara makanan dan preferensi minuman . H₁ ( Hipotesis Alternatif ): Ada hubungan antara makanan dan preferensi minuman . Uji Chi-square goodness of fit Menguji distribusi data apakah sesuai teori atau tidak import numpy as np import scipy.stats as stats Data # ini disimpan dalam dataframe tabel_kontingensi = pd.crosstab (data[‘ minuman '], data[‘ makanan ']) print("\ nChi -Square:", chi2) print("P-Value:", p) chi2, p, dof , expected = stats.chi2_contingency( tabel_kontingensi ) print("\ nChi -Square:", chi2) print("P-Value:", p) Hasilnya : Chi-Square Value → Semakin besar , semakin kuat kemungkinan ada hubungan . P-Value → Jika p < 0.05 , ada hubungan antara variabel ( tolak H₀).

Uji Statistik McNemar’s Test Digunakan untuk data berpasangan (paired data). Cocok untuk menguji perubahan sebelum dan sesudah intervensi atau dua kondisi terkait pada individu yang sama . Hanya berlaku untuk tabel kontingensi 2x2 . Contoh data Apakah isu korupsi berpengaruh terhadap penjualan produk atau tidak Sebelum / sesudah Membeli Tidak membeli Membeli 30 15 Tidak membeli 5 20 import numpy as np import scipy.stats as stats from statsmodels.stats.contingency_tables import mcnemar tabel_kontingensi = np.array ([[30, 5], # ( Membeli sebelum & Membeli sesudah , Membeli sebelum & Tidak membeli sesudah ) [15, 20]]) # ( Tidak membeli sebelum & Membeli sesudah , Tidak membeli sebelum & Tidak membeli sesudah ) # Uji McNemar result = mcnemar ( tabel_kontingensi , exact=True) print("Chi-Square:", result.statistic ) print("P-Value:", result.pvalue ) Jika p-value < 0.05 , tolak H₀ → Ada perubahan signifikan sebelum dan sesudah . Jika p-value ≥ 0.05 , gagal menolak H₀ → Tidak ada perubahan signifikan .

Outline Membangun Skenario Pemodelan : Pembagian data : data latih -uji, k -fold cross validation Menentukan Langkah Eksperimen Parameter Evaluasi Membangun Model Klasifikasi : Algoritma klasifikasi yang diimplementasi menggunakan library, yaitu : k-NN, Decision Tree, Naïve Bayes, Support Vector Machine dan Boosting Matriks Performansi Klasifikasi 14

Pembagian Data Data dibagi menjadi 2 bagian : Data Latih ( Training Data ) : untuk mengembangkan model Data Uji ( Testing Data ) : untuk Mengukur performansi model 15 Split Data Data Latih Data Uji

Pembagian Data Dataset Iris ( https://archive.ics.uci.edu/ml/datasets/iris ) : Data Latih ( Training Data ) : 70% Data Uji ( Testing Data ) : 30% 16

Hands On 17 Data Latih : 70% Data Uji : 30% Output, jumlah data latih dan data uji

k -Fold Cross Validation k -Fold Cross Validation digunakan pada dataset dengan jumlah data yang relatif sedikit k -Fold Cross Validation dilakukan pada data latih Data latih dibagi menjadi k bagian kemudian secara iteratif , 1 bagian menjadi data validasi 18 Image Source : https://medium.com/the-owl/k-fold-cross-validation-in-keras-3ec4a3a00538

Hands On 19 5 Cross Validation Output akurasi dari setiap fold Akurasi rata- rata dari seluruh fold

Training – Validation – Testing Data 20 Training Validation Test Model Selection Model assessment Model Selection : Mengestimasi performa model - model yang berbeda untuk memilih model yang terbaik , yaitu model dengan minimum error Model Assessment : Dari model yang terpilih , mengestimasi error untuk data baru (data uji)

Menentukan Langkah Eksperimen 21 Setiap metode memiliki parameter tertentu Dilakukan eksperimen dengan beberapa variasi parameter Parameter yang menghasilkan model performa terbaik akan digunakan selanjutnya Beberapa strategi pencarian parameter untuk menghasilkan model terbaik One Factor at A Time Grid Search Best Guess

Parameter Evaluasi Klasifikasi Akurasi Presisi Recall/Sensitivity Specificity F1-measure … Regresi MSE (Mean Squared Error) MAPE (Mean Absolute Percentage Error) … Klastering Silhouette Score Davies-Bouldin Index … Parameter Evaluasi akan dijelaskan secara detail pada modul – modul berikutnya 22

Outline Membangun Skenario Pemodelan : Pembagian data : data latih -uji, k -fold cross validation Menentukan Langkah Eksperimen Parameter Evaluasi Membangun Model Klasifikasi : Algoritma klasifikasi yang diimplementasi menggunakan library, yaitu : k-NN, Decision Tree, Naïve Bayes, Support Vector Machine dan Boosting Matriks Performansi Klasifikasi 23

Analisis Prediktif ( Regresi ) Regresi Logistik -> memprediksi variable kategorik berdasarkan beberapa variable bebas Regresi logistik biner , memprediksi nilai kategorik yang terdiri dari dua nilai yang berbeda , contoh : Lulus/ tidak lulus import pandas as pd import numpy as np import statsmodels.api as sm from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score , classification_report # Contoh Data data = { ‘ Niai_kuis ’: [52, 45, 87, 92, 76, 76, 70, 62, 23, 30], ‘ Nilai_ujian ’: [65, 70, 70, 80, 90, 85, 55, 62, 50, 40], ‘ Kelulusan ': [0, 0, 1, 1, 1, 1, 1, 1, 0, 0] } df = pd.DataFrame (data) # Variabel independen (X) dan dependen (y) X = df [[‘ Nilai_kuis ', ‘ Nilai_ujian ']] y = df [‘ Kelulusan '] # Split data X_train , X_test , y_train , y_test = train_test_split (X, y, test_size =0.2, random_state =42) # Model Regresi Logistik model = LogisticRegression () model.fit ( X_train , y_train ) # Prediksi y_pred = model.predict ( X_test ) # Evaluasi print(" Akurasi :", accuracy_score ( y_test , y_pred )) print( classification_report ( y_test , y_pred ))

Analisis Prediktif ( Regresi ) Regresi Logistik -> memprediksi variable kategorik berdasarkan beberapa variable bebas Regresi logistik multinomial, memprediksi nilai kategorik yang terdiri dari beberapa nilai berbeda , contoh : Kendaraan kategori 1, Kendaraan kategori 2, Kendaraan kategori 3. from sklearn.linear_model import LogisticRegression # Data Dummy data = { ' Usia ': [22, 25, 47, 52, 46, 56, 60, 62, 23, 30], ' Pendapatan ': [20000, 25000, 50000, 52000, 48000, 58000, 60000, 62000, 21000, 30000], ' Preferensi ': [‘ Kategori_A ’, ‘ Kategori_A ', ' Kategori_B ', ' Kategori_B ', ' Kategori_B ', ' Kategori_C ', ' Kategori_C ', ' Kategori_C ', ' Kategori_A ', ' Kategori_B '] } df = pd.DataFrame (data) # Variabel independen (X) dan dependen (y) X = df [[' Usia ', ' Pendapatan ']] y = df [' Preferensi '] # Model Multinomial Logistic Regression model = LogisticRegression ( multi_class ='multinomial', solver=' lbfgs ') model.fit (X, y) # Prediksi y_pred = model.predict (X) # Evaluasi print(" Prediksi :", y_pred )

Analisis Prediktif ( Regresi ) Regresi Logistik -> memprediksi variable kategorik berdasarkan beberapa variable bebas Regresi logistic ordinal, memprediksi nilai kategorik beberapa nilai yang memiliki nilai tingkatan , contoh : Sangat istimewa , istimewa , baik , dst . import statsmodels.api as sm from statsmodels.miscmodels.ordinal_model import OrderedModel # Data Dummy data = { ' Usia ': [22, 25, 47, 52, 46, 56, 60, 62, 23, 30], ' Pendapatan ': [20000, 25000, 50000, 52000, 48000, 58000, 60000, 62000, 21000, 30000], ' Kepuasan ': [' Rendah ', ' Sedang ', 'Tinggi', 'Tinggi', ' Sedang ', 'Tinggi', 'Tinggi', 'Tinggi', ' Rendah ', ' Sedang '] } df = pd.DataFrame (data) # Konversi variabel ordinal ke angka df [' Kepuasan '] = df [' Kepuasan ']. astype ('category'). cat.codes # Rendah =0, Sedang =1, Tinggi=2 # Model Ordinal Logistic Regression model = OrderedModel ( df [' Kepuasan '], df [[' Usia ', ' Pendapatan ']], distr ='logit') res = model.fit () # Hasil print( res.summary ())

k – Nearest Neighbor (k-NN) Classifier 27 Algoritma : Menentukan nilai k Menghitung jarak antara data baru terhadap semua training data Mengidentifikasi k nearest neighbor Menentukan label/kelas data baru berdasarkan kelas k-nearest neighbor (dapat menggunakan voting) Nearest Neighbor terhadap data baru (x)

Contoh kasus 28 Terdapat 4 data latih (P1, P2, P3, P4). Data memiliki dua atribut (x1 dan x2) Data latih terdiri dari dua kelas (kelas BAD dan kelas GOOD) Diperlukan klasifikasi untuk menentukan kelas dari data uji (P5).

Contoh kasus ( lanjutan )

Kelebihan dan Kekurangan k -NN Classifier 30 Cocok untuk data numerik Mudah dipahami dan diimplementasikan k -NN merupakan lazy learner (tidak membangun model secara eksplisit) Penentuan label/kelas data baru membutuhkan computational cost yang cukup tinggi Perlu menentukan nilai k yang sesuai Jika k terlalu kecil, sensitif terhadap noise Jika k terlalu besar, nearest neigbor mungkin mencakup data dari kelas lain

Hands On 31 k-NN Classifier Proses training data latih , prediksi data uji, perhitungan akurasi Output akurasi yang dihasilkan k-NN classifier

Hands On ( lanjutan ) 32 Parameter Keterangan Contoh Nilai n_neighbors Jumlah Neighbor - Bilangan Integer (1,2,3,4,….) - Nilai default : 4

Decision Tree Classifier 33 Membangun decision tree (pohon keputusan) dari data lati h Output dari pohon keputusan => rule . Rule tersebut digunakan untuk klasifikasi Pohon keputusan, terdiri dari : Root Node Internal Node Leaf Node Root node Internal node Leaf node Leaf node Leaf node

Decision Tree Classifier 34 Menghitung Gini Index (GI) untuk setiap atribut Menentukan root berdasarkan nilai GI. Root adalah atribut dengan nilai GI terkecil. Ulangi langkah 1 dan 2 untuk level berikutnya pada tree hingga nilai GI = 0. Data latih terdiri dari 7 data. Data terdiri dari 3 atribut. Terdapat 2 kelas : Beli dan Tidak Beli

Gini Index/Impurity untuk Atribut “ Kebutuhan Primer” 35

Gini Index/Impurity untuk Atribut “ Sudah Gajian ” 36

Gini Index/Impurity untuk Atribut “Harga Barang ” 37

Gini Index/Impurity untuk Atribut “Harga Barang ” 38

Penentuan Root 39 Gini Index “Kebutuhan Primer” : 0.44 Gini Index “Sudah gajian” : 0.22 Gini Index “Harga barang < 15000” : 0.34 Attribut yang terpilih sebagai root adalah ”Sudah Gajian” Dilakukan proses perhitungan Gini Index bagi left node untuk attribut ”Kebutuhan Primer” dan ”Sudah Gajian” Merupakan internal node sehingga memerlukan perhitungan Gini Index Leaf node

Decision Tree Classifier final untuk data latih 40

Hands On 41 Decision tree classifier Proses training data latih , prediksi data uji, perhitungan akurasi Output akurasi yang dihasilkan oleh Decision Tree classifier

Hands On ( lanjutan ) Parameter Keterangan Contoh Nilai max_depth Maksimum kedalaman tree yang dibentuk - Bilangan Integer (1,2,3,4,….) - Nilai default : None ( jika None maka tree akan terus mendalam sampai seluruh Gini Impurity = 0) min_samples_split Minimum sampel yang diperlukan agar node dapat ‘split’ - Bilangan Integer (1,2,3,4,….) - Nilai default : 2

Kelebihan dan Kekurangan Decision Tree Classifier 43 Pohon keputusan dapat memberikan penjelasan dari proses klasifikasi yang dilakukan berupa rule yang dihasilkan Proses pembangunan pohon keputusan pada data numerik menjadi lebih rumit dan memungkinkan terdapat informasi yang hilang Pohon keputusan dapat tumbuh menjadi sangat kompleks pada data yang rumit.

Naïve Bayes Classifier 44 Membangun probabilistik model untuk klasifikasi Discriminative Model Generative Model MAP Classification Rule MAP : Maximum A Posterior Assign Generative classification dengan MAP rule Menerapkan Bayesian Rule

Contoh Kasus 45 Terdapat 14 data latih. Data memiliki 4 atribut (Outlook, Temperature, Humidity dan Wind) Data latih terdiri dari dua kelas (kelas YES dan kelas NO untuk bermain tenis) Diperlukan klasifikasi untuk menentukan kelas dari data uji, apakah bermain tenis (YES) atau tidak (NO).

Contoh Kasus 46 Proses Pelatihan

Contoh Kasus 47 Proses Pelatihan

Hands On 48 Proses training data latih , prediksi data uji, perhitungan akurasi Naïve Bayes Classifier Output akurasi yang dihasilkan oleh Naïve Bayes Classifier

Kelebihan dan Kekurangan Naïve Bayes Classifier 49 Naïve Bayes Classifier bekerja lebih baik pada training data yang kecil Proses pembangunan Naïve Bayes Classifier pada data numerik menjadi lebih rumit dan memungkinkan terdapat informasi yang hilang Pada Naïve Bayes Classifier, diasumsikan bahwa satu fitur dengan fitur yang lain saling independen, hal ini mungkin tidak selalu terjadi pada kasus nyata

Support Vector Machine 50 Ide utama dari SVM adalah untuk menemukan hyperplane terbaik yang memisahkan 2 daerah keputusan dengan baik Hyperplane adalah sebuah fungsi yang dapat digunakan sebagai pemisah antar kelas

Support Vector Machine 51 Algoritma SVM : Ide Fitur-fitur dari data dipetakan ke dalam ruang dimensi lebih tinggi menggunakan fungsi kernel (linear, polynomial, radial basis function, sigmoid). Mencari hyperplane terbaik yang memisahkan data yang telah dipetakan dalam ruang dimensi tinggi. Hyperplane terbaik dapat diperoleh dengan memaksimalkan jarak hyperplane dengan titik data terdekat (Support Vectors)

Kernel pada Support Vector Machine 52 Fitur-fitur dari data dipetakan ke dalam ruang dimensi tinggi menggunakan fungsi kernel (linear, polynomial, sigmoid, atau radial basis function) Dengan menggunakan fungsi kernel, akan dihasilkan fitur-fitur baru yang akan digunakan untuk mengklasifikasi (tidak lagi menggunakan fitur-fitur lama)

Parameter C pada Support Vector Machine 53 Nilai C yang terbaik harus dicari agar SVM terjadi keseimbangan antara jarak semaksimal dan kesalahan klasifikasi seminimal mungkin. Nilai C yang tinggi = model akan menerima lebih banyak penalti ketika model gagal mengklasifikasikan data dengan tepat. Nilai C yang rendah = model akan mentolerir data yang salah diklasifikasikan. Nilai C yang rendah biasanya baik digunakan pada data yang memiliki banyak noise, sebaliknya nilai C yang tinggi biasanya baik digunakan pada data yang memiliki sedikit noise. Sumber : https://learnopencv.com/svm-using-scikit-learn-in-python/

Parameter γ pada Support Vector Machine 54 Nilai γ yang besar akan menghasilkan kelengkungan yang tajam pada ruang dimensi tinggi. Sebaliknya, nilai γ yang kecil akan menghasilkan ruang dimensi tinggi yang lebih landai.

Hands On 55 Parameter Keterangan Contoh Nilai kernel Memilih kernel untuk SVM ‘linear’ untuk linear kernel ‘poly’ untuk polynomial kernel ‘ rbf ’ untuk radial basis function kernel - Nilai default : rbf C Parameter regularisasi SVM untuk semua kernel Bilangan Float positif (…, 0.1, 0.5, 1.0, 1.5 , …) Nilai default = 1.0 gamma Parameter koefisien kernel untuk ‘poly’ dan ‘ rbf ’ Bilangan Float positif (…, 0.001, 0.01, 0.1, 1, …) degree Derajat polynomial untuk kernel ‘poly’) - Bilangan Integer (2,3,4,….) - Nilai default : 3

Hands On ( lanjutan ) 56 Support Vector Machine Proses training data latih , prediksi data uji, perhitungan akurasi Output akurasi yang dihasilkan oleh Naïve Bayes Classifier

Kelebihan dan Kekurangan Support Vector Machine 57 SVM menggunakan strategi kernel sehingga dapat mengatasi data yang kompleks. Outlier dapat diatasi menggunakan soft margin constant C. Hyper parameter dan kernel perlu di-tuning untuk mendapatkan akurasi yang diharapkan Waktu training yang lebih lama untuk dataset yang lebih besar

Boosting Algorithm 58 Weak Model menjadi Strong Model Mengkombinasikan hasil prediksi dari setiap weak model dengan metode Average/Weighted Average Higher voting Tipe Boosting AdaBoost (Adaptive Boosting) Gradient Tree Boosting XGBoost Image Source : https://towardsdatascience.com/boosting-algorithms-explained-d38f56ef3f30

AdaBoost (Adaptive Boosting) 59 AdaBoost mengidentifikasi miss-classified data Memberikan bobot lebih terhadap miss-classified data, sehingga classifier berikutnya lebih concern terhadap hal tersebut Image Source : https://www.analyticsvidhya.com/blog/2015/11/quick-introduction-boosting-algorithms-machine-learning Image source : https://www.datacamp.com/community/tutorials/adaboost-classifier-python

Hands On 60 AdaBoostClassifier Secara default, classifier yang di boosting adalah Decision Tree

Hands On ( lanjutan ) 61 Parameter Keterangan Contoh Nilai n_estimators Jumlah weak learner yang digunakan Bilangan Integer (…,10,11,12,…) Nilai default = 50 learning_rate Bobot setiap classifier untuk setiap iterasi boosting Bilangan Float positif (…, 0.1, 0.5, 1.0, 1.5 , …) Nilai default = 1.0

Matriks Performansi Klasifikasi 62
Tags