Panduan Komprehensif Untuk Meningkatkan Algoritma Pembelajaran Mesin



Blog ini sepenuhnya berfokus pada cara kerja Boosting Machine Learning dan bagaimana penerapannya untuk meningkatkan efisiensi model Machine Learning.

Dengan banyaknya kemajuan dalam bidang kesehatan, pemasaran, bisnis dan lain sebagainya, sudah menjadi kebutuhan untuk berkembang lebih maju dan kompleks. . Boosting Machine Learning adalah salah satu teknik yang dapat digunakan untuk memecahkan masalah dunia nyata yang kompleks, berdasarkan data. Blog ini sepenuhnya berfokus pada cara kerja Boosting Machine Learning dan bagaimana penerapannya untuk meningkatkan efisiensi model Machine Learning.

Untuk mendapatkan pengetahuan mendalam tentang Kecerdasan Buatan dan Pembelajaran Mesin, Anda dapat mendaftar secara langsung oleh Edureka dengan dukungan 24/7 dan akses seumur hidup.





Berikut daftar topik yang akan dibahas di blog ini:

  1. Mengapa Boosting Digunakan?
  2. Apa Itu Meningkatkan?
  3. Bagaimana Cara Kerja Boosting Algorithm?
  4. Jenis Boosting
  5. Demo

Mengapa Boosting Digunakan?

Untuk mengatasi masalah yang berbelit-belit, kami membutuhkan teknik yang lebih canggih. Misalkan, pada kumpulan data gambar yang berisi gambar kucing dan anjing, Anda diminta untuk membuat model yang dapat mengklasifikasikan gambar-gambar ini ke dalam dua kelas terpisah. Seperti orang lain, Anda akan mulai dengan mengidentifikasi gambar dengan menggunakan beberapa aturan, seperti yang diberikan di bawah ini:



  1. Gambar itu memiliki telinga lancip: Kucing

  2. Gambar itu memiliki mata berbentuk kucing: Kucing

  3. Gambar itu memiliki anggota tubuh yang lebih besar: Anjing



  4. Gambar itu memiliki cakar yang tajam: Kucing

  5. Gambar memiliki struktur mulut yang lebih lebar: Anjing

Semua aturan ini membantu kami mengidentifikasi apakah gambar adalah Anjing atau kucing, namun, jika kami mengklasifikasikan gambar berdasarkan aturan (tunggal) individu, prediksi akan salah. Masing-masing aturan ini, secara individual, disebut pelajar yang lemah karena aturan ini tidak cukup kuat untuk mengklasifikasikan gambar sebagai kucing atau anjing.

Oleh karena itu, untuk memastikan prediksi kita lebih akurat, kita bisa menggabungkan prediksi dari masing-masing pelajar lemah ini dengan menggunakan aturan mayoritas atau rata-rata tertimbang. Ini membuat model pembelajar yang kuat.

Dalam contoh di atas, kami telah menentukan 5 pelajar yang lemah dan sebagian besar aturan ini (yaitu 3 dari 5 pelajar memprediksi gambar sebagai kucing) memberi kami prediksi bahwa gambar itu adalah seekor kucing. Oleh karena itu, hasil akhir kita adalah seekor kucing.

Jadi ini membawa kita pada pertanyaan,

Apa Itu Meningkatkan?

Boosting adalah teknik pembelajaran ensembel yang menggunakan sekumpulan algoritme Machine Learning untuk mengonversi pelajar yang lemah menjadi pelajar yang kuat untuk meningkatkan akurasi model.

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

Apa Itu Meningkatkan - Meningkatkan Pembelajaran Mesin - Edureka

Seperti yang saya sebutkan Boosting adalah metode pembelajaran ensemble, tapi apa sebenarnya pembelajaran ensemble itu?

Apa Itu Ensemble Dalam Pembelajaran Mesin?

Pembelajaran ensemble merupakan metode yang digunakan untuk meningkatkan performa model Machine Learning dengan menggabungkan beberapa peserta didik. Jika dibandingkan dengan model tunggal, jenis pembelajaran ini membangun model dengan peningkatan efisiensi dan akurasi. Inilah mengapa metode ansambel digunakan untuk memenangkan kompetisi pasar terkemuka seperti kompetisi rekomendasi Netflix, kompetisi Kaggle, dan sebagainya.

Apa Itu Ensemble Learning - Meningkatkan Pembelajaran Mesin - Edureka

perbedaan antara html dan xml

Di bawah ini saya juga telah membahas perbedaan antara Boosting dan Bagging.

Meningkatkan vs Mengantongi

Pembelajaran ensemble dapat dilakukan dengan dua cara:

  1. Ansambel berurutan, dikenal sebagai meningkatkan , di sini pelajar yang lemah diproduksi secara berurutan selama fase pelatihan. Performa model ditingkatkan dengan menetapkan bobot yang lebih tinggi ke sampel sebelumnya yang salah diklasifikasikan. Contoh peningkatan adalah algoritma AdaBoost.

  2. Set paralel , lebih dikenal sebagai mengantongi , di sini peserta didik yang lemah diproduksi secara paralel selama fase pelatihan. Kinerja model dapat ditingkatkan dengan melatih secara paralel sejumlah pelajar yang lemah pada kumpulan data yang di-bootstrap. Contoh bagging adalah Random Forest algoritma.

Di blog ini, saya akan fokus pada metode Boosting, jadi di bagian bawah kita akan memahami cara kerja algoritma boosting.

Bagaimana Cara Kerja Boosting Algorithm?

Prinsip dasar di balik kerja algoritme pendorong adalah untuk menghasilkan banyak pelajar yang lemah dan menggabungkan prediksi mereka untuk membentuk satu aturan yang kuat. Aturan lemah ini dihasilkan dengan menerapkan algoritme Machine Learning dasar pada distribusi kumpulan data yang berbeda. Algoritme ini menghasilkan aturan yang lemah untuk setiap iterasi. Setelah beberapa kali pengulangan, pelajar yang lemah digabungkan untuk membentuk pelajar yang kuat yang akan memprediksi hasil yang lebih akurat.

Bagaimana Cara Kerja Boosting Algorithm - Boosting Machine Learning - Edureka

Berikut cara kerja algoritme:

Langkah 1: Algoritme dasar membaca data dan memberikan bobot yang sama untuk setiap observasi sampel.

Langkah 2: Prediksi salah yang dibuat oleh pelajar dasar diidentifikasi. Pada iterasi berikutnya, prediksi palsu ini ditetapkan ke pelajar dasar berikutnya dengan bobot yang lebih tinggi pada prediksi yang salah ini.

Langkah 3: Ulangi langkah 2 hingga algoritme dapat mengklasifikasikan keluaran dengan benar.

Oleh karena itu, tujuan utama Boosting adalah untuk lebih fokus pada prediksi yang salah diklasifikasikan.

Sekarang setelah kita mengetahui cara kerja algoritme peningkatan, mari kita pahami berbagai jenis teknik peningkatan.

Jenis Boosting

Ada tiga cara utama untuk melakukan boosting:

  1. Adaptive Boosting atau AdaBoost

  2. Peningkatan Gradien

  3. XGBoost

Saya akan membahas dasar-dasar di balik masing-masing jenis ini.

Peningkatan Adaptif

  • AdaBoost diimplementasikan dengan menggabungkan beberapa pelajar yang lemah menjadi satu pelajar yang kuat.

  • Pelajar yang lemah di AdaBoost memperhitungkan fitur input tunggal dan menggambar pohon keputusan terpisah yang disebut decision stump. Setiap pengamatan ditimbang secara seimbang saat menggambar tunggul keputusan pertama.

  • Hasil dari keputusan tunggul pertama dianalisis dan jika ada observasi yang salah diklasifikasikan, mereka diberi bobot yang lebih tinggi.

  • Posting ini, tunggul keputusan baru diambil dengan mempertimbangkan pengamatan dengan bobot lebih tinggi sebagai lebih signifikan.

  • Sekali lagi, jika ada observasi yang salah diklasifikasikan, mereka diberi bobot lebih tinggi dan proses ini berlanjut sampai semua observasi masuk ke kelas yang tepat.

  • Adaboost dapat digunakan untuk masalah klasifikasi dan berbasis regresi, namun lebih umum digunakan untuk tujuan klasifikasi.

Peningkatan Gradien

Peningkatan Gradien juga didasarkan pada pembelajaran ensembel berurutan. Di sini pembelajar dasar dihasilkan secara berurutan sedemikian rupa sehingga pelajar dasar saat ini selalu lebih efektif daripada yang sebelumnya, yaitu keseluruhan model meningkat secara berurutan dengan setiap iterasi.

Perbedaan dalam jenis peningkatan ini adalah bahwa bobot untuk hasil yang salah diklasifikasikan tidak bertambah, sebagai gantinya, metode Peningkatan Gradien mencoba mengoptimalkan fungsi kerugian peserta sebelumnya dengan menambahkan model baru yang menambahkan peserta yang lemah untuk mengurangi fungsi kerugian.

Ide utamanya di sini adalah untuk mengatasi kesalahan dalam prediksi peserta sebelumnya. Jenis penguat ini memiliki tiga komponen utama:

  1. Fungsi kerugian yang perlu diperbaiki.

  2. Pelajar yang lemah untuk menghitung prediksi dan membentuk pelajar yang kuat.

  3. Sebuah Model Aditif yang akan mengatur fungsi kerugian.

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

XGBoost

XGBoost adalah versi lanjutan dari metode peningkatan Gradien, secara harfiah berarti Peningkatan Gradien eXtreme. XGBoost dikembangkan oleh Tianqi Chen, termasuk dalam kategori Komunitas Pembelajaran Mesin Terdistribusi (DMLC).

Tujuan utama dari algoritma ini adalah untuk meningkatkan kecepatan dan efisiensi komputasi. Algoritma Gradient Descent Boosting menghitung keluaran pada tingkat yang lebih lambat karena mereka menganalisis kumpulan data secara berurutan, oleh karena itu XGBoost digunakan untuk meningkatkan atau sangat meningkatkan kinerja model.

XGBoost - Meningkatkan Pembelajaran Mesin - Edureka

XGBoost dirancang untuk fokus pada kecepatan komputasi dan efisiensi model. Fitur utama yang disediakan oleh XGBoost adalah:

  • Parallelly menciptakan pohon keputusan.

  • Menerapkan metode komputasi terdistribusi untuk mengevaluasi model besar dan kompleks.

  • Menggunakan Out-of-Core Computing untuk menganalisis kumpulan data yang sangat besar.

  • Menerapkan pengoptimalan cache untuk memanfaatkan sumber daya dengan sebaik-baiknya.

Jadi iniberbagai jenis algoritme Boosting Machine Learning. Untuk membuat hal-hal menarik, pada bagian di bawah ini kita akan menjalankan demo untuk melihat bagaimana algoritma boosting dapat diimplementasikan dengan Python.

Meningkatkan Pembelajaran Mesin Dengan Python

Penafian singkat: Saya akan menggunakan Python untuk menjalankan demo ini, jadi jika Anda tidak tahu Python, Anda dapat membuka blog berikut:

  1. Cara Belajar Python 3 dari Awal - Panduan Pemula

Sekarang saatnya mengotori tangan Anda dan mulai membuat kode.

Pernyataan masalah: Mempelajari kumpulan data jamur dan membuat model Pembelajaran Mesin yang dapat mengklasifikasikan jamur sebagai jamur beracun atau tidak, dengan menganalisis fitur-fiturnya.

Deskripsi Kumpulan Data: Kumpulan data ini memberikan penjelasan rinci tentang sampel hipotetis sesuai dengan 23 spesies jamur insang. Setiap spesies diklasifikasikan sebagai jamur yang dapat dimakan atau yang tidak dapat dimakan (beracun).

Logika: Untuk membangun model Machine Learning dengan menggunakan salah satu algoritma Boosting untuk memprediksi apakah jamur dapat dimakan atau tidak.

Langkah 1: Impor paket yang diperlukan

dari sklearn.ensemble impor AdaBoostClassifier dari sklearn.preprocessing impor LabelEncoder dari sklearn.tree import DecisionTreeClassifier impor panda sebagai pd # Impor fungsi train_test_split dari sklearn.model_selection import train_test_split #Import scikit-learn modul metrik untuk perhitungan metrik akurasi dari

Langkah 2: Impor kumpulan data

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

Langkah 3: Pemrosesan Data

#Tentukan nama kolom dataset.columns = ['target', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor', 'gill-attachment', 'gill-spacing ',' ukuran-insang ',' warna-insang ',' bentuk-tangkai ',' akar-tangkai ',' batang-permukaan-di atas-cincin ',' batang-permukaan-di bawah-cincin ',' warna-tangkai -di atas-cincin ',' batang-warna-di bawah-cincin ',' jenis kerudung ',' warna-kerudung ',' nomor-cincin ',' jenis-cincin ',' warna-cetakan-spora ',' populasi ',' habitat '] untuk label dalam dataset.columns: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Menampilkan informasi tentang set data print (dataset.info ( )) Int64Index: 8124 entri, 6074 hingga 686 Kolom data (total 23 kolom): target 8124 non-null int32 cap-shape 8124 non-null int32 cap-surface 8124 non-null int32 cap-color 8124 non-null int32 memar 8124 non-null int32 odor 8124 non-null int32 gill-attachment 8124 non-null int32 gill-spacing 8124 non-null int32 ukuran insang 8124 non-null int32 warna insang 8124 non-null int32 stalk-shape 8124 non-null int32 stalk-root 8124 non-null int32 tangkai-permukaan-di atas-ring 8124 non-null int32 tangkai-permukaan-bawah-cincin 8124 non-null int32 tangkai-warna-di atas-ring 8124 non-null int32 tangkai-warna-di bawah-cincin 8124 non-null int32 kerudung- type 8124 non-null int32 veil-color 8124 non-null int32 ring-number 8124 non-null int32 ring-type 8124 non-null int32 spore-print-color 8124 populasi int32 non-null 8124 non-null int32 habitat 8124 non- null int32 dtypes: int32 (23) penggunaan memori: 793,4 KB

Langkah 4: Penyambungan Data

X = set data.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: Buat model

model = DecisionTreeClassifier (criterion = 'entropy', max_depth = 1) AdaBoost = AdaBoostClassifier (base_estimator = model, n_estimators = 400, learning_rate = 1)

Dalam potongan kode di atas, kami telah mengimplementasikan algoritma AdaBoost. Fungsi 'AdaBoostClassifier' mengambil tiga parameter penting:

  • base_estimator: Estimator dasar (pelajar lemah) adalah Decision Trees secara default
  • n_estimator: Bidang ini menentukan jumlah pelajar dasar yang akan digunakan.
  • learning_rate: Kolom ini menentukan kecepatan pembelajaran, yang telah kita setel ke nilai default, yaitu 1.
#Sesuaikan model dengan data pelatihan boostmodel = AdaBoost.fit (X_train, Y_train)

Langkah 6: Evaluasi Model

#Evaluate akurasi model y_pred = boostmodel.predict (X_test) predictions = metrics.accuracy_score (Y_test, y_pred) #Menghitung akurasi dalam cetakan persentase ('Akurasi:', prediksi * 100, '%') Akurasi adalah: 100.0%

Kami telah menerima akurasi 100% yang sempurna!

Jadi dengan ini, kita mengakhiri Blog Pembelajaran Mesin Boosting ini. Jika Anda ingin mempelajari lebih lanjut tentang Machine Learning, Anda dapat membaca blog ini:

  1. fungsi sortir c ++

Jika Anda ingin mendaftar untuk kursus lengkap tentang Kecerdasan Buatan dan Pembelajaran Mesin, Edureka memiliki kurasi khusus yang akan membuat Anda mahir dalam teknik-teknik seperti Supervised Learning, Unsupervised Learning, dan Natural Language Processing. Ini mencakup pelatihan tentang kemajuan terbaru dan pendekatan teknis dalam Kecerdasan Buatan & Pembelajaran Mesin seperti Pembelajaran Mendalam, Model Grafis, dan Pembelajaran Penguatan.