avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Perbandingan 8 algoritma pembelajaran mesin

Dibuat di: 2016-12-05 10:42:02, diperbarui pada:
comments   0
hits   6798

Perbandingan 8 algoritma pembelajaran mesin


Artikel ini mengulas beberapa skenario adaptasi algoritma yang umum digunakan dan kelebihan dan kekurangannya.

Ada begitu banyak algoritma pembelajaran mesin, seperti pengelompokan, regresi, pengelompokan, rekomendasi, pengakuan gambar, dan lain-lain, sehingga tidak mudah untuk menemukan algoritma yang tepat, jadi dalam aplikasi praktis, kita biasanya menggunakan pembelajaran inspirasional untuk bereksperimen.

Biasanya pada awalnya kita akan memilih algoritma yang umum kita kenal, seperti SVM, GBDT, Adaboost, sekarang pembelajaran mendalam sangat populer, dan jaringan saraf juga merupakan pilihan yang bagus.

Jika Anda peduli dengan keakuratan, cara terbaik adalah dengan melakukan cross-validation untuk menguji algoritma satu per satu, melakukan perbandingan, kemudian menyesuaikan parameter untuk memastikan bahwa setiap algoritma mencapai solusi optimal, dan akhirnya memilih yang terbaik.

Tetapi jika Anda hanya mencari algoritma yang cukup bagus untuk memecahkan masalah Anda, atau ada beberapa tips yang dapat Anda gunakan, berikut ini adalah analisa dari kelebihan dan kekurangan masing-masing algoritma, berdasarkan kelebihan dan kekurangan algoritma, lebih mudah bagi kita untuk memilihnya.

  • ## Perbedaan & Perbedaan

Dalam statistik, sebuah model baik atau buruk diukur berdasarkan bias dan perbedaan, jadi mari kita perbanyakkan bias dan perbedaan:

Penyimpangan: menggambarkan perbedaan antara nilai perkiraan (atau estimasi) dari nilai yang diharapkan (E) dan nilai yang sebenarnya (Y). Semakin besar penyimpangan, semakin jauh dari data yang sebenarnya.

Perbandingan 8 algoritma pembelajaran mesin

Divergensi: menggambarkan perubahan dari perkiraan nilai P. Divergensi adalah jarak dari perkiraan nilai P. Divergensi yang lebih besar, distribusi data yang lebih tersebar.

Perbandingan 8 algoritma pembelajaran mesin

Kesalahan sebenarnya dari model adalah jumlah dari keduanya, seperti gambar berikut:

Perbandingan 8 algoritma pembelajaran mesin

Jika ini adalah set latihan kecil, klasifikasi dengan deviasi tinggi / deviasi rendah (misalnya, Bayesian NB polos) akan lebih baik daripada klasifikasi dengan deviasi rendah / deviasi tinggi (misalnya, KNN), karena yang terakhir akan terlalu cocok.

Namun, seiring dengan pertumbuhan set latihan Anda, semakin baik kemampuan model untuk memprediksi data asli, bias akan berkurang, dan pada saat ini klasifikasi bias rendah / tinggi secara bertahap akan menunjukkan keunggulan mereka (karena mereka memiliki kesalahan pendekatan yang lebih rendah), dan pada saat ini klasifikasi bias tinggi tidak cukup untuk memberikan model yang akurat.

Tentu saja, Anda juga dapat menganggapnya sebagai perbedaan antara model generatif (NB) dan model determinatif (KNN).

  • ## Mengapa Bayes yang polos adalah bias tinggi dan bias rendah?

Di bawah ini adalah beberapa contohnya:

Pertama, asumsikan bahwa Anda tahu hubungan antara set latihan dan set uji. Secara sederhana, kita akan mempelajari model dalam set latihan, dan kemudian mendapatkan set uji untuk digunakan.

Tetapi seringkali kita hanya dapat mengasumsikan bahwa test set dan training set sesuai dengan distribusi data yang sama, tetapi kita tidak mendapatkan data test yang sebenarnya. Bagaimana cara mengukur test error rate dengan hanya melihat training error rate?

Karena jumlah sampel yang dilatih sangat sedikit (atau tidak cukup banyak), maka model yang diperoleh melalui pengumpulan pelatihan tidak akan benar-benar benar. Bahkan jika pengumpulan pelatihan benar-benar 100%, itu tidak berarti bahwa itu menggambarkan distribusi data yang benar. Tujuan kita adalah untuk mengetahui bagaimana mendesain distribusi data yang benar, bukan hanya mengukir titik data terbatas dari set pelatihan.

Selain itu, dalam prakteknya, sampel pelatihan sering memiliki beberapa kesalahan noise, jadi jika terlalu banyak mengejar kesempurnaan pada set latihan dan menggunakan model yang sangat rumit, itu akan membuat model menganggap kesalahan dalam set latihan sebagai karakteristik distribusi data yang benar, sehingga mendapatkan perkiraan distribusi data yang salah.

Dalam hal ini, sampai pada tes yang benar set salah satu kelaparan (fenomena ini disebut fit). Tapi juga tidak bisa menggunakan model yang terlalu sederhana, jika tidak, ketika distribusi data yang lebih kompleks, model tidak cukup untuk menggambar distribusi data (terwujud sebagai bahkan dalam set latihan tingkat kesalahan yang tinggi, fenomena ini kurang cocok).

Terlalu cocok menunjukkan bahwa model yang digunakan lebih kompleks daripada distribusi data yang sebenarnya, sedangkan kurang cocok menunjukkan bahwa model yang digunakan lebih sederhana daripada distribusi data yang sebenarnya.

Dalam kerangka pembelajaran statistik, ketika kita memetakan kompleksitas model, ada pendapat bahwa Error = Bias + Variance. Di sini, Error mungkin dapat dipahami sebagai tingkat kesalahan prediksi model, terdiri dari dua bagian, yang satu adalah perkiraan yang tidak akurat yang disebabkan oleh model yang terlalu sederhana (Bias), dan yang lainnya adalah ruang perubahan dan ketidakpastian yang lebih besar yang disebabkan oleh model yang terlalu kompleks (Variance).

Jadi, dengan begitu mudah untuk menganalisis Bayes sederhana. Dengan asumsi sederhana bahwa setiap data tidak terkait, sebuah model yang sangat disederhanakan. Jadi, untuk model sederhana seperti itu, sebagian besar kasus akan bias lebih besar dari varians, yaitu bias tinggi dan varian rendah.

Dalam prakteknya, untuk membuat kesalahan seminimal mungkin, kita perlu menyeimbangkan proporsi bias dan varian dalam memilih model, yaitu menyeimbangkan over-fitting dan under-fitting.

Hubungan antara deviasi dan diferensiasi kuadrat dengan kompleksitas model lebih jelas dengan menggunakan gambar berikut:

Perbandingan 8 algoritma pembelajaran mesin

Ketika kompleksitas model meningkat, deviasi menjadi lebih kecil dan deviasi menjadi lebih besar.

  • Keunggulan dan Kelemahan dari Algoritma Umum

    • ### 1. Bayes yang polos

    Bayesian sederhana adalah model generatif (untuk model generatif dan model deduktif, terutama apakah atau tidak untuk meminta distribusi bersama), sangat sederhana, Anda hanya melakukan banyak penghitungan.

    Jika ada hipotesis independensi bersyarat ((sebuah kondisi yang lebih ketat), klasifikasi Bayesian yang sederhana akan bertepatan lebih cepat dari model penilaian, seperti logistic regression, sehingga Anda hanya membutuhkan sedikit data pelatihan. Bahkan jika hipotesis independensi bersyarat NB tidak berlaku, klasifikasi NB tetap berkinerja baik dalam praktiknya.

    Kelemahan utamanya adalah bahwa ia tidak dapat mempelajari interaksi antara fitur, dan R dalam mRMR adalah fitur redundansi. Untuk memberi contoh yang lebih klasik, misalnya, meskipun Anda menyukai film Brad Pitt dan Tom Cruise, ia tidak dapat mempelajari bahwa Anda tidak menyukai film mereka bersama.

    Keuntungan:

    Model Bayesian sederhana berasal dari teori matematika klasik, memiliki dasar matematika yang kuat, dan efisiensi klasifikasi yang stabil. Kinerja yang baik untuk data skala kecil, dapat menangani tugas multi-kategori, cocok untuk pelatihan inkremental; Tidak terlalu sensitif terhadap data yang hilang, dan algoritmanya relatif sederhana, sering digunakan untuk mengklasifikasikan teks. Kekurangan:

    Untuk itu, Anda perlu menghitung probabilitas awal. Kesalahan dalam pengambilan keputusan klasifikasi; Data yang masuk sangat sensitif terhadap bentuknya.

    • ### Regressi Logis 2.

    Ada banyak metode untuk model yang bersifat distorsional (L0, L1, L2, dan lain-lain), dan Anda tidak perlu khawatir tentang apakah karakteristik Anda relevan seperti yang Anda lakukan dengan Bayesian sederhana.

    Anda juga mendapatkan interpretasi probabilitas yang bagus dibandingkan dengan pohon keputusan dan mesin SVM, dan Anda bahkan dapat dengan mudah menggunakan data baru untuk memperbarui model Anda (dengan menggunakan algoritma penurunan gradien online, online gradient descent).

    Jika Anda membutuhkan arsitektur probabilitas (misalnya, hanya untuk menyesuaikan nilai tipis klasifikasi, menunjukkan ketidakpastian, atau untuk mendapatkan interval kepercayaan), atau Anda ingin mengintegrasikan lebih banyak data pelatihan ke dalam model dengan cepat di kemudian hari, maka gunakanlah.

    Fungsi sigmoid:

    Perbandingan 8 algoritma pembelajaran mesin

    Keuntungan: Hal ini dapat dilakukan dengan cara yang sederhana dan dapat diterapkan secara luas pada industri. Perhitungan sangat kecil, kecepatan sangat cepat, dan penyimpanan yang rendah; Probabilitas skor sampel observasi yang mudah; Dalam hal logistic regression, ko-linearitas ganda bukanlah masalah, yang dapat diatasi dengan L2 normalisasi. Kekurangan: Regresi logis tidak bekerja dengan baik ketika ruang karakteristiknya besar. Kemungkinan kurang cocok, umumnya kurang akurat Tidak dapat menangani banyak karakter atau variabel dengan baik; hanya dapat menangani dua masalah klasifikasi (softmax yang berasal dari dasar ini dapat digunakan untuk multi-klasifikasi), dan harus dapat dibagi secara linear; Untuk fitur non-linear, perlu dilakukan konversi.

    • ### 3. Regressi linier

    Regresi linier digunakan untuk regresi, tidak seperti Regresi Logistik yang digunakan untuk klasifikasi. Ide dasarnya adalah untuk mengoptimalkan fungsi kesalahan dalam bentuk perkalian binomial terkecil dengan gradien turun, dan tentu saja dapat menggunakan persamaan normal untuk mencari argumen secara langsung, dengan hasil:

    Perbandingan 8 algoritma pembelajaran mesin

    Dalam LWLR (Local Weighted Linear Regression), parameter ini dihitung sebagai:

    Perbandingan 8 algoritma pembelajaran mesin

    Dari sini dapat dilihat bahwa LWLR berbeda dengan LR, LWLR adalah model non-parameter, karena setiap kali melakukan perhitungan regresi harus menjelajahi sampel pelatihan setidaknya sekali.

    Keuntungan: Mudah diimplementasikan, mudah dihitung;

    Kekurangan: Tidak cocok dengan data non-linear.

    • ### 4. algoritma berdekatan terdekat (KNN)

    KNN adalah algoritma berdekatan terdekat, yang proses utamanya adalah:

    1. menghitung jarak dari setiap titik sampel dalam sampel latihan dan sampel uji (ukuran jarak yang umum adalah jarak Eropa, jarak Mars, dan lain-lain);

    2. Sort semua nilai jarak di atas;

    3. K sampel dengan jarak terkecil;

    4. Setelah itu, hasil voting berdasarkan label dari k sampel tersebut, akan menghasilkan kategori teratas.

    Cara memilih nilai K yang optimal tergantung pada data. Secara umum, nilai K yang lebih besar dapat mengurangi dampak kebisingan pada pengelompokan. Namun, batas antara kategori dapat menjadi kabur.

    Sebuah nilai K yang lebih baik dapat diperoleh melalui berbagai teknik ilusi, misalnya, cross-validation. Selain itu, kehadiran noise dan non-relevant feature vector dapat mengurangi akurasi algoritma berdekatan K.

    Algoritma berdekatan memiliki hasil konsistensi yang kuat. Dengan data yang tidak terbatas, algoritma menjamin kesalahan yang tidak akan melebihi dua kali lipat dari kesalahan algoritma Bayesian. Untuk beberapa nilai K yang baik, K berdekatan menjamin kesalahan yang tidak akan melebihi kesalahan teoretis Bayesian.

    Keunggulan dari algoritma KNN

    Teori yang matang, pemikiran yang sederhana, yang dapat digunakan untuk mengelompokkan dan juga untuk regresi; dapat digunakan untuk klasifikasi non-linear; Kompleksitas waktu pelatihan adalah O (n); Tidak ada hipotesis pada data, akurasi tinggi, tidak sensitif terhadap outlier; kekurangan

    Perhitungan besar; Masalah ketidakseimbangan sampel (yaitu, beberapa kategori memiliki banyak sampel, sementara yang lain memiliki sedikit sampel); Memori yang sangat besar;

    • ### 5. Pohon Keputusan

    Mudah untuk diinterpretasikan. Ia dapat menangani interaksi antara fitur tanpa tekanan dan non-parameter, sehingga Anda tidak perlu khawatir tentang nilai-nilai yang tidak biasa atau apakah data dapat dipisahkan secara linier (misalnya, pohon keputusan dapat dengan mudah menangani kategori A di ujung suatu fitur dimensi x, kategori B di tengah, dan kemudian kategori A muncul di ujung depan fitur dimensi x).

    Salah satu kelemahan adalah tidak mendukung pembelajaran online, sehingga pohon keputusan harus dibangun kembali setelah sampel baru datang.

    Kelemahan lainnya adalah mudahnya overfit, tetapi ini adalah titik masuk untuk metode integrasi seperti RF hutan acak (atau meningkatkan pohon yang dibangkitkan).

    Selain itu, hutan acak seringkali menjadi pemenang dalam banyak masalah klasifikasi (biasanya sedikit lebih baik daripada mesin vektor pendukung), dan karena mereka cepat dilatih dan dapat disesuaikan, dan Anda tidak perlu khawatir tentang banyak parameter yang harus disesuaikan seperti mesin vektor pendukung, mereka selalu populer di masa lalu.

    Salah satu hal yang penting dalam pohon keputusan adalah memilih satu atribut untuk bercabang, jadi perhatikan rumus perhitungan informasi yang bertambah dan pahami lebih dalam tentang hal itu.

    Rumus untuk menghitung infobak adalah sebagai berikut:

    Perbandingan 8 algoritma pembelajaran mesin

    Di mana n mewakili n kategori klasifikasi ((misalnya, asumsikan bahwa ini adalah masalah kelas 2, maka n = 2) . Perhitungan probabilitas p1 dan p2 dari dua jenis sampel yang muncul dalam total sampel, sehingga dapat dihitung informasi yang tidak terpilih sebelum cabang sifat .

    Sekarang pilih salah satu sifat xixi yang digunakan untuk melakukan percabangan, pada saat ini aturan percabangan adalah: jika xi = vxi = v, bagi sampel ke salah satu cabang pohon; jika tidak sama, masuk ke cabang lain.

    Jelas, sampel dalam cabang kemungkinan besar terdiri dari 2 kategori, masing-masing menghitung nilai H1 dan H2 dari kedua cabang tersebut, menghitung nilai total informasi setelah cabang H = p1 H1 + p2 H2, maka keuntungan informasi saat ini ΔH = H - H. Menggunakan keuntungan informasi sebagai prinsip, tes semua sifat, pilih salah satu properti dengan keuntungan terbesar sebagai properti cabang kali ini.

    Manfaat dari Pohon Keputusan Sendiri

    Perhitungan yang sederhana, mudah dipahami, dan dapat ditafsirkan; Sampel yang lebih cocok untuk ditangani dengan atribut yang hilang; Ini adalah salah satu cara yang paling efektif untuk memanipulasi karakter yang tidak relevan. Hasil yang layak dan efektif dari sumber data besar dalam waktu yang relatif singkat. kekurangan

    Terjadi overadaptasi (hutan acak dapat mengurangi overadaptasi secara signifikan); Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan. Untuk data dengan jumlah sampel yang tidak konsisten dari berbagai kategori, hasil peningkatan informasi di pohon keputusan dipengaruhi oleh karakteristik yang memiliki nilai lebih banyak (dengan kekurangan ini, jika peningkatan informasi digunakan, seperti RF).

    • ### 5.1 Adaboosting

    Adaboost adalah sebuah model penjumlahan, dimana setiap model dibangun berdasarkan tingkat kesalahan dari model sebelumnya, dengan terlalu banyak fokus pada sampel yang salah diklasifikasikan, dan kurang fokus pada sampel yang diklasifikasikan dengan benar, setelah iterasi, model yang relatif lebih baik dapat diperoleh.

    keuntungan

    Adaboost adalah pengelompokan dengan presisi tinggi. Ada berbagai metode untuk membangun sub-klasifier, Adaboost menyediakan framework. Ketika menggunakan klasifikasi sederhana, hasil yang dihitung dapat dimengerti, dan klasifikasi lemah sangat sederhana dalam konstruksi. Sederhana, tidak perlu filter fitur. Tidak mudah terjadi overfitting. Untuk algoritma kombinasi seperti hutan acak dan GBDT, lihat artikel ini: Pembelajaran mesin - Ringkasan algoritma kombinasi

    Kekurangan: Sensitif terhadap outlier

    • ### 6. SVM mendukung mesin vektor

    Akurasi yang tinggi, memberikan jaminan teoritis yang baik untuk menghindari overfit, dan bahkan jika data tidak dapat dibagi secara linear dalam ruang karakteristik asli, hanya dengan memberikan fungsi inti yang sesuai, ia dapat bekerja dengan baik.

    Secara khusus populer dalam masalah pengelompokan teks berdimensi super tinggi. Sayangnya, penggunaan memori yang besar, sulit untuk ditafsirkan, operasi dan perkalian juga sedikit merepotkan, dan hutan acak hanya menghindari kekurangan ini, lebih praktis.

    keuntungan Ini adalah masalah dimensi yang lebih tinggi, yaitu ruang karakteristik yang lebih besar. Interaksi dari karakteristik non-linear; Tidak perlu bergantung pada seluruh data; Meningkatkan kemampuan generalisasi;

    kekurangan Ini adalah salah satu cara yang paling efektif untuk memantau dan mengamati. Tidak ada solusi universal untuk masalah non-linear, dan kadang-kadang sulit untuk menemukan fungsi inti yang sesuai; Sensitivitas terhadap data yang hilang; Libsvm memiliki empat fungsi kernel: kernel linier, kernel multiform, kernel RBF, dan kernel sigmoid:

    Pertama, jika jumlah sampel kurang dari jumlah karakteristik, maka tidak perlu untuk memilih inti non-linear, hanya menggunakan inti linier saja.

    Kedua, jika jumlah sampel lebih besar dari jumlah fitur, maka dapat digunakan inti non-linear untuk memetakan sampel ke dimensi yang lebih tinggi, yang umumnya memberikan hasil yang lebih baik.

    Ketiga, jika jumlah sampel dan jumlah fitur sama, maka kernel non-linear dapat digunakan, dengan prinsip yang sama seperti yang kedua.

    Untuk kasus pertama, data dapat didimensionalisasi terlebih dahulu, dan kemudian menggunakan inti non-linear, yang juga merupakan metode.

    • ### 7. Keunggulan dan Kelemahan Jaringan Neural AI

    Manfaat Jaringan Neural Buatan: Klasifikasi yang lebih akurat; Perangkat lunak ini memiliki kemampuan pemrosesan terdistribusi paralel, penyimpanan terdistribusi, dan kemampuan belajar yang kuat. memiliki robustitas dan toleransi terhadap gangguan saraf, sehingga dapat mendekati hubungan non-linear yang kompleks; Dengan fungsi memori memori.

    Kelemahan dari jaringan saraf buatan: Jaringan saraf membutuhkan banyak parameter, seperti struktur topologi jaringan, nilai awal dan nilai terendah; Ketidakmampuan untuk mengamati proses pembelajaran, dan sulitnya untuk menginterpretasikan hasil yang dihasilkan, yang dapat mempengaruhi kredibilitas dan penerimaan hasil; Waktu belajar terlalu lama, bahkan mungkin tidak mencapai tujuan belajar.

    • ### 8 K-Maksud Kelompok

    Sebelumnya saya telah menulis sebuah artikel tentang K-Means cluster, di mana ada beberapa pemikiran EM yang kuat tentang K-Means.

    keuntungan Algoritma sederhana dan mudah diterapkan; Untuk menangani dataset besar, algoritma ini relatif scalable dan efisien, karena kompleksitasnya adalah sekitar O{\displaystyle O} nkt, di mana n adalah jumlah semua objek, k adalah jumlah kerucut, dan t adalah jumlah iterasi. Biasanya k<

    kekurangan Persyaratan tipe data yang lebih tinggi, cocok untuk data numerik; Mungkin bertepatan dengan nilai lokal minimum, bertepatan lebih lambat pada data besar Nilai K lebih sulit untuk diambil; Sensitivitas terhadap titik fokus awal, yang dapat menyebabkan hasil pengelompokan yang berbeda untuk nilai awal yang berbeda; Tidak cocok untuk menemukan kerucut yang tidak berbentuk kerucut, atau kerucut dengan ukuran yang sangat berbeda. Untuk data yang sensitif terhadap kebisingan dan titik isolasi, jumlah kecil dari data ini dapat memiliki pengaruh besar pada rata-rata.

    Referensi pilihan algoritma

    Salah satu artikel yang telah diterjemahkan beberapa kali di luar negeri, memberikan trik sederhana untuk memilih algoritma:

    Pertama-tama yang harus dipilih adalah logistic regression, jika hasilnya tidak terlalu baik, maka hasilnya dapat digunakan sebagai acuan untuk membandingkan dengan algoritma lain;

    Kemudian cobalah pohon keputusan (hutan acak) untuk melihat apakah itu dapat meningkatkan kinerja model Anda secara signifikan. Bahkan jika Anda tidak menganggapnya sebagai model akhir, Anda dapat menggunakan hutan acak untuk menghapus variabel noise dan membuat pilihan karakteristik.

    Jika jumlah karakteristik dan sampel observasi sangat banyak, maka penggunaan SVM adalah pilihan yang tepat ketika sumber daya dan waktu mencukupi (yang merupakan prasyarat yang penting).

    Biasanya: GBDT>=SVM>=RF>=Adaboost>=Other…, sekarang pembelajaran mendalam sangat populer, banyak bidang yang digunakan, itu didasarkan pada jaringan saraf, saat ini saya sendiri juga belajar, hanya saja pengetahuan teoretisnya tidak cukup tebal, pemahaman tidak cukup dalam, tidak akan diperkenalkan di sini.

    Algoritma memang penting, tetapi data yang baik lebih baik dari algoritma yang baik, dan desain yang baik sangat bermanfaat. Jika Anda memiliki set data yang sangat besar, maka algoritma apa pun yang Anda gunakan mungkin tidak terlalu berpengaruh pada kinerja klasifikasi (saat ini Anda dapat memilih berdasarkan kecepatan dan kemudahan penggunaan).

  • Referensi