Evalml: Memiliki automl auto-fit pipa terbaik di seluruh data pelatihan

Dibuat pada 11 Des 2020  ·  3Komentar  ·  Sumber: alteryx/evalml

Latar belakang
Hari ini untuk mengeluarkan pipeline terlatih dari automl, Anda perlu memanggil fit pada pipeline, karena automl selalu mengembalikan salinan pipeline yang tidak terlatih:

automl.search(X_train, y_train)
best_pipeline = automl.best_pipeline
best_pipeline.fit(X_train, y_train)
best_pipeline.score(X_test, y_test, objectives=['MSE'])
pipeline = automl.get_pipeline(42)
pipeline.fit(X_train, y_train)
pipeline.score(X_test, y_test, objectives=['MSE'])

Tantangan
Kami ingin mempermudah orang-orang untuk menjalankan automl, memilih pipeline, dan menggunakan pipeline itu untuk iterasi dan debug, untuk menghasilkan wawasan, dan untuk diterapkan ke produksi.

Usul
Dalam jangka pendek (yaitu masalah ini): minta pengakses best_pipeline mengembalikan jalur pipa yang terlatih:

automl.search(X_train, y_train)
best_pipeline = automl.best_pipeline
best_pipeline.score(X_test, y_test, objectives=['MSE'])

Jika pencarian automl belum berjalan, pengakses itu akan error.

Rekomendasi saya tentang cara menerapkan ini adalah memperbarui pencarian automl agar sesuai dengan pipa terbaik di akhir dan menyimpan referensi ke pipa terlatih itu.

Jangan lupa untuk memperbarui panduan pengguna!

Ada juga implikasi untuk pengujian kinerja: kita harus memperbarui kaca tampak untuk mencatat waktu pencarian otomatis dan waktu untuk menyesuaikan saluran terbaik secara terpisah, karena itu adalah operasi independen.

Masa depan
Untuk jangka panjang, saya ingin kita membuat abstraksi untuk menyimpan referensi ke data di luar panggilan ke search . Ini akan memungkinkan kita untuk melakukan hal-hal seperti memiliki get_pipeline mengembalikan pipeline terlatih juga, tanpa kita harus melatih semua pipeline selama panggilan ke automl search .

enhancement

Komentar yang paling membantu

haruskah kita juga menambahkan flag train_best_pipeline ke search() atau __init__ untuk mengizinkan pengguna mematikan ini? saya pikir itu akan menyenangkan karena mereka dapat menambahkan waktu dan memori ekstra yang signifikan untuk tindakan yang mungkin tidak diinginkan pengguna

Semua 3 komentar

Jadi rencananya adalah menambahkan argumen untuk X_test dan y_test ke AutoMLSearch.search api ? Atau itu akan muat di X dan y diteruskan ke search ?

haruskah kita juga menambahkan flag train_best_pipeline ke search() atau __init__ untuk mengizinkan pengguna mematikan ini? saya pikir itu akan menyenangkan karena mereka dapat menambahkan waktu dan memori ekstra yang signifikan untuk tindakan yang mungkin tidak diinginkan pengguna

@freddyaboulton Saya pikir itu harus sesuai dengan seluruh data pelatihan yang diberikan ke search

@kmax12 poin bagus, setuju, kita bisa menambahkan flag train_best_pipeline , default True. Dalam hal ini, TBD apa yang harus dilakukan API jika salah. Naluri saya adalah meminta best_pipeline mengembalikan pipa yang tidak terlatih, tetapi jika ada yang memiliki ide yang lebih baik, saya setuju. @bchen1116 FYI

Apakah halaman ini membantu?
0 / 5 - 0 peringkat