Sebelum kita mulai coding, kita perlu memastikan Python dan alat-alat pendukungnya terinstal dengan benar di komputer Anda. Berikut adalah langkah-langkah mudahnya:
Unduh Python: Kunjungi situs resmi Python dan unduh versi terbaru Python 3. Pastikan Anda mencentang opsi “Add Python to PATH” saat instalasi agar Python dapat diakses dari command line.
Instal pip: Pip adalah bundle installer untuk Python yang akan kita gunakan untuk menginstal perpustakaan-perpustakaan machine studying. Biasanya, pip sudah terinstal secara otomatis saat Anda menginstal Python versi terbaru. Anda dapat memverifikasinya dengan membuka command immediate (di Home windows) atau Terminal (di macOS/Linux) dan mengetikkan:
pip --version
Jika pip terinstal, Anda akan melihat informasi versinya.
Buat Digital Surroundings (Sangat Direkomendasikan): Digital setting adalah ruang terisolasi untuk proyek Python Anda. Ini membantu menghindari konflik antar dependensi proyek yang berbeda. Setiap kali Anda membuat proyek berbasis Python, Anda diharapkan dapat membuat satu digital setting, agar terhindar dari konflik dependensi. Untuk membuatnya, Anda bisa menggunakan venv
(bawaan Python) atau conda
(jika Anda menginstal Anaconda).
- Menggunakan
venv
: Buka command immediate atau Terminal, navigasi ke direktori tempat Anda ingin menyimpan proyek Anda, lalu ketikkan:
python -m venv nama_env
Ganti nama_env
dengan nama yang Anda inginkan untuk setting Anda (misalnya, ml_env
). Untuk mengaktifkannya, Anda dapat mengetikkan:
nama_envScriptsactivate
Setelah aktif, Anda akan melihat nama setting Anda di awal command immediate atau Terminal.
- Menggunakan
conda
(jika Anda menginstal Anaconda): Buka Anaconda Immediate atau Terminal, lalu ketikkan:
conda create --name nama_env python=3.x
Ganti nama_env
dengan nama yang Anda inginkan dan 3.x
dengan versi Python yang Anda inginkan.
Untuk mengaktifkan digital setting:
conda activate nama_env
Instal Perpustakaan Penting: Setelah digital setting Anda aktif, instal perpustakaan NumPy, Pandas, dan Matplotlib menggunakan pip:
pip set up numpy pandas matplotlib scikit-learn
scikit-learn
juga kita sertakan karena akan kita gunakan dalam studi kasus. Anda juga dapat menginstall beberapa library yang lainnya sesuai kebutuhan Anda pada tahap ini. Sebagai contoh, jika Anda lebih senang menggunakan seaborn
untuk visualisasi Anda bisa menginstall library tersebut.
Selamat! Sekarang Anda telah berhasil menginstal Python dan menyiapkan lingkungan pengembangan Anda. Kita siap untuk melangkah ke tahap berikutnya.
Ketiga perpustakaan ini adalah fondasi penting dalam knowledge science dan machine studying dengan Python. Mari kita lihat sekilas masing-masing:
NumPy (Numerical Python): NumPy adalah perpustakaan untuk komputasi numerik yang efisien. Fitur utamanya adalah objek array multidimensi (ndarray
) yang memungkinkan operasi matematika vektor dan matriks yang cepat.
import numpy as np# Membuat array NumPy
a = np.array([1, 2, 3, 4, 5])
print(a)
print(sort(a))
# Operasi vektor
b = a * 2
print(b)
# Operasi matriks
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B)
print(C)
Pandas (Panel Information): Pandas menyediakan struktur knowledge tingkat tinggi yang mudah digunakan untuk analisis knowledge, terutama untuk knowledge tabular. Dua struktur knowledge utama di Pandas adalah Sequence (array satu dimensi berlabel) dan DataFrame (tabel dua dimensi).
import pandas as pd# Membuat Sequence
s = pd.Sequence([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# Membuat DataFrame dari dictionary
knowledge = {'nama': ['Alice', 'Bob', 'Charlie'],
'usia': [25, 30, 28],
'kota': ['Jakarta', 'Bandung', 'Surabaya']}
df = pd.DataFrame(knowledge)
print(df)
# Membaca knowledge dari file CSV
# df = pd.read_csv('nama_file.csv')
# Seleksi knowledge
print(df['nama'])
print(df[df['usia'] > 27])
Matplotlib: Matplotlib adalah perpustakaan untuk membuat visualisasi knowledge statis, interaktif, dan beranimasi di Python. Ini sangat berguna untuk memahami pola dalam knowledge.
import matplotlib.pyplot as plt
import numpy as np# Membuat plot sederhana
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Grafik Sinus')
plt.present()
# Membuat scatter plot
x_scatter = np.random.rand(50)
y_scatter = np.random.rand(50)
colours = np.random.rand(50)
sizes = 100 * np.random.rand(50)
plt.scatter(x_scatter, y_scatter, c=colours, s=sizes, alpha=0.7)
plt.colorbar(label='Intensitas Warna')
plt.title('Scatter Plot Acak')
plt.present()
Dengan pemahaman dasar tentang NumPy, Pandas, dan Matplotlib, kita siap untuk melihat bagaimana perpustakaan ini dapat digunakan dalam studi kasus machine studying sederhana.
Dalam studi kasus ini, kita akan menggunakan dataset sederhana untuk memprediksi apakah seseorang memiliki penyakit jantung atau tidak berdasarkan beberapa fitur kesehatan. Kita akan menggunakan perpustakaan Pandas untuk memuat dan memanipulasi knowledge, Scikit-learn untuk membangun dan mengevaluasi mannequin machine studying, dan Matplotlib untuk visualisasi sederhana.
Langkah 3.1: Memuat dan Mempersiapkan Information
Pertama, kita akan memuat dataset. Untuk contoh ini, kita akan menggunakan dataset penyakit jantung yang tersedia secara publik (Anda mungkin perlu mengunduhnya terlebih dahulu atau menggunakan dataset yang tersedia di Scikit-learn). Anda dapat mengunduh dataset tersebut dari UCI Machine Studying Repository atau Kaggle.
Setelah kita mengunduh dataset, kita akan menampilkan informasi awal mengenai dataset termasuk distribusi knowledge per kelas dari dataset tersebut.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns# Muat dataset (ganti 'coronary heart.csv' dengan path file Anda jika berbeda)
knowledge = pd.read_csv('coronary heart.csv')
# Tampilkan beberapa baris pertama dari dataset
print("Lima baris pertama dataset:")
print(knowledge.head())
# Tampilkan informasi dasar tentang dataset
print("nInformasi dataset:")
knowledge.data()
# Tampilkan statistik deskriptif
print("nStatistik deskriptif:")
print(knowledge.describe())
# Periksa keseimbangan kelas goal (apakah jumlah pasien dengan dan tanpa penyakit jantung seimbang)
print("nDistribusi kelas goal:")
print(knowledge['target'].value_counts())
sns.countplot(x='goal', knowledge=knowledge)
plt.title('Distribusi Goal (0 = Tidak Sakit Jantung, 1 = Sakit Jantung)')
plt.present()
Langkah 3.2: Pemilihan Fitur Independen dan Pemisahan Information
Kita perlu memilih fitur-fitur yang akan digunakan untuk melatih mannequin dan memisahkan knowledge menjadi knowledge latih (coaching set) dan knowledge uji (testing set). Information latih akan digunakan untuk melatih mannequin, sedangkan knowledge uji akan digunakan untuk mengevaluasi performa mannequin pada knowledge yang belum pernah dilihat sebelumnya.
# Pilih fitur (semua kolom kecuali 'goal')
options = knowledge.drop('goal', axis=1)
goal = knowledge['target']# Pisahkan knowledge menjadi knowledge latih dan knowledge uji (80% latih, 20% uji)
X_train, X_test, y_train, y_test = train_test_split(options, goal, test_size=0.2, random_state=42)
print(f"nUkuran knowledge latih: {X_train.form}")
print(f"Ukuran knowledge uji: {X_test.form}")
Langkah 3.3: Melatih Mannequin Logistic Regression
Dalam contoh ini, kita akan menggunakan algoritma Logistic Regression, yang merupakan algoritma klasifikasi linear yang umum digunakan untuk masalah klasifikasi biner (dua kelas). Element mengenai cara kerja dari Logistic Regression akan saya bahas di seri berikutnya.
# Inisialisasi mannequin Logistic Regression
mannequin = LogisticRegression(solver='liblinear', random_state=42)# Latih mannequin menggunakan knowledge latih
mannequin.match(X_train, y_train)
# Lakukan prediksi pada knowledge uji
y_pred = mannequin.predict(X_test)
print("nHasil prediksi pada knowledge uji (10 prediksi pertama):")
print(y_pred[:10])
print("Label sebenarnya pada knowledge uji (10 label pertama):")
print(y_test[:10].values)
Langkah 3.4: Evaluasi Mannequin
Setelah melatih mannequin, penting untuk mengevaluasi performanya menggunakan metrik yang sesuai. Beberapa metrik umum untuk klasifikasi adalah akurasi (accuracy), laporan klasifikasi (classification report), dan confusion matrix. Anda juga dapat menggunakan metrik yang lain, seperti recall, precision, dan F1-score ketika proporsi knowledge per label kelas tidak seimbang (imbalanced dataset). Penjelasan lebih element mengenai penanganan imbalanced dataset akan saya bahas di seri berikutnya.
# Hitung akurasi
accuracy = accuracy_score(y_test, y_pred)
# Hitung F1-score (macro)
f1_score_metrik = f1_score(y_test, y_pred, common='macro')
print(f"nAkurasi mannequin: {accuracy:.2f}")# Tampilkan laporan klasifikasi
print("nLaporan Klasifikasi:")
print(classification_report(y_test, y_pred))
# Tampilkan confusion matrix
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',
xticklabels=['Tidak Sakit', 'Sakit'], yticklabels=['Tidak Sakit', 'Sakit'])
plt.xlabel('Prediksi')
plt.ylabel('Aktual')
plt.title('Confusion Matrix')
plt.present()
Interpretasi dari metrik-metrik ini akan memberikan gambaran tentang seberapa baik mannequin kita dalam memprediksi penyakit jantung. Akurasi menunjukkan proporsi prediksi yang benar dari whole prediksi. Laporan klasifikasi memberikan presisi, recall, F1-score untuk setiap kelas. Confusion matrix menunjukkan jumlah prediksi yang benar dan salah untuk setiap kelas.
Sebagai contoh tambahan, mari kita lakukan klasifikasi diabetes menggunakan dataset lain. Prosesnya akan serupa dengan studi kasus sebelumnya, namun kita akan menggunakan dataset yang berbeda. Kita bisa menggunakan dataset Pima Indians Diabetes yang tersedia secara bebas. Kita akan menggunakan urutan langkah-langkah yang serupa seperti Langkah 3.
Langkah 4.1: Memuat dan Mempersiapkan Information
# Muat dataset diabetes (ganti 'diabetes.csv' dengan path file Anda jika berbeda)
diabetes_data = pd.read_csv('diabetes.csv')# Tampilkan beberapa baris pertama
print("nLima baris pertama dataset diabetes:")
print(diabetes_data.head())
# Informasi dataset
print("nInformasi dataset diabetes:")
diabetes_data.data()
# Statistik deskriptif
print("nStatistik deskriptif dataset diabetes:")
print(diabetes_data.describe())
# Distribusi kelas goal
print("nDistribusi kelas goal diabetes:")
print(diabetes_data['Outcome'].value_counts())
sns.countplot(x='End result', knowledge=diabetes_data)
plt.title('Distribusi Goal Diabetes (0 = Tidak Diabetes, 1 = Diabetes)')
plt.present()
Langkah 4.2: Pemilihan Fitur dan Pemisahan Information
# Pilih fitur (semua kolom kecuali 'End result')
diabetes_features = diabetes_data.drop('End result', axis=1)
diabetes_target = diabetes_data['Outcome']# Pisahkan knowledge menjadi knowledge latih dan knowledge uji
X_train_diabetes, X_test_diabetes, y_train_diabetes, y_test_diabetes = train_test_split(
diabetes_features, diabetes_target, test_size=0.2, random_state=42
)
print(f"nUkuran knowledge latih diabetes: {X_train_diabetes.form}")
print(f"Ukuran knowledge uji diabetes: {X_test_diabetes.form}")
Langkah 4.3: Melatih Mannequin Assist Vector Machine (SVM)
Kali ini, mari kita coba algoritma klasifikasi lain, yaitu Assist Vector Machine (SVM).
from sklearn.svm import SVC# Inisialisasi mannequin SVM
svm_model = SVC(kernel='linear', random_state=42)
# Latih mannequin menggunakan knowledge latih diabetes
svm_model.match(X_train_diabetes, y_train_diabetes)
# Lakukan prediksi pada knowledge uji diabetes
y_pred_diabetes = svm_model.predict(X_test_diabetes)
print("nHasil prediksi diabetes pada knowledge uji (10 prediksi pertama):")
print(y_pred_diabetes[:10])
print("Label sebenarnya pada knowledge uji diabetes (10 label pertama):")
print(y_test_diabetes[:10].values)
Langkah 4.4: Evaluasi Mannequin SVM
# Hitung akurasi
accuracy_diabetes = accuracy_score(y_test_diabetes, y_pred_diabetes)
print(f"nAkurasi mannequin SVM untuk klasifikasi diabetes: {accuracy_diabetes:.2f}")# Tampilkan laporan klasifikasi
print("nLaporan Klasifikasi (Diabetes):")
print(classification_report(y_test_diabetes, y_pred_diabetes))
# Tampilkan confusion matrix
cm_diabetes = confusion_matrix(y_test_diabetes, y_pred_diabetes)
sns.heatmap(cm_diabetes, annot=True, fmt='d', cmap='Greens',
xticklabels=['Tidak Diabetes', 'Diabetes'], yticklabels=['Tidak Diabetes', 'Diabetes'])
plt.xlabel('Prediksi')
plt.ylabel('Aktual')
plt.title('Confusion Matrix (Diabetes)')
plt.present()
Silahkan Anda berikan komentar, berapa akurasi dan F1-score dari mannequin ML yang Anda gunakan untuk menyelesaikan studi kasus tersebut :)!
Oke, di bagian terakhir saya akan berbagi sumber belajar yang Anda bisa gunakan untuk memperdalam keilmuan Anda dalam bidang ML dan DS.
Kursus On-line Interaktif:
- Dicoding: Dicoding menawarkan berbagai kursus pemrograman dan IT dengan kurikulum terbaru, termasuk bidang machine studying dan knowledge science. Saya sendiri telah dua kali menerima dan menyelesaikan rangkaian kursus di Dicoding melalui beasiswa DBS Basis Coding Camp 2024 di jalur Machine Studying Engineer dan Indosat Ooredoo Hutchison Digital Camp 2024 di jalur Information Scientist. Untuk lebih element silahkan Anda kunjungi web site Dicoding.
- Coursera dan edX: Platform ini menawarkan berbagai kursus dan spesialisasi tentang machine studying, deep studying, dan knowledge science dari universitas-universitas terkemuka di dunia dan perusahaan teknologi besar seperti Google dan IBM. Beberapa kursus populer meliputi “Machine Studying” oleh Andrew Ng (Coursera), “Deep Studying Specialization” (Coursera), dan “Python for Information Science and AI” (edX).
- Udacity: Udacity memiliki “Nanodegree” yang lebih terstruktur dan berorientasi pada karir di bidang machine studying dan knowledge science. Program-program ini seringkali melibatkan proyek-proyek praktis yang membantu Anda membangun portofolio.
- DataCamp: DataCamp fokus pada pembelajaran interaktif knowledge science dan machine studying dengan Python dan R. Mereka menawarkan berbagai kursus singkat dan jalur pembelajaran yang terstruktur.
- quick.ai: quick.ai menawarkan kursus deep studying yang sangat praktis dan mudah diakses, bahkan bagi pemula dengan sedikit pengalaman coding. Pendekatan “top-down” mereka memungkinkan Anda untuk mulai membangun mannequin dengan cepat.
Buku:
- “Python for Information Evaluation” oleh Wes McKinney: Buku ini adalah panduan komprehensif untuk menggunakan Pandas dalam analisis knowledge.
- “Fingers-On Machine Studying with Scikit-Be taught, Keras & TensorFlow” oleh Aurélien Géron: Buku ini memberikan pendekatan praktis untuk mempelajari berbagai algoritma machine studying dan deep studying dengan Python.
- “Sample Recognition and Machine Studying” oleh Christopher Bishop: Buku ini adalah referensi yang lebih teoretis dan mendalam tentang konsep-konsep machine studying.
- “The Parts of Statistical Studying” oleh Hastie, Tibshirani, dan Friedman: Meskipun lebih berfokus pada statistik, buku ini memberikan landasan teoretis yang kuat untuk machine studying.
Platform dan Komunitas On-line:
- Kaggle: Kaggle adalah platform yang sangat berharga untuk belajar machine studying melalui kompetisi, dataset publik, dan discussion board diskusi. Anda dapat berpartisipasi dalam kompetisi untuk memecahkan masalah machine studying dunia nyata dan belajar dari para praktisi terbaik.
- GitHub: GitHub adalah platform kolaborasi pengembang tempat banyak proyek open-source machine studying dan knowledge science dihosting. Anda dapat menjelajahi kode, berkontribusi pada proyek, dan belajar dari implementasi praktis.
- Stack Overflow: Stack Overflow adalah situs tanya jawab yang sangat berguna ketika Anda menghadapi masalah coding atau konsep machine studying yang tidak Anda pahami. Kemungkinan besar pertanyaan Anda sudah pernah ditanyakan dan dijawab di sini.
- Reddit (r/learnmachinelearning, r/datascience, r/python): Subreddit ini adalah komunitas aktif tempat Anda dapat bertanya, berbagi sumber daya, dan berdiskusi tentang topik terkait machine studying, knowledge science, dan Python.
- Medium dan In the direction of Information Science: Platform ini berisi banyak artikel dan tutorial tentang berbagai topik machine studying dan knowledge science, termasuk implementasi praktis dengan Python.
Dokumentasi Resmi Library:
Jangan lupakan pentingnya membaca dokumentasi resmi dari library yang kita gunakan (NumPy, Pandas, Scikit-learn, Matplotlib, TensorFlow, PyTorch). Dokumentasi ini adalah sumber informasi yang paling akurat dan komprehensif tentang fitur dan penggunaan setiap library.
Proyek Praktis:
Cara terbaik untuk belajar machine studying adalah dengan mengerjakan proyek-proyek praktis. Mulailah dengan proyek-proyek kecil dan sederhana, lalu secara bertahap tingkatkan kompleksitasnya. Beberapa ide proyek meliputi:
- Klasifikasi gambar sederhana (misalnya, membedakan antara kucing dan anjing).
- Analisis sentimen pada teks (misalnya, mengklasifikasikan ulasan movie sebagai positif atau negatif).
- Prediksi harga rumah berdasarkan fitur-fitur tertentu.
- Sistem rekomendasi sederhana.
Dengan memanfaatkan sumber daya ini dan terus berlatih, Anda akan semakin mahir dalam machine studying dengan Python. Ingatlah bahwa pembelajaran adalah proses berkelanjutan, jadi tetaplah penasaran dan teruslah eksplorasi!