Ketika saya menemukan pembelajaran mesin, saya melihat berbagai teknik menarik seperti:
- secara otomatis menyesuaikan algoritma dengan teknik seperti
grid search
, - mendapatkan hasil yang lebih akurat melalui kombinasi berbagai algoritma dari "tipe" yang sama, yaitu
boosting
, - mendapatkan hasil yang lebih akurat melalui kombinasi algoritma yang berbeda (tetapi bukan jenis algoritma yang sama), itu
stacking
, - dan mungkin masih banyak lagi yang harus saya temukan ...
Pertanyaan saya adalah sebagai berikut: ada semua bagian itu. Tetapi apakah mungkin untuk menyatukan mereka untuk membuat algoritma yang mengambil sebagai input data yang dibersihkan dan menghasilkan hasil yang baik dengan mengambil yang terbaik dari semua teknik? (Tentu saja itu mungkin akan menjadi kurang efisien jika seorang ilmuwan data profesional, tetapi dia akan lebih baik daripada saya!) Jika ya, apakah Anda memiliki kode sampel atau Anda tahu kerangka kerja yang bisa melakukan itu?
EDIT: Setelah beberapa jawaban, tampaknya beberapa penyempitan harus dilakukan. Mari kita ambil contoh, kita memiliki satu kolom dengan data kategorikal, sebut saja y
dan kita ingin memprediksinya dari data numerik X
yang berupa boneka atau data numerik nyata (tinggi, suhu). Kami menganggap pembersihan telah dilakukan sebelumnya. Adakah algoritma yang ada yang dapat mengambil data dan menghasilkan prediksi? (dengan menguji beberapa algoritme, menyetelnya, meningkatkan, dll.) Jika ya, apakah ini efisien secara komputasi (apakah perhitungan dilakukan dalam waktu yang wajar jika kita dibandingkan dengan algoritma normal), dan apakah Anda memiliki contoh kode?
sumber
auto.arima
(dariforecast
perpustakaan) bisa lebih baik daripada manusia - Rob Hyndman disebutkan dalam beberapa kali dalam presentasinya. Jadi ada area di mana beberapa jenis "pembelajaran otomatis" diterapkan dengan sukses.Jawaban:
Jika Anda tahu sebelumnya jenis data apa yang akan Anda masukkan ("ini adalah penjualan bulanan CPG, dengan harga dan penanda promosi, dan saya ingin perkiraan poin"), sehingga Anda dapat menyetel pengaturan sebelumnya, yang kemungkinan akan menjadi mungkin dan sudah dilakukan, lihat berbagai "sistem pakar" untuk tugas spesifik tertentu.
Jika Anda mencari sesuatu yang dapat mengambil data apa saja dan melakukan "sesuatu yang berguna" dengan itu ("ah, di sini saya seharusnya mengenali tulisan tangan dan kode ZIP keluaran, dan di sana saya harus melakukan deteksi penipuan, dan file input ini jelas adalah tugas penilaian kredit "), tidak, saya tidak berpikir itu akan terjadi dalam waktu yang lama.
Maaf untuk jawaban berbasis opini untuk apa yang mungkin ditutup sebagai pertanyaan berbasis opini.
EDIT untuk menjawab pertanyaan yang diedit:
Ini terdengar seperti sesuatu yang Random Forest sebenarnya cukup bagus. Kemudian lagi, "tujuan umum" algoritma seperti RFS akan mungkin pernah mengalahkan algoritma yang sesuai untuk tertentu jenis diketahui sebelumnya, risiko misalnya, tulisan tangan angka, atau credit default.y
sumber
Apa yang Anda jelaskan sudah ada sampai batas tertentu, misalnya di AutoWEKA , dan sedang diteliti kembali secara aktif (misalnya tantangan seperti ChalML's AutoML ).
Ini biasanya dipertimbangkan dalam subbidang optimisasi hyperparameter. Paket perangkat lunak seperti Optunity , Hyperopt dan ParamILS dapat digunakan untuk secara otomatis mengoptimalkan hiperparameter untuk pendekatan yang diberikan dan memilih pendekatan mana yang terbaik. Yang mengatakan, masalah optimasi seperti itu tidak sepele dan biasanya butuh waktu lama untuk secara otomatis mendapatkan model terbaik (atau dekat dengan itu).
Anda dapat menemukan contoh menggunakan Optunity untuk secara otomatis menentukan algoritma pembelajaran terbaik dan mengoptimalkan hyperparameter-nya di http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html
sumber
Kemajuan dalam penyetelan parameter hiper dan model ensemble mengambil banyak 'seni' dari pembangunan model. Namun, ada dua aspek penting dari pembangunan model yang tidak dapat disetel oleh tala parameter dan ansambel dan akan mencegah Anda menemukan model terbaik.
Pertama, beberapa tipe algoritma lebih baik dalam memodelkan tipe data tertentu. Misalnya, jika ada interaksi antara variabel Anda, model aditif tidak akan menemukannya, tetapi pohon keputusan akan melakukannya. Mengetahui bagaimana model berperilaku pada dataset berbeda, dan memilih yang tepat, mungkin memerlukan pengetahuan tentang domain untuk menemukan algoritma pemodelan terbaik.
Kedua, rekayasa fitur dan ekstraksi fitur adalah 'seni' nyata untuk membangun model. Pertanyaan Anda mengasumsikan bahwa dataset sudah disiapkan. Tetapi apa yang Anda tidak boleh berasumsi adalah bahwa dataset adalah representasi terbaik dari apa yang Anda coba modelkan. Ini selalu dan pertanyaan terbuka. Dalam banyak kasus, di mana kumpulan data rumit, Anda dapat merekayasa fitur sepanjang hari, tetapi Anda berisiko membuang lebih banyak noise ke dalam algoritma. Untuk mengetahui fitur mana yang harus ditambahkan, Anda harus tahu fitur mana yang masuk akal dari perspektif statistik dan mana yang masuk akal dari perspektif pakar domain.
Bagi mereka dua alasan, saya menyimpulkan bahwa tidak ada, Anda tidak akan dapat menemukan sebuah algoritma yang menemukan yang terbaik mungkin model yang otomatis. Ini juga mengapa saya ragu dengan vendor perangkat lunak yang akan menggantikan kebutuhan para ilmuwan data.
Namun, jika Anda mempersempit ambisi Anda untuk menemukan model terbaik dari set model yang tetap, dengan parameter hiper optimal, di mana 'terbaik' didefinisikan sebagai akurasi prediktif tertinggi pada set pelatihan, maka ya, ini mungkin.
Lihatlah
caret
paketR
sebagai contoh cara menyetel model secara otomatis.caret
menggunakan pencarian kotak, yang memiliki kekurangan, dan itu hanya membangun satu model pada satu waktu. Namun, ada fungsi untuk membandingkan model dan pembungkus yang nyaman untuk daftar panjang model dari banyakR
paket berbeda .sumber
Tergantung siapa yang kamu tanya.
Baru-baru ini saya mendengar ceramah oleh Scott Golder di Context Relevant . Produk mereka pada dasarnya adalah fitur dan model pemilihan robot. Model dasar yang mendasarinya adalah regresi logistik, tetapi sistem pada dasarnya menggunakan pembelajaran mesin untuk mengetahui kombinasi yang tepat dari pemilihan fitur, pengurangan dimensi, regularisasi, dll untuk menghasilkan prediksi yang akurat. Itu adalah pembicaraan yang sangat mengesankan, dan detailnya sangat eksklusif. Rupanya klien mereka termasuk perusahaan keuangan besar dan sistem dapat menangani set data besar secara sewenang-wenang.
Setidaknya beberapa orang, kemudian, tampaknya berpikir ilmu data otomatis sudah ada di sini, setidaknya untuk aplikasi tertentu. Dan beberapa dari orang-orang itu (klien Relevant Konteks) tampaknya membayar melalui hidung untuk akses ke sana.
sumber
Tidak, itu bukan mimpi. Kami telah menerapkan ini (kombinasi dari semua teknik yang Anda sebutkan, termasuk ansambel bertumpuk) di perpustakaan pembelajaran mesin H2O . Anda dapat membaca lebih lanjut tentang hal ini dan menemukan contoh kode dalam R dan Python di sini .
sumber