Pre-processing atau prapemrosesan adalah tahap awal dalam proses analisis data dan pembelajaran mesin (machine learning) yang bertujuan untuk mempersiapkan data mentah menjadi format yang sesuai untuk digunakan dalam model. Tahap ini sangat penting karena kualitas data yang digunakan akan sangat mempengaruhi kinerja dan akurasi model yang akan dibangun. Pre-processing mencakup berbagai teknik dan langkah-langkah untuk membersihkan, mengubah, dan menyusun data agar lebih mudah dianalisis.
Beberapa langkah umum dalam pre-processing meliputi:
- Pembersihan Data (Data Cleaning):
- Mengatasi Missing Values: Mengisi atau menghapus data yang hilang.
- Menghilangkan Duplikasi: Menghapus data yang duplikat atau redundan.
- Mengoreksi Kesalahan: Memperbaiki kesalahan dalam data, seperti kesalahan pengetikan atau inkonsistensi format.
import pandas as pd
# Membaca data dari file CSV
data = pd.read_csv('data.csv')
# Menghapus baris yang memiliki nilai yang hilang (NaN) di kolom tertentu
cleaned_data = data.dropna(subset=['kolom_x', 'kolom_y'])
# Mengisi nilai yang hilang dengan nilai rata-rata kolom
cleaned_data.fillna(cleaned_data.mean(), inplace=True)
# Menghapus duplikat baris
cleaned_data.drop_duplicates(inplace=True)
# Menyimpan data yang telah dibersihkan
cleaned_data.to_csv('cleaned_data.csv', index=False)
2. Data Collection
Data collection adalah proses pengumpulan data dari berbagai sumber yang relevan dengan tujuan analisis. Contoh kode untuk data collection mungkin termasuk:
import pandas as pd
# Mendapatkan data dari API
response = requests.get('https://api.example.com/data')
# Menyimpan data dalam format yang sesuai
data = response.json()
# Menyimpan data ke dalam file CSV
with open('data.csv', 'w') as file:
for row in data:
file.write(','.join(row.values()) + '\n')
3. Transformasi Data (Data Transformation):
Data transformation melibatkan pengubahan format atau struktur data untuk mempersiapkannya untuk analisis lebih lanjut
- Normalisasi dan Standardisasi: Mengubah skala data agar semua fitur memiliki skala yang sama, biasanya diperlukan untuk algoritma yang sensitif terhadap skala data.
- Encoding Kategori: Mengubah data kategori menjadi format numerik menggunakan teknik seperti one-hot encoding atau label encoding.
- Penskalaan (Scaling): Mengubah rentang nilai fitur agar sesuai dengan rentang tertentu, seperti antara 0 dan 1.
import pandas as pd
# Membaca data dari file CSV
data = pd.read_csv('data.csv')
# Mengubah format tanggal dari string ke datetime
data['tanggal'] = pd.to_datetime(data['tanggal'])
# Melakukan normalisasi pada data numerik
data['nilai'] = (data['nilai'] - data['nilai'].min()) / (data['nilai'].max() - data['nilai'].min())
# Mengubah variabel kategorikal menjadi variabel dummy
data = pd.get_dummies(data, columns=['kategori'])
# Menyimpan data yang telah diubah
data.to_csv('transformed_data.csv', index=False)
4. Data Reduction
Data reduction adalah proses mengurangi jumlah atribut atau instance data tanpa menghilangkan informasi penting.
- PCA (Principal Component Analysis): Teknik untuk mengurangi jumlah fitur dengan memproyeksikan data ke dimensi yang lebih rendah sambil mempertahankan variabilitas maksimum.
- LDA (Linear Discriminant Analysis): Teknik yang mengurangi dimensi data berdasarkan variabel target untuk meningkatkan separabilitas antar kelas.
import pandas as pd
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# Membaca data dari file CSV
data = pd.read_csv('data.csv')
# Memisahkan atribut dan target
X = data.drop(columns=['target'])
y = data['target']
# Menggunakan SelectKBest untuk memilih atribut terbaik
skb = SelectKBest(score_func=chi2, k=5)
X_reduced = skb.fit_transform(X, y)
# Menyimpan data yang telah direduksi
reduced_data = pd.DataFrame(X_reduced, columns=X.columns[skb.get_support()])
reduced_data.to_csv('reduced_data.csv', index=False)
Dengan implementasi kode tersebut, data dapat diproses melalui serangkaian langkah pre-processing yang mencakup cleaning, collection, transformation, dan reduction sehingga siap untuk analisis lebih lanjut.
Komentar
Posting Komentar