Learn AI with Python · Pelajaran

Pencarian Grid dan Pencarian Acak

GridSearchCV, RandomizedSearchCV, desain param_grid, dan pelatihan ulang dengan parameter terbaik.

Pelajaran 3 dari 413 langkah

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.

Gratis untuk memulai

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

  1. Strategi Validasi Silang
  2. Pendalaman Metrik Klasifikasi
  3. Pencarian Grid dan Pencarian Acak
  4. Optimisasi Bayesian dengan Optuna
← Kembali ke Learn AI with Python