Panduan Komprehensif Untuk Meningkatkan Algoritma Pembelajaran Mesin



Blog ini memfokuskan sepenuhnya kepada bagaimana Boosting Machine Learning berfungsi dan bagaimana ia dapat dilaksanakan untuk meningkatkan kecekapan model Machine Learning.

Dengan begitu banyak kemajuan dalam bidang perawatan kesihatan, pemasaran, perniagaan dan sebagainya, telah menjadi keperluan untuk mengembangkan yang lebih maju dan kompleks . Meningkatkan Pembelajaran Mesin adalah salah satu teknik yang dapat digunakan untuk menyelesaikan masalah dunia nyata yang rumit, berdasarkan data. Blog ini difokuskan sepenuhnya pada bagaimana Boosting Machine Learning berfungsi dan bagaimana ia dapat dilaksanakan untuk meningkatkan kecekapan model Machine Learning.

Untuk mendapatkan pengetahuan mendalam mengenai Kecerdasan Buatan dan Pembelajaran Mesin, anda boleh mendaftar secara langsung oleh Edureka dengan sokongan 24/7 dan akses seumur hidup.





Berikut adalah senarai topik yang akan dibahas dalam blog ini:

  1. Mengapa Meningkatkan Digunakan?
  2. Apa yang Meningkatkan?
  3. Bagaimana Meningkatkan Algoritma Berfungsi?
  4. Jenis Peningkatan
  5. Demo

Mengapa Peningkatan Digunakan?

Untuk menyelesaikan masalah berbelit-belit kita memerlukan teknik yang lebih maju. Mari kita anggap bahawa apabila diberikan sekumpulan data gambar yang mengandungi gambar kucing dan anjing, anda diminta untuk membina model yang dapat mengklasifikasikan gambar ini menjadi dua kelas yang berasingan. Seperti orang lain, anda akan memulakan dengan mengenal pasti gambar dengan menggunakan beberapa peraturan, seperti yang diberikan di bawah:



  1. Gambar mempunyai telinga runcing: Kucing

  2. Gambar mempunyai mata berbentuk kucing: Kucing

  3. Gambar mempunyai anggota badan yang lebih besar: Anjing



  4. Gambar mempunyai cakar yang tajam: Kucing

  5. Gambar mempunyai struktur mulut yang lebih luas: Anjing

Semua peraturan ini membantu kita mengenal pasti sama ada gambar adalah Anjing atau kucing, namun, jika kita mengklasifikasikan gambar berdasarkan peraturan individu (tunggal), ramalan itu akan cacat. Setiap peraturan ini, secara individu, disebut pelajar lemah kerana peraturan ini tidak cukup kuat untuk mengklasifikasikan gambar sebagai kucing atau anjing.

Oleh itu, untuk memastikan ramalan kami lebih tepat, kami dapat menggabungkan ramalan dari setiap pelajar lemah ini dengan menggunakan peraturan majoriti atau purata berwajaran. Ini menjadikan model pelajar yang kuat.

Dalam contoh di atas, kami telah menentukan 5 pelajar lemah dan sebahagian besar peraturan ini (iaitu 3 daripada 5 pelajar meramalkan gambar sebagai kucing) memberi kita ramalan bahawa gambar itu adalah kucing. Oleh itu, hasil akhir kami adalah kucing.

Jadi ini membawa kita kepada persoalan,

Apa yang Meningkatkan?

Meningkatkan adalah teknik pembelajaran ensemble yang menggunakan satu set algoritma Pembelajaran Mesin untuk menukar pelajar yang lemah menjadi pelajar yang kuat untuk meningkatkan ketepatan model.

What-Is-Boosting-Boosting-Machine-Learning-Edureka

Apa yang Meningkatkan - Meningkatkan Pembelajaran Mesin - Edureka

Seperti yang saya sebutkan Boosting adalah kaedah pembelajaran ensemble, tetapi apa sebenarnya pembelajaran ensemble?

Apakah Ensembel dalam Pembelajaran Mesin?

Pembelajaran ensemble adalah kaedah yang digunakan untuk meningkatkan prestasi model Pembelajaran Mesin dengan menggabungkan beberapa pelajar. Jika dibandingkan dengan model tunggal, pembelajaran jenis ini membina model dengan peningkatan kecekapan dan ketepatan. Inilah sebabnya mengapa kaedah ensemble digunakan untuk memenangi pertandingan terkemuka di pasaran seperti pertandingan cadangan Netflix, pertandingan Kaggle dan sebagainya.

Apa itu Pembelajaran Ensembel - Meningkatkan Pembelajaran Mesin - Edureka

Di bawah ini saya juga telah membincangkan perbezaan antara Boosting dan Bagging.

Meningkatkan vs Bagging

Pembelajaran ensemble dapat dilakukan dengan dua cara:

  1. Ensembel berturutan, dikenali sebagai meningkatkan , di sini pelajar lemah dihasilkan secara berurutan semasa fasa latihan. Prestasi model ditingkatkan dengan memberikan pemberat yang lebih tinggi pada sampel sebelumnya, yang diklasifikasikan secara tidak betul. Contoh peningkatan ialah algoritma AdaBoost.

    cara membuat pakej di java
  2. Set selari , dikenali sebagai mengantong , di sini pelajar yang lemah dihasilkan secara selari semasa fasa latihan. Prestasi model dapat ditingkatkan dengan melatih sejumlah pelajar lemah pada set data bootstrapped. Contoh bagging adalah Random Forest algoritma.

Di blog ini, saya akan memfokuskan pada kaedah Meningkatkan, jadi di bahagian bawah ini kita akan memahami bagaimana algoritma peningkatan berfungsi.

Bagaimana Meningkatkan Algoritma Berfungsi?

Prinsip asas di sebalik penggunaan algoritma penambahbaikan adalah untuk menghasilkan beberapa pelajar lemah dan menggabungkan ramalan mereka untuk membentuk satu peraturan yang kuat. Peraturan lemah ini dihasilkan dengan menerapkan algoritma Machine Machine base pada sebaran data yang berlainan. Algoritma ini menghasilkan peraturan yang lemah untuk setiap lelaran. Setelah beberapa kali lelaran, pelajar yang lemah digabungkan untuk membentuk pelajar yang kuat yang akan meramalkan hasil yang lebih tepat.

Bagaimana Cara Meningkatkan Algoritma - Meningkatkan Pembelajaran Mesin - Edureka

Inilah cara algoritma berfungsi:

Langkah 1: Algoritma asas membaca data dan memberikan bobot yang sama untuk setiap pemerhatian sampel.

Langkah 2: Ramalan palsu yang dibuat oleh pelajar asas dikenal pasti. Dalam lelaran seterusnya, ramalan palsu ini diberikan kepada pelajar asas seterusnya dengan pemberat yang lebih tinggi pada ramalan yang salah ini.

Langkah 3: Ulangi langkah 2 sehingga algoritma dapat mengelaskan output dengan betul.

Oleh itu, tujuan utama Meningkatkan adalah untuk lebih menumpukan pada ramalan yang dikelaskan ketinggalan.

Setelah mengetahui bagaimana algoritma peningkatan berfungsi, mari kita fahami pelbagai jenis teknik peningkatan.

Jenis Peningkatan

Ada tiga cara utama untuk meningkatkan dapat dilakukan:

  1. Adaptive Boosting atau AdaBoost

  2. Peningkatan Gradien

  3. XGBoost

Saya akan membincangkan asas-asas di sebalik setiap jenis ini.

Meningkatkan Adaptive

  • AdaBoost dilaksanakan dengan menggabungkan beberapa pelajar lemah menjadi pelajar tunggal yang kuat.

  • Pelajar yang lemah di AdaBoost mengambil kira satu ciri input dan membuat satu keputusan yang terpisah yang disebut tunggakan keputusan. Setiap pemerhatian ditimbang sama rata semasa membuat keputusan pertama.

  • Hasil dari tunggakan keputusan pertama dianalisis dan jika ada pemerhatian yang diklasifikasikan secara salah, mereka diberi bobot yang lebih tinggi.

  • Kirimkan ini, tunggakan keputusan baru diambil dengan mempertimbangkan pemerhatian dengan bobot yang lebih tinggi lebih penting.

  • Sekali lagi jika ada pemerhatian yang salah diklasifikasikan, mereka diberi bobot yang lebih tinggi dan proses ini berterusan sehingga semua pemerhatian masuk ke kelas yang tepat.

  • Adaboost dapat digunakan untuk kedua-dua masalah berdasarkan klasifikasi dan regresi, namun lebih sering digunakan untuk tujuan klasifikasi.

Peningkatan Gradien

Gradient Boosting juga berdasarkan pembelajaran ensemble berurutan. Di sini pelajar asas dihasilkan secara berurutan sedemikian rupa sehingga pelajar asas sekarang selalu lebih efektif daripada yang sebelumnya, iaitu keseluruhan model bertambah baik secara berurutan dengan setiap lelaran.

Perbezaan dalam peningkatan jenis ini adalah bahawa bobot untuk hasil yang tidak diklasifikasikan tidak bertambah, sebaliknya, metode Gradient Boosting berusaha mengoptimumkan fungsi kerugian dari pelajar sebelumnya dengan menambahkan model baru yang menambahkan pelajar yang lemah untuk mengurangi fungsi kerugian.

panggilan c ++ dengan rujukan

Idea utama di sini adalah untuk mengatasi kesalahan dalam ramalan pelajar sebelumnya. Jenis peningkatan ini mempunyai tiga komponen utama:

  1. Kehilangan fungsi yang perlu ditingkatkan.

  2. Pelajar lemah untuk mengira ramalan dan membentuk pelajar yang kuat.

  3. Seorang Model Aditif yang akan mengatur fungsi kehilangan.

Seperti AdaBoost, Gradient Boosting juga dapat digunakan untuk masalah klasifikasi dan regresi.

XGBoost

XGBoost adalah versi lanjutan kaedah peningkatan Gradien, ini secara harfiah bermaksud eXtreme Gradient Boosting. XGBoost yang dikembangkan oleh Tianqi Chen, termasuk dalam kategori Komuniti Pembelajaran Mesin Teragih (DMLC).

Matlamat utama algoritma ini adalah untuk meningkatkan kelajuan dan kecekapan pengiraan. Algoritma Gradient Descent Boosting menghitung output pada kadar yang lebih perlahan kerana mereka secara berurutan menganalisis set data, oleh itu XGBoost digunakan untuk meningkatkan atau sangat meningkatkan prestasi model.

XGBoost - Meningkatkan Pembelajaran Mesin - Edureka

XGBoost direka untuk memfokus pada kelajuan komputasi dan kecekapan model. Ciri utama yang disediakan oleh XGBoost adalah:

  • Selari membuat pokok keputusan.

  • Melaksanakan kaedah pengkomputeran yang diedarkan untuk menilai model yang besar dan kompleks.

  • Menggunakan Pengkomputeran Luar Teras untuk menganalisis set data yang besar.

  • Melaksanakan pengoptimuman cache untuk menggunakan sumber yang terbaik.

Jadi ini adalahpelbagai jenis algoritma Pembelajaran Mesin Meningkatkan. Untuk menjadikan perkara menarik, di bahagian bawah ini kami akan menjalankan demo untuk melihat bagaimana algoritma peningkatan dapat dilaksanakan di Python.

Meningkatkan Pembelajaran Mesin Di Python

Penafian pendek: Saya akan menggunakan Python untuk menjalankan demo ini, jadi jika anda tidak mengenali Python, anda boleh melalui blog berikut:

  1. Cara Belajar Python 3 dari Scratch - Panduan Pemula

Kini tiba masanya tangan anda kotor dan mula membuat pengekodan.

Pernyataan masalah: Untuk mengkaji set data cendawan dan membina model Machine Learning yang dapat mengklasifikasikan cendawan sebagai beracun atau tidak, dengan menganalisis ciri-cirinya.

Penerangan Set Data: Kumpulan data ini memberikan penerangan terperinci mengenai sampel hipotesis sesuai dengan 23 spesies cendawan panggang. Setiap spesies dikelaskan sebagai cendawan yang boleh dimakan atau yang tidak boleh dimakan (beracun).

Logik: Untuk membina model Pembelajaran Mesin dengan menggunakan salah satu algoritma Boosting untuk meramalkan sama ada cendawan boleh dimakan atau tidak.

Langkah 1: Import pakej yang diperlukan

dari sklearn.ensemble import AdaBoostClassifier dari sklearn.preprocessing import LabelEncoder dari sklearn.tree import DecisionTreeClassifier import panda sebagai pd # Import train_test_split function from sklearn.model_selection import train_test_split #Import scikit-belajar metrik modul ketepatan pengiraan metrik metrik

Langkah 2: Import set data

# Muat dalam set data data = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

Langkah 3: Pemprosesan Data

#Tentukan nama kolum dataset.columns = ['target', 'cap-shape', 'cap-permukaan', 'cap-color', 'lebam', 'bau', 'gill-attachment', 'gill-spacing ',' gill-size ',' gill-color ',' stalk-shape ',' stalk-root ',' stalk-permukaan-above-ring ',' stalk-permukaan-under-ring ',' tangkai-warna -cincin di atas ',' warna tangkai-di bawah-cincin ',' jenis tudung ',' warna kerudung ',' nombor cincin ',' jenis cincin ',' warna-spora-cetak ',' populasi ',' habitat '] untuk label dalam dataset.columns: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Menampilkan maklumat mengenai cetakan set data (dataset.info ( Int64Index: 8124 entri, 6074 hingga 686 Lajur data (jumlah 23 lajur): sasaran 8124 int32 bentuk-topi null-null 8124 int32 cap-permukaan null-null 8124 int32 bukan-null-cap 8124 lebam int32 null 8124 bau int32 tidak nol 8124 lampiran ins32 int32 tidak nol 8124 intang insang int32 tanpa nol 8124 intang insang int32 nol 8124 warna insang int32 tidak nol 8124 bentuk tangkai int32 tanpa nol 8124 int32 bentuk null int32 stalk-root 8124 int32 tanpa nol tangkai-permukaan-atas-cincin 8124 int32 tidak-null tangkai-permukaan-bawah-cincin 8124 int32-null int32 tangkai-warna-di atas-cincin 8124 int32-null int32 tangkai-warna-di bawah-cincin 8124 tudung int32 bukan-nol- jenis 8124 int32 non-null-color veil-8124 non-null int32 ring-number 8124 non-null int32 ring-type 8124 non-null int32 spore-print-color 8124 non-null int32 populasi 8124 non-null int32 habitat 8124 non- dtyp int32 null: penggunaan memori int32 (23): 793.4 KB

Langkah 4: Penyambungan Data

X = dataset.drop (['target'], axis = 1) Y = set data ['target'] X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)

Langkah 5: Bina model

model = DecisionTreeClassifier (kriteria = 'entropi', max_depth = 1) AdaBoost = AdaBoostClassifier (base_estimator = model, n_estimators = 400, learning_rate = 1)

Dalam coretan kod di atas, kami telah menerapkan algoritma AdaBoost. Fungsi ‘AdaBoostClassifier’ mengambil tiga parameter penting:

  • base_estimator: Penganggar asas (pelajar lemah) adalah Pokok Keputusan secara lalai
  • n_estimator: Medan ini menentukan bilangan pelajar asas yang akan digunakan.
  • learning_rate: Medan ini menentukan kadar pembelajaran, yang telah kami tetapkan ke nilai lalai, iaitu 1.
# Pasangkan model dengan model latihan peningkatan data = AdaBoost.fit (X_train, Y_train)

Langkah 6: Penilaian Model

#Menilai ketepatan model y_pred = boostmodel.predict (X_test) ramalan = metrik.accuracy_score (Y_test, y_pred) # Menghitung ketepatan dalam cetakan peratusan ('Ketepatannya adalah:', ramalan * 100, '%') Ketepatan ialah: 100.0%

Kami telah mendapat ketepatan 100% yang sempurna!

Oleh itu, kita akan mengakhiri Blog Pembelajaran Mesin Meningkatkan ini. Sekiranya anda ingin mengetahui lebih lanjut mengenai Pembelajaran Mesin, anda boleh membaca blog ini:

Sekiranya anda ingin mendaftar untuk mengikuti kursus lengkap mengenai Artificial Intelligence dan Machine Learning, Edureka mempunyai pilihan khusus yang akan menjadikan anda mahir dalam teknik seperti Pembelajaran yang Diawasi, Pembelajaran Tanpa Pengawasan, dan Pemprosesan Bahasa Semula jadi. Ia merangkumi latihan mengenai kemajuan terkini dan pendekatan teknikal dalam Artificial Intelligence & Machine Learning seperti Pembelajaran Dalam, Model Grafik dan Pembelajaran Pengukuhan.