Pencarian Grid dan Pencarian Acak
GridSearchCV, RandomizedSearchCV, desain param_grid, dan pelatihan ulang dengan parameter terbaik.
Pencarian Grid dan Pencarian Acak adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengapa Menyetel Hiperparameter
Model memiliki hiperparameter (seperti max_depth atau C) yang tidak dipelajari dari data, melainkan ditetapkan sebelum pelatihan. Nilai yang tepat dapat meningkatkan kinerja secara signifikan, sehingga kita mencarinya secara sistematis.
Penyetelan Manual Rentan Kesalahan
Mencoba nilai secara manual memerlukan waktu lama dan mudah menimbulkan bias. Pencarian otomatis yang dipadukan dengan validasi silang mengevaluasi setiap kandidat secara adil dan menemukan kombinasi terbaik secara dapat direproduksi.
Dasar-Dasar GridSearchCV
GridSearchCV mencoba setiap kombinasi dalam kisi parameter, lalu memberi skor pada masing-masing kombinasi menggunakan validasi silang. Metode ini menyeluruh dan menjamin titik terbaik dalam kisi.
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
param_grid = {
"n_estimators": [100, 200, 300],
"max_depth": [4, 8, None],
}
gs = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
gs.fit(X, y)Ledakan Kombinasi
Biaya pencarian kisi bertambah berdasarkan hasil kali semua jumlah opsi dikalikan jumlah lipatan. Tiga parameter dengan masing-masing 5 nilai pada CV 5-lipatan menghasilkan 5*5*5*5 = 625 pelatihan. Ukuran kisi cepat menjadi mahal.
Penilaian dalam GridSearchCV
Parameter scoring memilih metrik yang akan dioptimalkan. Untuk data yang tidak seimbang, pilih f1 atau roc_auc, bukan akurasi bawaan.
from sklearn.model_selection import GridSearchCV
gs = GridSearchCV(
RandomForestClassifier(),
param_grid,
cv=5,
scoring="roc_auc",
)
gs.fit(X, y)Paralelisasi dengan n_jobs
Setiap pelatihan kandidat bersifat independen, jadi atur n_jobs=-1 agar semuanya dijalankan di seluruh inti CPU. Ini secara drastis mengurangi waktu berjalan untuk kisi berukuran besar.
from sklearn.model_selection import GridSearchCV
gs = GridSearchCV(
RandomForestClassifier(),
param_grid,
cv=5,
n_jobs=-1,
verbose=1,
)Membaca Hasil Terbaik
Setelah pelatihan, periksa best_params_ untuk kombinasi pemenang, best_score_ untuk skor CV-nya, dan best_estimator_ untuk model yang dilatih ulang dan siap digunakan untuk melakukan prediksi.
gs.fit(X, y)
print("Best params:", gs.best_params_)
print("Best CV score:", gs.best_score_)
best_model = gs.best_estimator_
best_model.predict(X_new)Meninjau Semua Hasil
cv_results_ adalah kamus (sangat cocok dijadikan DataFrame) yang menampilkan skor dan peringkat setiap kandidat. Gunakan ini untuk memahami parameter mana yang penting dan seberapa stabil skor tersebut.
import pandas as pd
results = pd.DataFrame(gs.cv_results_)
print(results[["params", "mean_test_score", "rank_test_score"]].head())RandomizedSearchCV
Saat ruang pencarian sangat besar, RandomizedSearchCV mengambil sampel sejumlah kombinasi acak yang telah ditentukan, bukan mencoba semuanya. Anda mengendalikan anggarannya dengan n_iter.
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
param_dist = {
"n_estimators": randint(100, 500),
"max_depth": randint(3, 20),
}
rs = RandomizedSearchCV(
RandomForestClassifier(), param_dist,
n_iter=30, cv=5, random_state=0,
)
rs.fit(X, y)Mengapa Pencarian Acak Sering Unggul
Dalam banyak masalah, hanya beberapa hiperparameter yang benar-benar penting. Pencarian acak menjelajahi dimensi-dimensi penting tersebut dengan lebih efisien daripada kisi yang kaku, sehingga menemukan solusi yang baik dengan jauh lebih sedikit percobaan.
Panduan Kisi vs Acak
Gunakan GridSearchCV untuk sekumpulan kandidat yang kecil dan diskret. Gunakan RandomizedSearchCV untuk ruang yang besar atau kontinu, dengan menetapkan anggaran n_iter. Keduanya secara otomatis melatih ulang model terbaik ketika refit=True.
Pemeriksaan Singkat
Uji pengetahuan Anda tentang pencarian hiperparameter.
Ringkasan
Ringkasan: GridSearchCV menguji secara menyeluruh setiap kombinasi dalam param_grid; biayanya meningkat tajam seiring ukuran kisi. RandomizedSearchCV mengambil sampel n_iter kombinasi untuk ruang yang besar. Tetapkan scoring untuk metrik Anda, n_jobs=-1 untuk mempercepat proses, lalu baca best_params_, best_score_, dan best_estimator_ setelah pelatihan.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 53
- Pelajaran
- 225
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pencarian Grid dan Pencarian Acak” gratis?
Ya — teks lengkap “Pencarian Grid dan Pencarian Acak” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pencarian Grid dan Pencarian Acak”?
GridSearchCV, RandomizedSearchCV, desain param_grid, dan pelatihan ulang dengan parameter terbaik. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pencarian Grid dan Pencarian Acak” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Strategi Validasi Silang
- Pendalaman Metrik Klasifikasi
- Pencarian Grid dan Pencarian Acak
- Optimisasi Bayesian dengan Optuna