Data Analytic dan Machine Learning menggunakan Python

 Apa Itu Data?


Data adalah sekumpulan informasi yang diperoleh melalui pengamatan, pengukuran, atau penelitian. Data dapat berbentuk angka, teks, gambar, atau simbol yang dapat digunakan untuk mengidentifikasi pola atau tren dalam konteks tertentu.

Jenis-Jenis Data
1. Berdasarkan Sumber Pengumpulan:
  • Data Primer: Data yang dikumpulkan langsung dari sumber pertama melalui survei, wawancara, atau eksperimen.
  • Data Sekunder: Data yang diperoleh dari sumber yang sudah ada sebelumnya, seperti laporan penelitian, literatur, atau database publik.

2. Berdasarkan Sifatnya:
  • Data Kualitatif: Data deskriptif yang tidak dapat diukur dalam bentuk angka, misalnya opini atau karakteristik.
  • Data Kuantitatif: Data yang dapat diukur dan diekspresikan dalam bentuk angka, seperti jumlah penjualan atau hasil pengukuran statistik.

Fungsi dan Manfaat Data
Data membantu dalam pengambilan keputusan yang tepat berdasarkan fakta dan analisis. Selain itu, data berfungsi sebagai bahan evaluasi untuk menilai efektivitas suatu program dan membantu mengidentifikasi akar permasalahan yang dialami.

Contoh Penggunaan Data
Shopee merupakan aplikasi toko online yang memanfaatkan data pelanggan untuk memberikan pengalaman berbelanja yang dipersonalisasi. Dengan menganalisis data perilaku belanja dan riwayat pencarian pelanggannya, Shopee dapat merekomendasikan produk yang relevan bagi setiap pelanggan.


Apa itu Data Analyst?


Data Analyst adalah profesi yang bertugas mengumpulkan, menganalisis, dan menafsirkan data untuk mendukung pengambilan keputusan dalam berbagai bidang, termasuk bisnis, kesehatan, dan teknologi.

Tugas Utama Data Analyst
Tugas Utama seorang Data Analyst meliputi:

1. Pengumpulan Data: Mengumpulkan data dari berbagai sumber seperti database internal, survei, dan laporan eksternal.

2. Membersihkan dan Memproses Data: Melakukan pembersihan data untuk menghilangkan kesalahan atau inkonsistensi, lalu data diproses agar siap untuk dianalisis.

3. Analisis Data: Menggunakan statistika dan software analisis data untuk menemukan pola dan tren dari data yang telah di proses.

4. Visualisasi Data: Membuat visualisasi data seperti grafik yang kemudian dipresentasikan kepada pemangku kepentingan.

5. Pelaporan: Merangkum hasil analisis menjadi laporan lalu memberikan rekomendasi yang sesuai kepada pemangku kepentingan berdasarkan data.


Skill Data Analyst
Adapun skill yang diperlukan untuk menjadi seorang Data Analyst, di antaranya:
  • Kemampuan dan keterampilan dalam bidang matematika dan statistika.
  • Kemampuan pemrograman dalam bahasa pemrogramman seperti Python, R, dan SQL.
  • Pemahaman tentang database seperti SQL Server, Oracle, dan SAP.
  • Menguasai cara riset, analisis, dan visualisasi data menggunakan alat seperti Tableau atau Power BI.
  • Pemahaman mengenai Machine Learning dan Artificial Intelligence.

Big Data

Big Data merujuk pada kumpulan data yang sangat besar dan kompleks sehingga tidak dapat diolah menggunakan alat dan teknik pengolahan data tradisional. Data ini berasal dari berbagai sumber, seperi aplikasi, media sosial, dan lainnya.

Enam 'V' dalam Big Data
Enam 'V'

Big Data sering digambarkan dengan enam karakteristik utama yang dikenal sebagai enam 'V':
1. Volume: Merujuk pada jumlah data yang sangat besar yang perlu dikelola dan dianalisis. Contoh: data yang dihasilkan oleh platform media sosial setiap hari.
2. Velocity: Kecepatan di mana data dihasilkan dan diproses. Misalnya, data transaksi kartu kredit yang harus diproses secara real-time untuk mendeteksi penipuan.
3. Variety: Jenis data yang beragam, baik terstruktur (seperti data tabel dalam database) maupun tidak terstruktur (seperti teks, gambar, dan video).
4. Veracity: Tingkat keakuratan dan keandalan data.
5. Value: Nilai potensial yang dapat diekstrak dari data yang bisa meningkatkan efisiensi operasional.
6. Variability: Seberapa cepatnya perubahan yang terjadi pada struktur data. Contohnya adalah data yang polanya berubah-ubah dari waktu ke waktu, seperti tren media sosial.


Contoh Penggunaan Big Data

1. Personalisasi Iklan di Media Sosial
Platform media sosial seperti Facebook dan Instagram menggunakan Big Data untuk menampilkan iklan yang relevan dengan minat pengguna. Platform tersebut menggunakan Algoritma untuk menganalisis data aktivitas online, seperti halaman yang disukai, postingan yang diikuti, dan interaksi dengan konten kemudian menargetkan iklan yang sesuai dengan preferensi individu.

2. Rekomendasi Konten di Layanan Streaming
Layanan streaming seperti YouTube menggunakan Big Data untuk merekomendasikan video atau konten yang mungkin disukai oleh pengguna. Algortima menganalisis data tontonan, pencarian, dan komentar untuk memahami selera pengguna. Kemudian merekomendasikan konten baru yang sesuai minat pengguna.

3. Pendeteksian Penipuan di Perbankan
Bank dan institusi keuangan menggunakan Big Data untuk mendeteksi aktivitas penipuan secara real-time. Caranya dengan menganalisis pola transaksi yang mencurigakan dan membandingkannya dengan data historis. Dengan begitu sistem dapat mengidentifikasi transaksi yang tidak biasa.

Outlier pada Data Analytic


Outlier adalah data yang berbeda secara signifikan dari data lainnya dalam dataset. Outlier dapat berupa nilai yang sangat tinggi atau sangat rendah dibandingkan dengan sebagian besar data lainnya. Kehadiran outlier bisa disebabkan oleh variasi yang wajar dalam data atau bisa menunjukkan kesalahan pengukuran atau pencatatan data.

Penyebab Outlier
  • Kesalahan Pengukuran: Data yang salah dicatat atau alat pengukur yang tidak akurat.
  • Kesalahan Pencatatan Data: Kesalahan dalam memasukkan data secara manual.
  • Perubahan Sistematis dalam Kondisi: Kejadian yang tidak biasa atau kondisi ekstrem yang tidak mencerminkan situasi normal.
  • Variasi Alamiah dalam Data: Data yang memang memiliki variasi yang sangat besar secara alami.

Tipe-tipe Outlier
1. Global Outlier
Global outlier adalah jenis outlier yang paling umum. Nilai ini terpisah secara signifikan dari sebagian besar nilai lain dalam kumpulan data. Sebagai contoh, dalam kumpulan data berat badan orang dewasa, seseorang dengan berat badan 370 kg dianggap sebagai global outlier karena berat badan tersebut berada jauh di luar rentang normal.

2. Contextual Outlier
Contextual outlier adalah nilai abnormal yang berada dalam konteks tertentu, tetapi tidak secara keseluruhan. Misalnya, suhu udara 30 derajat celcius di musim panas mungkin dianggap normal. Namun, jika terjadi pada musim dingin, nilai ini bisa dianggap sebagai contextual outlier. Dalam kasus ini, 'musim' adalah konteks yang membuat suhu tersebut menjadi outlier.

3. Collective Outlier
Collective outlier adalah sekumpulan nilai yang secara kolektif dianggap abnormal, meski masing-masing nilai mungkin tidak dianggap outlier. Contohnya, terjadi peningkatan tajam pada penjualan suatu produk dalam beberapa hari berturut-turut. Nilai penjualan harian tersebut mungkin dianggap normal, tetapi jika digabungkan dengan periode waktu lain, peningkatan itu bisa saja abnormal dan merupakan collective outlier.

Penanganan Outlier
  • Menghapus Outlier: Jika outlier dianggap sebagai kesalahan atau data yang tidak relevan, mereka dapat dihapus dari dataset.
  • Mengubah Nilai Outlier: Mengganti nilai outlier dengan nilai yang lebih masuk akal, seperti rata-rata atau median dari data non-outlier.
  • Memisahkan Analisis: Menganalisis data dengan dan tanpa outlier untuk memahami dampaknya terhadap hasil analisis.

Pandas DataFrame Library


Pandas adalah sebuah library Python bersifat open-source yang menyediakan alat-alat untuk menganalisis dan memanipulasi data. Pandas menyediakan berbagai alat dan fungsi untuk menangani data, mulai dari membaca, membersihkan, hingga menganalisis data dalam berbagai format. Nama "Pandas" berasal dari istilah "Panel Data," yang merujuk pada data multidimensi.

Salah satu komponen utama dari Pandas adalah DataFrame. DataFrame adalah struktur data dua dimensi yang menyerupai tabel, di mana data disusun dalam baris dan kolom.

DataFrame dapat dibuat dari berbagai sumber data, termasuk:
  • CSV (Comma-Separated Values)
  • Excel file
  • SQL databases
  • JSON data

Cara Menggunakan Pandas
Pertama kita harus menginstall library Pandas menggunakan PIP. Kita bisa ketik command berikut ini di terminal.
pip install pandas

Setelah itu, untuk mengggunakannya kita `import` modul pandas ke file Python.
import pandas as pd

Contoh Penggunaan Pandas DataFrame
1. Membuat DataFrame
Program untuk menampilkan dictionary dalam bentuk DataFrame.
- `pd.DataFrame()` digunakan untuk mengubah data menjadi bentuk DataFrame.

import pandas as pd

# Membuat DataFrame dari dictionary
data = {
    'Nama': ['Ali', 'Budi', 'Cici', 'Dewi'],
    'Umur': [23, 25, 21, 30],
    'Kota': ['Jakarta', 'Bandung', 'Surabaya', 'Medan']
}
df = pd.DataFrame(data)

# Menampilkan DataFrame
print(df)
  

    Nama  Umur      Kota
0    Ali    23   Jakarta
1   Budi    25   Bandung
2   Cici    21  Surabaya
3   Dewi    30     Medan
  

2. Filter Data
Program untuk memfilter umur lebih dari 24 tahun.
- `df['Umur']` Mengambil data 'umur' pada DataFrame.
- `df['Umur'] > 24` Menetapkan kondisi dimana umur lebih/kurang dari 25 ditetapkan value boolean (True/False) untuk setiap elemen yang ada di data 'umur'.
- `df[df['Umur'] > 24]` Mengambil data 'umur' yang sesuai dengan kondisi atau memiliki boolean 'True'.

import pandas as pd

data = {
    'Nama': ['Ali', 'Budi', 'Cici', 'Dewi'],
    'Umur': [23, 25, 21, 30],
    'Kota': ['Jakarta', 'Bandung', 'Surabaya', 'Medan']
}

df = pd.DataFrame(data)
filtered_df = df[df['Umur'] > 24]
print(filtered_df)
  

   Nama  Umur     Kota
1  Budi    25  Bandung
3  Dewi    30    Medan
  

3. Menggabungkan DataFrame
Program untuk menggabungkan dua DataFrame yang memili data 'Name' yang sama.
- `pd.merge(df1, df2, on='Name')` Digunakan untuk menggabungkan `df1` dan `df2` yang memiliki data 'Name' yang sama.

import pandas as pd

data1 = {
    'Name': ['Budi', 'Doni', 'Bambang', 'Siti'],
    'Age': [25, 30, 35, 28]
}
df1 = pd.DataFrame(data1)

data2 = {
    'Name': ['Budi', 'Doni', 'Bambang', 'Tensor'],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Atlantis']
}
df2 = pd.DataFrame(data2)

merged_df = pd.merge(df1, df2, on='Name')

print(merged_df)
  

      Name  Age         City
0     Budi   25     New York
1     Doni   30  Los Angeles
2  Bambang   35      Chicago
  


Library Visualisasi data untuk Python


1. Matplotlib
Matplotlib adalah library di Python yang digunakan untuk membuat berbagai jenis grafik dan visualisasi data. Dengan Matplotlib, pengguna dapat membuat plot seperti garis, bar, histogram, scatter plot, dan banyak lagi, serta menyesuaikan detail visualisasi seperti judul, label sumbu, dan warna.

2. Seaborn
Seaborn adalah library yang dibangun di atas Matplotlib dan menyediakan antarmuka yang lebih mudah digunakan untuk membuat visualisasi data statistik yang menarik dan informatif.

3. Plotly
Plotly adalah library visualisasi data yang bersifat interaktif. Plotly bisa diintegrasikan di dalam aplikasi web dan Jupyter Notebook. Plotly mendukung berbagai jenis plot, termasuk scatter plots, line plots, bar plots, heatmaps, dan banyak lagi. Plotly memungkinkan pengguna untuk membuat visualisasi yang dapat berinteraksi langsung di browser, dengan fitur seperti zoom, pan, dan hover tooltips.

4. Bokeh
Bokeh adalah library visualisasi yang dirancang untuk memungkinkan pembuatan visualisasi data interaktif. Dibandingkan dengan Plotly, Bokeh lebih fokus pada pembuatan visualisasi yang responsif dengan sedikit kode.

5. PyGWalker
PyGWalker adalah library Python yang mengintegrasikan Jupyter Notebook dengan Graphic Walker, sebuah alternatif open-source untuk Tableau. PyGWalker mengubah pandas DataFrame menjadi visualisasi interaktif hanya dengan "drag and drop" komponen yang telah disediakan.

Machine Learning


Machine Learning (ML) adalah cabang dari Artificial Intelligence (AI) yang fokus pada pengembangan algoritma dan model yang memungkinkan komputer untuk belajar dari data dan membuat prediksi atau keputusan tanpa diprogram secara eksplisit. Dengan kata lain, melalui machine learning, sistem komputer dapat meningkatkan kinerjanya secara otomatis berdasarkan pengalaman dan data historis.

Prinsip Dasar Machine Learning
Prinsip dasar dari machine learning adalah menggunakan data untuk melatih model yang kemudian dapat digunakan untuk membuat prediksi atau keputusan. Proses ini biasanya melibatkan beberapa langkah, yaitu:

1. Pengumpulan Data: Mengumpulkan dataset yang cukup besar dan representatif untuk masalah yang ingin diselesaikan.

2. Pra-pemrosesan Data: Membersihkan dan menyiapkan data untuk analisis, termasuk menangani missing values, normalisasi, dan pengkodean fitur.

3. Pembagian Data: Memisahkan data menjadi set pelatihan dan set pengujian untuk mengevaluasi kinerja model.

4. Pemilihan Model: Memilih algoritma machine learning yang sesuai, seperti linear regression, decision tree, atau artifical neural network.

5. Pelatihan Model: Melatih model menggunakan set data pelatihan, di mana model belajar menemukan pola atau hubungan dalam data.

6. Evaluasi Model: Menguji model pada set data pengujian untuk menilai seberapa baik model tersebut bekerja.

7. Optimasi Model: Menyesuaikan model untuk meningkatkan kinerjanya, seperti mengubah hiperparameter atau menggunakan teknik ensemble.

8. Implementasi dan Penggunaan Model: Menggunakan model yang telah dilatih untuk membuat prediksi atau keputusan pada data baru.


Model Machine Learning


1. Supervised Learning: Model dilatih menggunakan data yang berlabel, yang berarti setiap contoh dalam dataset memiliki input dan output yang sesuai. Supervised learning digunakan untuk masalah seperti klasifikasi (misalnya, mengidentifikasi apakah email adalah spam atau bukan) dan regresi (misalnya, memprediksi harga rumah berdasarkan fitur-fitur tertentu).

2. Unsupervised Learning: Model dilatih menggunakan data yang tidak berlabel, yang berarti hanya ada input tanpa output yang diketahui. Unsupervised learning digunakan untuk menemukan pola tersembunyi atau struktur dalam data, seperti segmentasi pelanggan.

3. Semi-supervised Learning: Menggabungkan supervised dan unsupervised learning, di mana model dilatih menggunakan sejumlah kecil data berlabel dan sejumlah besar data tidak berlabel. Pendekatan ini berguna ketika pelabelan data mahal atau memakan waktu.

4. Reinforcement Learning: Model belajar melalui trial and error untuk mencapai tujuan tertentu. Model menerima umpan balik dalam bentuk reward atau punishment berdasarkan tindakan yang diambil. Contoh penerapan reinforcement learning termasuk permainan catur atau pengendalian robot.

5. Deep Learning: Subset dari machine learning yang menggunakan jaringan saraf tiruan (artifical neural network) dengan banyak lapisan (deep neural networks) untuk memodelkan data yang kompleks dan abstrak. Deep learning telah digunakan dengan sukses dalam pengenalan gambar, pemrosesan bahasa alami, dan banyak bidang lainnya.

Cross validation


Cross-validation adalah teknik yang digunakan untuk menilai seberapa baik model machine learning akan bekerja pada data yang tidak terlihat sebelumnya. Tujuan utama dari cross-validation adalah untuk memastikan bahwa model tidak overfitting atau underfitting terhadap data pelatihan.
  • Model yang overfitting "menghafal" data training dengan sangat detail, termasuk kebisingan dan variasi acak yang tidak relevan. Akibatnya, model memiliki performa sangat baik pada data training, tetapi sangat buruk pada data baru
  • Model yang underfitting tidak mempelajari pola dan hubungan dalam data dengan baik. Akibatnya, model tidak dapat memprediksi dengan akurat saat dihadapkan dengan data baru yang belum pernah dilihat sebelumnya.

Cara Kerja Cross Validation
Cross-validation bekerja dengan membagi dataset menjadi beberapa bagian yang disebut "fold". Misalnya, jika kita menggunakan 5-fold cross-validation, data akan dibagi menjadi 5 bagian yang kurang lebih sama besar.
  • Pembagian Data: Dataset dibagi menjadi 5 bagian.
  • Pelatihan dan Pengujian: Model dilatih menggunakan 4 bagian (fold) dan diuji pada bagian yang tersisa.
  • Pengulangan: Proses pelatihan dan pengujian diulangi 5 kali, setiap kali menggunakan bagian yang berbeda sebagai data uji dan sisanya sebagai data latih.
  • Evaluasi Kinerja: Hasil dari setiap pengujian dicatat, kemudian dihitung rata-rata untuk mendapatkan gambaran kinerja model secara keseluruhan.

Jenis-Jenis Cross-Validation

1. K-Fold Cross Validation
  • Membagi data: Membagi dataset menjadi K subset (fold) yang sama besar.
  • Pelatihan dan Evaluasi: Melatih model K kali, setiap kali menggunakan fold yang berbeda sebagai data testing dan K-1 fold lainnya sebagai data training.
  • Keuntungan: Memberikan perkiraan performa model yang dapat dipercaya dan memastikan semua data digunakan.
  • Kekurangan: Membutuhkan komputasi yang relatif lebih banyak.

2. Hold-Out Cross Validation
  • Membagi data: Membagi dataset menjadi dua bagian: satu set training dan satu set testing yang terpisah.
  • Pelatihan dan Evaluasi: Melatih model pada set training dan kemudian mengevaluasinya pada set testing.
  • Keuntungan: Cepat dan mudah diterapkan.
  • Kekurangan: Memiliki varians yang lebih tinggi karena partisi data secara acak dan tidak menggunakan semua data untuk training dan testing.

3. Stratified K-Fold Cross Validation:
  • Membagi data: Mirip dengan K-Fold Cross Validation, tetapi memastikan keseimbangan distribusi kelas di setiap fold.
  • Pelatihan dan Evaluasi: Melatih dan mengevaluasi model dengan cara yang sama seperti K-Fold Cross Validation.
  • Keuntungan: Mencegah bias dalam evaluasi model untuk dataset tidak seimbang.
  • Kekurangan: Membutuhkan komputasi yang relatif lebih banyak.

4. Leave-P-Out Cross Validation:
  • Membagi data: Mengulangi pengujian model dengan tidak mengikutkan satu data (p) untuk pengujian dan menggunakan sisanya untuk training.
  • Pelatihan dan Evaluasi: Melatih dan mengevaluasi model secara berulang untuk semua kemungkinan kombinasi tanpa nilai p.
  • Keuntungan: Memberikan evaluasi performa model yang menyeluruh.
  • Kekurangan: Membutuhkan komputasi yang sangat banyak.


Hyperparameter Tuning

Hyperparameter adalah parameter yang menentukan arsitektur dan perilaku model, dan tidak dipelajari secara langsung dari data, namun ditentukan sebelum model dilatih. Hyperparameter tuning adalah proses untuk menentukan kombinasi optimal dari hyperparameter pada model machine learning untuk meningkatkan performanya. Proses hyperparameter tuning biasanya melibatkan banyak percobaan yang dilakukan secara berulang dengan berbagai kombinasi nilai hyperparameter. Nantinya kita akan memilih kombinasi yang bisa menghasilkan performa model terbaik.

Teknik Hyperparameter Tuning
  • Grid Search: Grid search adalah teknik paling sederhana di mana kita menentukan daftar nilai yang mungkin untuk setiap hyperparameter yang ingin kita uji. Kemudian, model akan diuji menggunakan setiap kombinasi nilai hyperparameter tersebut, dan kita memilih kombinasi yang memberikan hasil terbaik.
  • Random Search: Random search mirip dengan grid search, tetapi alih-alih mencoba semua kombinasi nilai hyperparameter, random search secara acak memilih kombinasi nilai dari distribusi yang diberikan. Hal ini memungkinkan eksplorasi yang lebih luas dari ruang hyperparameter, terutama saat jumlah hyperparameter besar atau ketika kita tidak memiliki pengetahuan sebelumnya tentang nilai optimal.
  • Bayesian Optimization: Metode ini menggunakan pendekatan probabilistik untuk menentukan nilai hyperparameter yang optimal. BayesOpt, seperti yang sering disebut, memodelkan fungsi objektif sebagai distribusi probabilitas dan secara iteratif memperbarui modelnya berdasarkan hasil observasi sebelumnya. Ini memungkinkan algoritma untuk fokus pada area yang paling menjanjikan dalam ruang hyperparameter, mengurangi jumlah percobaan yang diperlukan untuk menemukan nilai optimal.


Sumber

Posting Komentar

0 Komentar