Evalml: [Diskusikan] Apakah AutoClassifer.fit() dan AutoRegressor.fit() adalah API terbaik?

Dibuat pada 5 Nov 2019  ·  10Komentar  ·  Sumber: alteryx/evalml

Setelah Anda memanggil fit, Anda harus memilih model yang ingin Anda gunakan sebelum menelepon predict . Dengan cara itu, tidak seperti objek lain yang memiliki metode fit. fit lebih seperti search dalam kasus ini.

Komentar yang paling membantu

Ya, saya setuju. Regressor juga bisa merujuk ke fitur input, variabel, dll, jadi regresi lebih baik.

Selain itu, jika AutoClassification dan AutoRegression lebih analog dengan "auto machine learning", karena machine learning, klasifikasi, dan regresi adalah semua proses.

kecuali ada oposisi terakhir, kita akan pergi bersama

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()

Semua 10 komentar

Cara saya melihatnya, ada tiga keputusan yang harus diambil

  1. Apa yang kita sebut kelas?
  2. Apa nama rekomendasi dari variabel yang menampung kelas yang diinisialisasi?
  3. Apa metode untuk memulainya?

Untuk 1 dan 2 berikut adalah opsi yang saya buat

import evalml

clf = evalml.AutoClassifierSearch()
auto = evalml.AutoClassifierSearch()
automl = evalml.AutoClassifierSearch()
seacher = evalml.AutoClassifierSearch()

clf = evalml.AutoClassifier()
auto = evalml.AutoClassifier()
automl = evalml.AutoClassifier()
seacher = evalml.AutoClassifier()

Untuk 2 dan 3 berikut adalah opsi yang saya buat

clf.search()
auto.search()
automl.search()
seacher.search()

clf.run()
auto.run()
automl.run()
seacher.run()

Saya pikir saya suka

import evalml
automl = evalml.AutoClassifierSearch()
automl.search()

Alasan saya adalah

  1. Kelas evalml.AutoClassifierSearch bersifat deskriptif. Ini adalah pencarian, bukan pengklasifikasi itu sendiri
  2. Metode ini memberi tahu Anda secara spesifik apa yang terjadi saat Anda memanggilnya. run() sangat umum.
  3. Nama variabel luas dan tidak bertentangan dengan konvensi penggunaan clf dengan alat seperti sklearn.

Alternatif yang saya suka adalah

import evalml
search = evalml.AutoClassifierSearch()
search.run()

Ini menggunakan nama variabel yang lebih deskriptif, jadi menggunakan run() tidak masalah. Kelebihannya adalah ia tidak memperkenalkan istilah automl pada contoh kita. Kekhawatiran saya adalah bahwa pengguna dapat memberi nama pencarian apa pun yang mereka inginkan dan kemudian my_custom_variable_name.run() tidak terlalu deskriptif.

Ada pikiran? Adakah pendekatan penamaan variabel yang saya lewatkan? Bahkan Anda tidak berpikir mereka lebih baik, mungkin juga membuangnya untuk kita pertimbangkan.

Saya suka AutoClassifierSearch() untuk alasan yang sama yang Anda nyatakan di atas tetapi tidak terlalu suka memanggil variabel automl karena tampaknya luas dan search sebagai kata kerja. Apa pendapatmu tentang autosearch.run() ? Seseorang mengusulkan searcher dalam pertemuan kami dan itu berhasil juga, tetapi itu tidak berjalan dengan baik.

Saya sangat menyukai AutoClassifierSearch() dan menggunakan search() karena saya setuju bahwa run() bisa menjadi terlalu umum jika pengguna mendefinisikan nama variabel mereka sendiri.

Untuk nama variabel yang direkomendasikan yang menampung kelas yang diinisialisasi, saya penggemar automl , searcher atau autosearch / autosearcher lebih dari search , bahkan jika kita menggunakan run() . (Apakah pencarian google singkat dan automl atau aml muncul untuk beberapa perpustakaan lain di luar sana, untuk apa nilainya).

@jeremyliweishih saya tidak yakin saya mengerti maksud Anda tentang search() . saya pikir tujuannya adalah untuk memilih kata kerja deskriptif untuk metode itu. dapatkah Anda menjelaskan apa yang Anda katakan?

Semoga saya tidak salah paham tapi saya pikir @jeremyliweishih mengatakan search sebagai nama variabel yang direkomendasikan agak aneh karena itu kata kerja ... setidaknya, itu juga perasaan yang saya dapatkan :D

@kmax12 Maksud saya komentar tentang nama variabel yang direkomendasikan: search = AutoClassifierSearch() . Untuk memperjelas, saya pikir AutoClassifierSearch() untuk nama kelas akan bagus dan autosearch dapat berfungsi untuk nama variabel. autosearch = AutoClassifierSearch() . Mungkin nama variabel tiga huruf lainnya bisa berfungsi juga (aml, asc, ats).

@jeremyliweishih saya mengerti apa yang Anda katakan sekarang. saya setuju.

Berdasarkan hal di atas, saya pikir kita semua suka mengganti nama menjadi AutoClassifierSearch dan AutoRegressorSearch .

Dalam hal nama variabel kami juga turun

autosearch = AutoClassifierSearch()
automl = AutoClassifierSearch()
aml = AutoClassifierSearch()

Saya pribadi suka automl karena deskriptif. aml serupa jika Anda tahu singkatannya, tapi menurut saya tidak seintuitif itu. inilah yang saya lihat menggunakan H20 di dokumen mereka (apakah ada perpustakaan lain?) Saya biasanya bukan penggemar pemendekan nama variabel tanpa alasan yang sangat bagus. Satu-satunya keuntungan yang saya lihat untuk aml adalah 3 karakter, bukan 6.

autosearch masuk akal bagi saya karena pada dasarnya itu adalah nama kelas. namun, ini lebih panjang dari automl dan saya tidak yakin itu menambah kejelasan. Jika kita menggunakan rute autosearch , saya pikir metodenya harus run , karena autosearcher = AutoClassifierSearch(); autosearcher.search() sepertinya berlebihan dalam pencarian haha.

Jadi saya melihat dua opsi berdasarkan obrolan di atas

automl = AutoClassifierSearch()
automl.search()

atau

autosearch = AutoClassifierSearch()
autosearch.run()

Pikirkan keduanya akan berhasil tetapi saya suka .search() lebih dari .run() !

Saya suka semua ide yang Anda keluarkan. Saya penggemar khusus:

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()

Bukan untuk memperumit diskusi yang sudah panjang dengan lebih banyak opsi, tetapi: haruskah kita mengatakan AutoRegressorSearch atau AutoRegressionSearch ? Saya parsial untuk yang terakhir. Saya tidak mendengar istilah "regressor" sebanyak yang saya dengar "model regresi", dan juga untuk klasifikasi

Ya, saya setuju. Regressor juga bisa merujuk ke fitur input, variabel, dll, jadi regresi lebih baik.

Selain itu, jika AutoClassification dan AutoRegression lebih analog dengan "auto machine learning", karena machine learning, klasifikasi, dan regresi adalah semua proses.

kecuali ada oposisi terakhir, kita akan pergi bersama

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
Apakah halaman ini membantu?
0 / 5 - 0 peringkat