Evalml: Kesalahan saat menggunakan penarikan sebagai tujuan automl utama

Dibuat pada 12 Mar 2021  ·  4Komentar  ·  Sumber: alteryx/evalml

Semuanya yang Saya Hormati,
Dalam masalah klasifikasi biner, di mana biaya FN lebih tinggi daripada biaya FP, ketika mencoba menggunakan penarikan kembali sebagai tujuan, saya mendapatkan kesalahan berikut:

ValueError: penarikan tidak diizinkan di AutoML! Gunakan evalml.objectives.utils.get_core_objective_names() untuk mendapatkan semua nama objektif yang diizinkan di automl.

Saya memeriksa nama-nama yang diizinkan dan saya dapat melihat ingatan ada di sana

Ada saran?

Banyak terima kasih sebelumnya
Nikos

Komentar yang paling membantu

Halo @npapan69 !

Kami tidak menyarankan penggunaan recall sebagai tujuan utama dalam pencarian automl karena saluran sepele yang selalu memprediksi kelas positif biasanya akan menghasilkan skor recall yang sempurna. Jadi automl diberi insentif untuk menemukan saluran pipa yang sepele. Lihat edisi #476. Itu sebabnya itu tidak ada dalam daftar tujuan inti kami, seperti yang dikatakan kesalahan:

image

Namun, Anda masih dapat menggunakan penarikan sebagai tujuan automl! Cukup berikan sebagai instance daripada string:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

Keluaran:

image

Semua 4 komentar

Halo @npapan69 !

Kami tidak menyarankan penggunaan recall sebagai tujuan utama dalam pencarian automl karena saluran sepele yang selalu memprediksi kelas positif biasanya akan menghasilkan skor recall yang sempurna. Jadi automl diberi insentif untuk menemukan saluran pipa yang sepele. Lihat edisi #476. Itu sebabnya itu tidak ada dalam daftar tujuan inti kami, seperti yang dikatakan kesalahan:

image

Namun, Anda masih dapat menggunakan penarikan sebagai tujuan automl! Cukup berikan sebagai instance daripada string:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

Keluaran:

image

Terima kasih @freddyaboulton !

Saya punya satu saran lagi: jika Anda ingin automl mengetahui bahwa biaya positif palsu pada masalah Anda harus lebih tinggi daripada biaya negatif palsu, Anda dapat mencoba menggunakan tujuan CostBenefitMatrix :

import evalml
obj = evalml.objectives.CostBenefitMatrix(true_positive=1.0, true_negative=1.0, false_positive=10.0, false_negative=1.0)
automl = AutoMLSearch(X, y, problem_type="binary", objective=obj)

Terima kasih telah mengajukan masalah @npapan69 ! Saya menutupnya sejak @dsherry dan @freddyaboulton menimpali. Harap hubungi jika Anda memiliki pertanyaan tambahan!

Terima kasih TylerNickolas Papanikolaou, Ph.D.Kepala Computational Clinical Imaging GroupChampalimaud FoundationCentre for the UnknownAv. Brasília, Doca de Pedrouços1400-038 Lisbon, PortugalTelepon: ++351210480073Seluler: ++351969323757Pada Kam, 18 Mar 2021 pukul 17:40, Tyler @ . * > menulis:
Terima kasih telah mengajukan masalah @npapan69 ! Saya menutupnya sejak @dsherry dan @freddyaboulton menimpali. Harap hubungi jika Anda memiliki pertanyaan tambahan!

—Anda menerima ini karena Anda disebutkan. Balas email ini secara langsung, lihat di GitHub, atau berhenti berlangganan.
[
{
@ . ": " http://schema.org ",* @ . ": "Pesan Email",
"potensiAksi": {
@ . ": "Tampilan Aksi","target": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","url": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","name": "Lihat Masalah"},"description": "Lihat Masalah ini di GitHub","penerbit": {.* ": "Organisasi",
"nama": "GitHub",
"url": " https://github.com "
}
}
]

Apakah halaman ini membantu?
0 / 5 - 0 peringkat