/* */
MEDIA PENDIDIKAN dan PEMBELAJARAN Ilmu Mantiq (Logika): Kaidah Berfikir yang Memelihara Akal, agar tidak terjadi Kerancuan dalam Berfikir.

Wednesday, February 26, 2025

Dataset

Dataset

1. Apa Itu Dataset?

Dataset adalah kumpulan data yang terstruktur atau tidak terstruktur yang digunakan dalam berbagai aplikasi, termasuk machine learning, analisis data, dan penelitian ilmiah. Dataset terdiri dari data yang dikumpulkan, diproses, dan disusun dalam bentuk tabel, gambar, teks, atau format lainnya.

 

2. Jenis-Jenis Dataset

Dataset dapat dikategorikan berdasarkan struktur datanya, formatnya, dan cara penggunaannya.

a. Berdasarkan Struktur Data

Jenis Dataset

Deskripsi

Contoh

Terstruktur

Data yang tersusun dalam format tabel dengan baris dan kolom.

Data pelanggan (nama, usia, alamat, transaksi).

Tidak Terstruktur

Data yang tidak memiliki format tetap.

Gambar, video, audio, teks bebas (Twitter, artikel).

Semi-Terstruktur

Data yang memiliki struktur tetapi tidak dalam format tabel.

Data dalam format JSON, XML, atau log file.

 

b. Berdasarkan Sumber Data

Jenis Dataset

Deskripsi

Contoh

Dataset Primer

Data yang dikumpulkan langsung dari eksperimen atau survei.

Data hasil wawancara, eksperimen laboratorium.

Dataset Sekunder

Data yang dikumpulkan dari sumber lain.

Data dari situs pemerintah, publikasi akademik.

 

c. Berdasarkan Tujuan Penggunaan

Jenis Dataset

Deskripsi

Contoh Penggunaan

Dataset Latih (Training Set)

Data yang digunakan untuk melatih model machine learning.

Data wajah untuk model pengenalan wajah.

Dataset Validasi (Validation Set)

Data yang digunakan untuk menyetel parameter model.

Dataset tambahan untuk hyperparameter tuning.

Dataset Uji (Test Set)

Data yang digunakan untuk menguji performa model.

Dataset yang belum pernah dilihat model sebelumnya.

 

3. Komponen dalam Dataset

Sebuah dataset biasanya terdiri dari beberapa komponen utama berikut:

3.1. Fitur (Features) atau Atribut (Attributes)

  • Fitur adalah variabel independen dalam dataset yang digunakan untuk membuat prediksi.
  • Contoh:
    • Dalam dataset harga rumah, fitur bisa berupa luas tanah, jumlah kamar, lokasi.
    • Dalam dataset kesehatan, fitur bisa berupa usia, tekanan darah, kadar gula darah.

 

3.2. Label (Target)

  • Label adalah variabel dependen dalam dataset yang menjadi hasil atau target yang ingin diprediksi.
  • Contoh:
    • Dalam klasifikasi email, labelnya adalah spam atau bukan spam.
    • Dalam prediksi harga rumah, labelnya adalah harga rumah dalam dolar.

 

3.3. Sampel (Samples) atau Observasi (Instances)

  • Sampel adalah satu unit data dalam dataset.
  • Contoh: Jika sebuah dataset memiliki 10.000 baris data pelanggan, maka setiap baris adalah satu sampel.

 

4. Format Dataset yang Sering Digunakan

Dataset dapat disimpan dalam berbagai format tergantung pada kebutuhan:

Format

Deskripsi

Contoh Penggunaan

CSV (Comma-Separated Values)

Format berbasis teks dengan data dipisahkan koma.

Dataset tabular untuk analisis data dan machine learning.

JSON (JavaScript Object Notation)

Format data semi-terstruktur berbasis objek.

Data API, data streaming.

XML (Extensible Markup Language)

Format berbasis tag untuk penyimpanan data.

Data dalam sistem web dan database.

SQL Database

Dataset tersimpan dalam basis data relasional.

Manajemen data dalam aplikasi skala besar.

 

5. Cara Memeriksa Kualitas Dataset

Sebelum digunakan dalam analisis atau pelatihan model machine learning, dataset harus dicek kualitasnya. Beberapa langkah utama dalam data preprocessing adalah:

5.1. Mengecek Data yang Hilang (Missing Data)

Masalah: Nilai kosong dalam dataset dapat menyebabkan kesalahan dalam analisis.

Solusi:

    • Menghapus baris atau kolom dengan nilai hilang.
    • Mengisi nilai yang hilang dengan mean, median, atau modus.

Contoh dalam Python:

import pandas as pd

df = pd.read_csv("dataset.csv")

print(df.isnull().sum()) # Mengecek jumlah missing values

df.fillna(df.mean(), inplace=True) # Mengisi dengan rata-rata

 

5.2. Mengecek Outlier (Data Ekstrem)

Masalah: Data yang sangat berbeda dari mayoritas dapat mengganggu hasil analisis.

Solusi:

    • Menggunakan metode IQR (Interquartile Range) untuk menghapus outlier.
    • Menormalkan atau mentransformasikan data untuk mengurangi dampak outlier.

Contoh dalam Python:

import numpy as np

Q1 = df['nilai'].quantile(0.25)

Q3 = df['nilai'].quantile(0.75)

IQR = Q3 - Q1

df_clean = df[(df['nilai'] >= (Q1 - 1.5 * IQR)) & (df['nilai'] <= (Q3 + 1.5 * IQR))]

 

5.3. Normalisasi dan Standarisasi Data

Masalah: Beberapa algoritma machine learning bekerja lebih baik jika data memiliki skala yang seragam.

Solusi:

    • Normalisasi (Min-Max Scaling) → Mengubah nilai ke dalam rentang [0,1].
    • Standarisasi (Z-score Scaling) → Mengubah data agar memiliki mean = 0 dan standar deviasi = 1.

Contoh dalam Python:

from sklearn.preprocessing import MinMaxScaler, StandardScaler

scaler = MinMaxScaler()

df_scaled = scaler.fit_transform(df[['fitur1', 'fitur2']])

scaler = StandardScaler()

df_standardized = scaler.fit_transform(df[['fitur1', 'fitur2']])

 

6. Dataset Populer untuk Machine Learning

Berikut beberapa dataset populer yang sering digunakan dalam machine learning dan analisis data:

Nama Dataset

Deskripsi

Sumber

Iris Dataset

Data klasifikasi bunga iris.

sklearn.datasets

MNIST

Data gambar tulisan tangan (0-9).

tensorflow.keras.datasets

Titanic

Data penumpang Titanic untuk prediksi selamat atau tidak.

Kaggle

IMDB Reviews

Dataset ulasan film untuk analisis sentimen.

TensorFlow

 

7. Kesalahan Umum dalam Penggunaan Dataset & Cara Menghindarinya

1. Tidak Memeriksa Kualitas Data

  • Solusi: Selalu lakukan data cleaning sebelum analisis.

2. Tidak Membagi Data dengan Benar (Data Splitting yang Salah)

  • Solusi: Gunakan teknik train-test split atau cross-validation.

3. Menggunakan Dataset yang Tidak Representatif

  • Solusi: Pastikan dataset mencerminkan populasi yang ingin dianalisis.

 

8. Kesimpulan

  Dataset adalah komponen utama dalam analisis data dan machine learning.

  Memahami struktur, format, dan preprocessing dataset sangat penting untuk hasil yang akurat.

  Gunakan teknik cleaning, normalisasi, dan data splitting yang tepat untuk menghindari kesalahan.

 

 

Outlier

Outlier

1. Apa Itu Outlier?

Outlier adalah nilai dalam dataset yang secara signifikan berbeda dari nilai lainnya. Outlier bisa jauh lebih besar atau jauh lebih kecil dibandingkan dengan data lainnya, sehingga dapat mempengaruhi analisis statistik dan performa model machine learning.

Contoh Outlier dalam Data
Misalkan kita memiliki dataset tinggi badan dalam cm:
[160, 162, 165, 168, 170, 172, 175, 180, 300]

Di sini, 300 cm adalah outlier, karena secara tidak wajar jauh lebih tinggi dari data lainnya.

 

2. Penyebab Terjadinya Outlier

Outlier bisa muncul karena beberapa alasan, di antaranya:

  1. Kesalahan Pengukuran atau Kesalahan Input Data
    • Contoh: Kesalahan pengetikan data, seperti memasukkan 300 cm sebagai tinggi badan manusia normal.
  2. Variasi Alamiah dalam Data
    • Contoh: Pendapatan tahunan di suatu kota, di mana ada segelintir miliarder yang penghasilannya jauh lebih tinggi dibanding rata-rata.
  3. Perubahan Kondisi atau Peristiwa Langka
    • Contoh: Harga saham pada hari kejadian Black Monday (1987), di mana terjadi kejatuhan pasar saham yang tidak biasa.
  4. Anomali yang Menunjukkan Wawasan Baru
    • Contoh: Deteksi transaksi kartu kredit yang mencurigakan dalam analisis fraud detection.

 

3. Dampak Outlier dalam Analisis Data

Outlier dapat memiliki dampak signifikan terhadap statistik dan machine learning:

Dampak

Penjelasan

Mempengaruhi Rata-rata (Mean)

Outlier bisa membuat rata-rata data menjadi tidak representatif.

Meningkatkan Variansi dan Standard Deviasi

Dataset menjadi lebih tersebar, menyebabkan kesulitan dalam analisis statistik.

Mempengaruhi Hasil Model Machine Learning

Beberapa model seperti regresi linear dan k-means clustering sangat terpengaruh oleh outlier.

 

Contoh Perubahan Mean akibat Outlier
Dataset tanpa outlier: [10, 12, 14, 16, 18], Mean = 14
Dataset dengan outlier: [10, 12, 14, 16, 100], Mean = 30.4

Seperti yang terlihat, kehadiran satu outlier (100) membuat mean naik drastis dari 14 ke 30.4, yang bisa memberikan gambaran yang salah tentang data.

 

4. Cara Mendeteksi Outlier

Ada beberapa metode yang bisa digunakan untuk mendeteksi outlier:

a. Menggunakan Boxplot (Visualisasi)

  • Boxplot adalah cara visual untuk mengidentifikasi outlier berdasarkan IQR (Interquartile Range).
  • Outlier terletak di luar "whisker" dari boxplot.

Contoh Implementasi Boxplot dalam Python:

import matplotlib.pyplot as plt

import seaborn as sns

import numpy as np

data = [160, 162, 165, 168, 170, 172, 175, 180, 300] # Data dengan outlier

 

sns.boxplot(data)

plt.show()

Jika ada titik yang berada jauh di luar kotak, itu adalah indikasi outlier.

 

b. Menggunakan Interquartile Range (IQR)

  • IQR adalah selisih antara kuartil ke-3 (Q3) dan kuartil ke-1 (Q1).
  • Aturan: Data dianggap outlier jika: X<Q1−1.5 IQR atau X>Q3+1.5 IQR

 

Contoh Implementasi IQR dalam Python:

import numpy as np

data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])

Q1 = np.percentile(data, 25)

Q3 = np.percentile(data, 75)

IQR = Q3 - Q1

lower_bound = Q1 - 1.5 * IQR

upper_bound = Q3 + 1.5 * IQR

outliers = data[(data < lower_bound) | (data > upper_bound)]

print("Outliers:", outliers)

 

c. Menggunakan Z-Score (Standardisasi)

  • Z-Score mengukur seberapa jauh nilai dari rata-rata dalam satuan standar deviasi.
  • Aturan umum: Data dianggap outlier jika Z-Score > 3 atau < -3.

 

Rumus Z-Score:

Z=(X−μ)/σ

Di mana:

  • X= Nilai data
  • μ= Rata-rata (mean)
  • σ= Standar deviasi

 

Contoh Implementasi Z-Score dalam Python:

from scipy import stats

data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])

z_scores = np.abs(stats.zscore(data))

outliers = data[z_scores > 3]

print("Outliers:", outliers)

 

5. Cara Mengatasi Outlier

Setelah outlier ditemukan, ada beberapa cara untuk menanganinya:

Metode

Penjelasan

Kapan Digunakan?

Menghapus Outlier

Menghapus data yang terlalu ekstrem.

Jika outlier disebabkan oleh kesalahan input data.

Mengganti dengan Median

Mengganti nilai outlier dengan median dataset.

Jika outlier terjadi secara alami dalam data.

Menggunakan Transformasi Logaritmik

Mengurangi efek outlier dengan transformasi log.

Jika distribusi data sangat miring (skewed).

Menggunakan Model yang Tahan Outlier

Gunakan model seperti Random Forest atau Decision Tree yang lebih tahan terhadap outlier.

Jika ingin mempertahankan semua data tanpa menghapus.

 

Contoh Menghapus Outlier di Python:

filtered_data = data[(data >= lower_bound) & (data <= upper_bound)]

print("Data setelah menghapus outlier:", filtered_data)

Contoh Menggunakan Transformasi Logaritmik:

import numpy as np

data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])

log_transformed = np.log(data)

print(log_transformed)

 

6. Kesalahan Umum dalam Menangani Outlier

1. Menghapus Outlier Tanpa Analisis Lebih Lanjut

  • Jika outlier merupakan informasi yang penting (misalnya dalam fraud detection), menghapusnya bisa menyebabkan kehilangan wawasan berharga.
    - Solusi: Lakukan analisis sebelum memutuskan menghapus outlier.

2. Menggunakan Mean untuk Mengganti Outlier

  • Jika distribusi data tidak normal, mengganti outlier dengan mean bisa tetap menghasilkan bias.
    -Solusi: Gunakan median sebagai pengganti.

 

7. Kesimpulan:

  Outlier adalah nilai data yang jauh berbeda dari data lain dalam dataset.

  Outlier dapat terjadi karena kesalahan input, variasi alami, atau peristiwa langka.

  Beberapa metode untuk mendeteksi outlier termasuk Boxplot, IQR, dan Z-Score.

  Outlier dapat diatasi dengan menghapus, mengganti, atau menggunakan model yang lebih tahan terhadap outlier.

 

Memahami dan menangani outlier dengan benar, sangat penting untuk analisis data yang akurat dan model machine learning yang lebih andal!

 

Normalisasi Data

1. Apa Itu Normalisasi Data?

Normalisasi data adalah proses mengubah skala fitur numerik dalam dataset agar memiliki rentang nilai tertentu, biasanya antara 0 dan 1, atau dalam beberapa kasus -1 hingga 1.

Tujuan utama normalisasi adalah untuk menyamakan skala variabel yang berbeda sehingga tidak ada fitur yang mendominasi model machine learning hanya karena memiliki skala yang lebih besar.

Mengapa Normalisasi Data Diperlukan?

       Meningkatkan akurasi model machine learning Model yang bekerja dengan data dalam skala berbeda bisa menghasilkan prediksi yang bias.

       Mempercepat proses training Model convergen lebih cepat karena semua variabel memiliki skala yang seragam.

       Mengurangi dampak outlier Beberapa teknik normalisasi dapat membantu mengurangi pengaruh nilai ekstrem.

       Diperlukan untuk algoritma tertentu Algoritma seperti KNN, SVM, dan Neural Networks sangat bergantung pada jarak antar titik data, sehingga normalisasi menjadi penting.

 

2. Jenis-Jenis Normalisasi Data

Ada beberapa metode normalisasi yang sering digunakan, di antaranya:

a. Min-Max Scaling (Normalisasi Min-Max)

Deskripsi:
Metode ini mengubah nilai fitur ke dalam rentang [0,1] atau [-1,1], sehingga nilai minimum menjadi 0 dan maksimum menjadi 1.

Rumus Min-Max Scaling:

X′=(X−Xmin)/(Xmax−Xmin)

Di mana:

  • X = Nilai asli
  • Xmin= Nilai minimum dari fitur
  • Xmax = Nilai maksimum dari fitur
  • X′ = Nilai setelah normalisasi

Contoh:
Misalkan kita memiliki nilai sebagai berikut:

  • Xmin=10, Xmax=90
  • Nilai asli: 30

X′=(30−10)/(90−10)=20/80=0.25

Kelebihan:

       Mudah dipahami dan diterapkan.

       Tidak mengubah distribusi data secara drastis.

Kekurangan:

       Sangat dipengaruhi oleh outlier karena nilai maksimum dan minimum ditentukan oleh data yang ada.

 

Implementasi dalam Python:

from sklearn.preprocessing import MinMaxScaler

import numpy as np

 

data = np.array([[10], [20], [30], [40], [50], [60], [70], [80], [90]])

scaler = MinMaxScaler(feature_range=(0, 1))

normalized_data = scaler.fit_transform(data)

 

print(normalized_data)

 

b. Z-Score Normalization (Standarisasi)

Deskripsi:
Metode ini mengubah data menjadi distribusi dengan mean = 0 dan standar deviasi = 1. Digunakan dalam teknik machine learning berbasis statistik dan deep learning.

Rumus Standarisasi (Z-Score):

X′=(X−μ)/σ

Di mana:

  • X = Nilai asli
  • μ = Mean (rata-rata) dari fitur
  • σ= Standar deviasi dari fitur
  • X′= Nilai setelah normalisasi

Contoh:
Jika rata-rata suatu fitur adalah 50 dan standar deviasinya 20, maka untuk nilai 30:

X′=(30−50)/20=−20/20=−1

Kelebihan:

       Cocok untuk data dengan distribusi normal (Gaussian).

       Tidak terpengaruh oleh skala awal data.

Kekurangan:

       Tidak cocok untuk data yang tidak memiliki distribusi normal.

Implementasi dalam Python:

from sklearn.preprocessing import StandardScaler

 

data = np.array([[10], [20], [30], [40], [50], [60], [70], [80], [90]])

scaler = StandardScaler()

standardized_data = scaler.fit_transform(data)

 

print(standardized_data)

 

c. Robust Scaling (Skala Robust)

Deskripsi:
Metode ini mirip dengan Z-Score, tetapi lebih tahan terhadap outlier, karena menggunakan median dan interquartile range (IQR).

Rumus Robust Scaling:

X′=(X−median)/(IQR)

Di mana:

  • Median = Nilai tengah dari dataset
  • IQR (Interquartile Range) = Q3−Q1 (selisih antara kuartil ke-3 dan kuartil ke-1)

Kelebihan:

       Cocok untuk dataset dengan outlier.

       Tidak bergantung pada distribusi data normal.

Kekurangan:

       Tidak semua dataset memiliki distribusi yang cocok untuk metode ini.

 

Implementasi dalam Python:

from sklearn.preprocessing import RobustScaler

 

scaler = RobustScaler()

robust_scaled_data = scaler.fit_transform(data)

 

print(robust_scaled_data)

 

3. Kapan Menggunakan Normalisasi?

Tidak semua algoritma machine learning membutuhkan normalisasi. Berikut adalah rekomendasi normalisasi berdasarkan algoritma:

Algoritma Machine Learning

Perlukah Normalisasi?

Metode yang Direkomendasikan

K-Nearest Neighbors (KNN)

Ya

Min-Max Scaling

Support Vector Machine (SVM)

Ya

Min-Max Scaling atau Z-Score

Neural Networks (MLP, CNN)

Ya

Min-Max Scaling atau Z-Score

K-Means Clustering

Ya

Min-Max Scaling

Decision Tree & Random Forest

Tidak

Tidak diperlukan

Na ve Bayes

Tidak

Tidak diperlukan

Kesimpulan:

  • Gunakan Min-Max Scaling jika fitur memiliki rentang nilai yang sangat berbeda.
  • Gunakan Z-Score jika data berdistribusi normal.
  • Gunakan Robust Scaling jika dataset memiliki banyak outlier.
  • Tidak perlu normalisasi untuk algoritma berbasis pohon keputusan seperti Random Forest atau Decision Tree.

 

4. Kesalahan Umum dalam Normalisasi Data

4.1. Normalisasi Dilakukan Setelah Data Splitting

  • Masalah: Jika normalisasi dilakukan setelah pembagian data training dan testing, maka informasi dari testing set bisa bocor ke training set (data leakage).
  • Solusi: Normalisasi harus dilakukan hanya pada training set terlebih dahulu, lalu gunakan parameter yang sama untuk normalisasi test set.

Benar:

scaler = MinMaxScaler()

X_train_scaled = scaler.fit_transform(X_train) # Normalisasi berdasarkan training set

X_test_scaled = scaler.transform(X_test) # Gunakan scaler yang sama untuk test set

 

4.2. Mengabaikan Pengaruh Outlier

  • Jika dataset memiliki outlier yang ekstrem, maka Min-Max Scaling dapat terpengaruh, sehingga lebih baik menggunakan Robust Scaling.

 

5. Kesimpulan

       Normalisasi data adalah teknik penting untuk menyamakan skala fitur dalam machine learning.

       Tiga metode utama adalah Min-Max Scaling, Z-Score, dan Robust Scaling.

       Pilih metode yang sesuai dengan karakteristik data dan algoritma yang digunakan.

       Hindari kesalahan umum seperti data leakage akibat normalisasi yang salah.

 

Dengan menggunakan normalisasi yang tepat, performa model machine learning bisa meningkat secara signifikan!

 

Shuffling dalam Machine Learning

1. Apa Itu Shuffling?

Shuffling adalah proses mengacak urutan data dalam dataset sebelum digunakan untuk pelatihan atau evaluasi model machine learning. Teknik ini digunakan untuk mencegah model belajar dari pola yang tidak diinginkan yang mungkin muncul akibat urutan asli data.

Mengapa Shuffling Penting?

       Menghindari bias dalam pembelajaran model Jika data diurutkan berdasarkan kelas tertentu, model mungkin hanya belajar dari satu kategori terlebih dahulu, menyebabkan bias dalam pelatihan.

       Meningkatkan generalisasi model Dengan mengacak data, model dapat belajar dari distribusi yang lebih beragam, membuatnya lebih andal dalam menangani data baru.

       Mencegah model menghafal urutan data Tanpa shuffling, model dapat mengingat pola urutan alih-alih belajar dari fitur data.

 

2. Kapan Shuffling Dibutuhkan?

Shuffling sangat penting dalam beberapa skenario, tetapi bisa diabaikan dalam kasus tertentu.

2.1. Kasus yang Memerlukan Shuffling:

       Supervised Learning (Regresi/Klasifikasi) Data harus diacak sebelum dibagi menjadi training dan testing agar distribusinya merata.

       K-Fold Cross-Validation Setiap fold harus memiliki distribusi data yang serupa.

       Batch Training dalam Deep Learning Data harus di-shuffle agar model belajar pola yang lebih umum.

2.2. Kasus di Mana Shuffling Tidak Diperlukan:

       Time Series Forecasting (Prediksi Waktu) Urutan waktu harus dipertahankan agar model memahami tren historis.

       Data Urutan (Sequential Data) seperti NLP atau Stock Market Dalam kasus seperti pemrosesan teks atau harga saham, urutan data adalah informasi penting.

 

3. Cara Melakukan Shuffling dalam Machine Learning

a. Shuffling dalam Train-Test Split

       Saat membagi data menjadi training dan testing, kita harus memastikan bahwa data diacak.
Implementasi dalam Python dengan train_test_split dari Scikit-Learn:

from sklearn.model_selection import train_test_split

import numpy as np

 

# Data contoh

X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]) # Fitur

y = np.array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1]) # Label

 

# Split data dengan shuffling

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=True, random_state=42)

 

print("Training Data:", X_train.flatten())

print("Testing Data:", X_test.flatten())

🔹 shuffle=True memastikan bahwa data diacak sebelum dibagi.
🔹 random_state=42 membuat hasil shuffling tetap sama setiap kali dijalankan.

 

b. Shuffling dalam Pandas DataFrame

Jika dataset berbentuk Pandas DataFrame, kita bisa menggunakan fungsi .sample() untuk mengacak baris data.

Contoh:

import pandas as pd

 

# Contoh dataset

data = {'Fitur': [1, 2, 3, 4, 5], 'Label': ['A', 'B', 'A', 'B', 'A']}

df = pd.DataFrame(data)

 

# Shuffling dataset

df_shuffled = df.sample(frac=1, random_state=42).reset_index(drop=True)

 

print(df_shuffled)

🔹 frac=1 memastikan bahwa seluruh dataset diambil dalam keadaan teracak.
🔹 reset_index(drop=True) mencegah indeks lama tetap muncul setelah shuffling.

 

c. Shuffling dalam K-Fold Cross Validation

Saat melakukan cross-validation, shuffling membantu mendapatkan distribusi data yang lebih baik di setiap fold.

Implementasi dalam Scikit-Learn:

from sklearn.model_selection import KFold

 

X = np.array(range(1, 11)) # Data contoh

kf = KFold(n_splits=5, shuffle=True, random_state=42)

 

for train_index, test_index in kf.split(X):

print("Train:", X[train_index], "Test:", X[test_index])

🔹 Tanpa shuffling, setiap fold mungkin akan memiliki pola yang kurang representatif.

 

d. Shuffling dalam Deep Learning (TensorFlow/PyTorch)

Dalam deep learning, shuffling sangat penting ketika menggunakan batch training.

       Implementasi dalam TensorFlow:

import tensorflow as tf

 

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

dataset = dataset.shuffle(buffer_size=10)

 

for item in dataset:

print(item.numpy())

🔹 buffer_size=10 menentukan jumlah elemen yang akan diacak pada satu waktu.

       Implementasi dalam PyTorch:

from torch.utils.data import DataLoader, TensorDataset

import torch

 

data = torch.tensor([[1, 2], [3, 4], [5, 6], [7, 8]])

labels = torch.tensor([0, 1, 0, 1])

 

dataset = TensorDataset(data, labels)

dataloader = DataLoader(dataset, batch_size=2, shuffle=True)

 

for batch in dataloader:

print(batch)

🔹 shuffle=True memastikan data batch berbeda setiap epoch, membantu model belajar lebih baik.

 

4. Kesalahan Umum dalam Shuffling dan Cara Menghindarinya

4.1. Tidak Melakukan Shuffling pada Dataset yang Tidak Terurut

  • Masalah: Jika data tidak di-shuffle sebelum training, model bisa belajar pola yang salah.
  • Solusi: Gunakan shuffle=True dalam pembagian dataset.

4.2. Melakukan Shuffling pada Data Time Series

  • Masalah: Shuffling pada data deret waktu (misalnya harga saham) bisa merusak pola tren.
  • Solusi: Gunakan metode seperti rolling window atau time-series cross-validation.

4.3. Tidak Menggunakan random_state untuk Reproducibility

  • Masalah: Hasil shuffling berbeda setiap kali kode dijalankan.
  • Solusi: Gunakan random_state=42 atau nilai tetap lainnya agar hasil bisa direplikasi.

 

5. Kesimpulan

       Shuffling adalah teknik mengacak urutan data untuk mencegah bias dan meningkatkan generalisasi model.

       Digunakan dalam train-test split, cross-validation, dan batch training dalam deep learning.

       Harus dihindari pada data time series atau data urutan lainnya.

       Kesalahan umum seperti tidak melakukan shuffling sebelum training dapat menyebabkan bias dalam model.

Dengan menerapkan shuffling dengan benar, performa model machine learning dapat meningkat secara signifikan!