Evalml: Menambal pada pengujian AutoMLSearch gagal

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

Menambal metode .score() dan .fit() pipeline menyebabkan pesan berikut dalam pengujian AutoMLSearch:
image

Repro
checkout utama

pytest -s evalml/tests/automl_tests/test_automl.py::test_automl_rerun
bug

Semua 4 komentar

@bchen1116 Jika Anda menambahkan return_value ke skor tiruan itu akan hilang:

@patch('evalml.pipelines.BinaryClassificationPipeline.score', return_value={"Log Loss Binary": 0.2})

@freddyaboulton apakah ini sesuatu yang perlu kita tambahkan ke semua .score() ? Dan apakah ini akan menjadi solusi terbaik untuk bug ini?

Saya kira saya ragu untuk menyebut ini bug karena tidak mengubah perilaku automl sedemikian rupa sehingga menyebabkan tes lulus ketika seharusnya gagal atau sebaliknya.

Masalah mendasarnya adalah jika Anda tidak memberikan nilai_pengembalian, MagicMock akan dikembalikan. Akhirnya kita masuk ke log skor dengan f-string:

logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
Yang menggunakan metode __format__ untuk MagicMock, yang menurut saya tidak ditentukan.

Mungkin jika kita mengubah cara logging dipanggil, kita bisa menghindari log jelek tapi saya khawatir itu akan memperumit kode untuk sedikit manfaat.

Bagaimana menurut anda?

Ah aku mengerti, itu masuk akal. Aku tidak yakin dari mana pesan itu berasal. Saya pikir perilaku itu baik-baik saja, karena tampaknya tidak merusak perilaku AutoML. Terima kasih atas bantuannya, saya akan menutup ini!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat