Cara Memandu Python untuk Pembelajaran Mesin dari Scratch: Tutorial Langkah demi Langkah

Python adalah bahasa pembelajaran mesin paling popular hari ini, dan anda boleh mencari banyak sumber dalam talian. Adakah anda berfikir tentang memulakan pembelajaran mesin dari Python? Tutorial ini boleh membantu anda memulakan dengan jayanya.

"Bermula" selalunya yang paling sukar, terutamanya apabila terdapat terlalu banyak pilihan, dan sering sukar untuk seseorang membuat keputusan. Tujuan tutorial ini adalah untuk membantu orang baru dengan latar belakang yang sedikit dalam pembelajaran mesin Python untuk menjadi pengamal yang berpengetahuan, dan hanya perlu menggunakan bahan dan sumber percuma dalam proses. Matlamat utama sukatan pelajaran ini adalah untuk menunjukkan kepada anda sejumlah besar sumber yang ada. Tidak ada keraguan bahawa terdapat banyak sumber, tetapi yang terbaik? Yang pelengkap? Dalam apa urutan sumber-sumber ini adalah yang paling sesuai?

Pertama, saya menganggap anda bukan seorang pakar mengenai:

  • Pembelajaran mesin
  • Python
  • Mana-mana mesin pembelajaran Python, pengkomputeran saintifik atau analisis data perpustakaan

Sudah tentu, lebih baik jika anda mempunyai pemahaman asas mengenai dua topik pertama, tetapi itu tidak perlu, hanya menghabiskan lebih sedikit masa untuk memahaminya di peringkat awal.

Langkah 1: Kemahiran Python Asas

Jika kami berhasrat menggunakan Python untuk melaksanakan pembelajaran mesin, maka pemahaman asas Python adalah penting. Mujurlah, kerana Python adalah bahasa pengaturcaraan umum yang digunakan secara meluas dan aplikasinya dalam bidang pengkomputeran saintifik dan pembelajaran mesin, tidaklah sukar untuk mencari tutorial untuk pemula. Tahap pengalaman anda dalam Python dan pengaturcaraan adalah penting untuk bermula.

Pertama, anda perlu memasang Python. Kerana kita akan menggunakan pakej pengkomputeraan sains dan mesin kemudian, saya cadangkan anda memasang Anaconda. Ini adalah pelaksanaan Python gred perindustrian yang terdapat di Linux, OS X, dan Windows. Ia mengandungi pakej lengkap untuk pembelajaran mesin, termasuk numpy, scikit-learn, dan matplotlib. Ia juga termasuk iPython Notebook, persekitaran interaktif yang digunakan dalam banyak tutorial kami. Saya cadangkan memasang versi terbaru Python.

Jika anda tidak faham pengaturcaraan, saya cadangkan anda memulakan dengan buku-buku dalam talian percuma berikut sebelum beralih kepada bahan berikutnya:

  • Belajar Python the Hard Way oleh Zed A. Shaw: Pelajari Python the Hard Way

Jika anda mempunyai pengalaman pengaturcaraan tetapi tidak tahu Python atau masih sangat asas, saya cadangkan anda mengambil dua kursus berikut:

  • Program pemaju Python Google (pelajar visual yang sangat disyorkan)
  • Pengenalan kepada pengkomputeran saintifik dalam Python (M. Scott Shell dari UCSB Engineering) (pengenalan yang baik, kira-kira 60 muka surat)

Jika anda ingin mengambil kursus cepat 30 minit pada Python, lihat di bawah:

  • Belajar X dalam X minit (X = Python): Pelajari python di Y Minutes

Sudah tentu, jika anda sudah menjadi programmer Python yang berpengalaman, langkah ini boleh dilangkau. Walaupun demikian, saya cadangkan anda menggunakan dokumentasi Python kerap: Selamat datang ke Python.org

Langkah 2: Kemahiran asas pembelajaran mesin

KDnuggets 'Zachary Lipton menegaskan bahawa terdapat banyak piawai yang berbeza untuk menilai "saintis data" sekarang. Ini sebenarnya merupakan gambaran tentang bidang pembelajaran mesin, kerana apa yang saintis data yang paling banyak digunakan melibatkan pelbagai peringkat penggunaan algoritma pembelajaran mesin. Untuk menghasilkan dan mendapatkan pandangan yang lebih baik daripada mesin vektor sokongan, adakah perlu untuk menjadi sangat akrab dengan kaedah kernel? sudah tentu tidak. Sama seperti hampir segalanya dalam kehidupan, menguasai kedalaman teori berkaitan dengan aplikasi praktikal. Pengertian mendalam tentang algoritma pembelajaran mesin adalah di luar skop artikel ini. Ia biasanya memerlukan anda untuk meluangkan banyak masa di lebih banyak kursus akademik, atau sekurang-kurangnya anda perlu melakukan latihan diri sendiri intensiti tinggi.

Berita baiknya adalah, untuk latihan, anda tidak perlu mempunyai pemahaman teori PhD seperti pembelajaran mesin - anda tidak perlu belajar teori sains komputer untuk menjadi seorang programmer yang cekap.

Orang sering memuji kandungan pembelajaran mesin Andrew Ng di Coursera; Walau bagaimanapun, cadangan saya adalah untuk melayari nota kelas yang dicatatkan oleh pelajar sebelumnya dalam talian. Langkau nota khusus kepada Octave, bahasa yang sama dengan Matlab yang tidak ada kaitan dengan pembelajaran Python anda. Adalah penting untuk memahami bahawa ini bukan nota rasmi, tetapi anda boleh memahami kandungan yang relevan dalam bahan kursus Andrew Ng dari mereka. Sudah tentu, jika anda mempunyai masa dan minat, kini anda boleh pergi ke Coursera untuk belajar kursus pembelajaran mesin Andrew Ng: Pembelajaran Mesin-Stanford University | Coursera

  • Nota-nota nota rasmi dari kursus Andrew Ng: Notis kursus Pembelajaran Mesin lengkap

Selain kursus Andrew Ng yang disebutkan di atas, jika anda memerlukan perkara lain, terdapat banyak jenis kursus dalam talian untuk anda pilih. Contohnya, saya suka dengan Tom Mitchell. Berikut adalah video kuliahnya yang baru-baru ini (dengan Maria-Florina Balcan), sangat mudah didekati.

  • Kursus Pembelajaran Mesin Tom Mitchell: Pembelajaran Mesin

Anda tidak perlu semua nota dan video anda sekarang. Kaedah yang berkesan adalah untuk pergi terus ke soalan latihan khusus berikut apabila anda fikir ia sesuai, rujuk nota di atas dan bahagian video yang sesuai,

Langkah 3: Gambaran Keseluruhan Pakej Python Pengkomputeran Saintifik

Baiklah, kami telah menguasai pengaturcaraan Python dan mempunyai sedikit pemahaman tentang pembelajaran mesin. Sebagai tambahan kepada Python, terdapat juga perpustakaan perisian sumber terbuka yang biasa digunakan untuk melakukan pembelajaran mesin sebenar. Secara umum, terdapat banyak perpustakaan Python yang dikenali sebagai perpustakaan yang boleh digunakan untuk melaksanakan tugas pembelajaran komputer asas (penghakiman dalam hal ini mesti bersifat subjektif):

  • numpy-terutamanya berguna untuk objek array N-dimensi NumPy-NumPy
  • pustaka-pustaka analisis data pustaka, termasuk frasa data dan struktur lain Python Analisis Data Perpustakaan
  • matplotlib-a 2D plotting library yang menghasilkan cetakan penerbitan berkualiti Python plotting-Matplotlib 2.0.0 dokumentasi
  • scikit- learn: algoritma pembelajaran mesin untuk analisis data dan perlombongan data

Cara yang baik untuk mempelajari perpustakaan ini ialah mengkaji bahan-bahan berikut:

  • Nota Kuliah Scipy dari Gaël Varoquaux, Emmanuelle Gouillart, dan Olav Vahtras: Nota Kuliah Scipy
  • Tutorial panda ini juga sangat baik: 10 Minit ke Pandas: 10 Minit untuk panda

Anda akan melihat beberapa pakej perisian lain kemudian dalam tutorial ini, seperti Seaborn, perpustakaan visualisasi data berasaskan matplotlib. Pakej yang disebut terdahulu hanyalah sebahagian daripada beberapa perpustakaan teras yang biasa digunakan dalam pembelajaran mesin Python, tetapi pemahaman mereka harus membuat anda bingung apabila anda menemui pakej lain kemudian.

Mari kita mulakan!

Langkah 4: Belajar Pembelajaran Mesin dengan Python

Periksa dulu persiapan

  • Python: Sedia
  • Asas Pembelajaran Mesin: Bersedia
  • Numpy: Sedia
  • Pandas: Siap
  • Matplotlib: bersedia

Sudah tiba masanya untuk melaksanakan algoritma pembelajaran mesin menggunakan mesin pembelajaran Python perpustakaan standard scikit-belajar.

Banyak tutorial dan latihan berikut dilakukan menggunakan iPython (Jupyter) Notebook, persekitaran interaktif untuk melaksanakan pernyataan Python. Notebook iPython boleh didapati dalam talian atau dimuat turun ke komputer tempatan anda dengan mudah.

  • Gambaran Keseluruhan iPython Notebook dari Stanford: Tutorial IPython

Juga ambil perhatian bahawa tutorial berikut terdiri daripada siri sumber dalam talian. Jika anda merasakan bahawa kursus itu tidak sesuai, anda boleh bercakap dengan penulis. Tutorial pertama kami bermula dengan scikit-belajar, dan saya cadangkan anda melihat artikel-artikel berikut dalam rangka sebelum meneruskan tutorial.

Berikut adalah pengenalan kepada scikit-learn. Scikit-learn ialah perpustakaan pembelajaran mesin umum yang paling biasa digunakan dalam Python, yang meliputi algoritma jiran terdekat K:

  • Pengenalan kepada scikit-belajar oleh Jake VanderPlas: Jupiter Notebook Viewer

Berikut adalah pengenalan yang lebih mendalam dan lanjutan, termasuk menyiapkan projek dari pangkalan data yang terkenal:

  • Randal Olson's Machine Learning Case Nota: Jupiter Notebook Viewer

Artikel seterusnya memberi tumpuan kepada strategi untuk menilai model yang berbeza di scikit-learn, termasuk kaedah segmentasi latihan / ujian:

  • Penilaian model Kevin Markham: justmarkham / scikit-learn-videos

Langkah 5: Algoritma Asas untuk Pembelajaran Mesin di Python

Dengan asas-asas scikit-belajar, kita boleh meneroka lebih lanjut algoritma-algoritma yang lebih umum dan praktikal. Kami bermula dengan algoritma k-means clustering yang sangat terkenal, yang merupakan kaedah yang sangat mudah dan berkesan yang dapat menyelesaikan masalah pembelajaran tanpa pengawasan dengan baik:

  • K-means clustering: jakevdp / sklearn_pycon2015

Seterusnya kita boleh kembali kepada masalah klasifikasi dan mempelajari algoritma klasifikasi yang paling popular sekali:

  • Pokok keputusan: Tutorial: Pokok Keputusan

Selepas memahami masalah klasifikasi, kita boleh terus melihat ramalan berangka berterusan:

  • Regresi linear: Juperter Notebook Viewer

Kita juga boleh menggunakan idea regresi kepada masalah klasifikasi, iaitu regresi logistik:

  • regresi logistik: justmarkham / gadsdc

Langkah 6: Melaksanakan Algoritma Pembelajaran Mesin Lanjutan dalam Python

Kita sudah biasa dengan scikit-belajar, dan kini kita boleh mempelajari algoritma yang lebih maju. Yang pertama ialah mesin vektor sokongan, yang merupakan pengelas bukan linear yang bergantung pada pemetaan data ke ruang dimensi tinggi.

  • Mesin Vektor Sokongan: jakevdp / sklearn_pycon2015

Kemudian, kita boleh mempelajari hutan rawak sebagai pengelas bersepadu melalui cek persaingan Kaggle Titanic:

  • Pertandingan Titanic Kaggle (menggunakan Hutan Rawak): Jupiter Notebook Viewer

Algoritma pengurangan dimensi sering digunakan untuk mengurangkan pembolehubah yang digunakan dalam masalah. Analisis komponen utama adalah satu bentuk khas algoritma pengurangan dimensi tanpa pengawasan:

  • Algoritma pengurangan dimensi: jakevdp / sklearn_pycon2015

Sebelum beralih ke langkah 7, kita boleh mengambil sedikit masa untuk mempertimbangkan beberapa kemajuan yang dibuat dalam tempoh masa yang agak singkat.

Pertama menggunakan Python dan pustaka pembelajaran mesinnya, kita bukan sahaja mempelajari beberapa algoritma mesin yang paling biasa dan terkenal (k-terdekat jiran, k-means clustering, mesin vektor sokongan, dll), tetapi juga mempelajari integrasi yang kuat teknik (hutan rawak) dan Beberapa tugas pembelajaran mesin tambahan (algoritma pengurangan dimensi dan teknik pengesahan model). Sebagai tambahan kepada beberapa tip pembelajaran mesin asas, kami telah mula mencari beberapa toolkit yang berguna.

Kami akan mempelajari lebih lanjut tentang alat-alat baru yang diperlukan.

Langkah 7: Python Learning Deep

Pembelajaran yang mendalam adalah di mana-mana. Pembelajaran mendalam berdasarkan rangkaian saraf beberapa dekad lalu, namun kemajuan baru-baru ini telah bermula beberapa tahun lalu, dan telah meningkatkan keupayaan kognitif rangkaian saraf yang mendalam, menyebabkan minat yang meluas. Sekiranya anda belum terbiasa dengan rangkaian saraf, terdapat banyak artikel dalam KDnugget yang memperincikan banyak inovasi, pencapaian, dan pujian tentang pembelajaran mendalam baru-baru ini.

Langkah terakhir bukan untuk mengkaji semua jenis pembelajaran mendalam, tetapi untuk meneroka beberapa pelaksanaan web mudah dalam 2 perpustakaan Python kontemporari lanjutan yang mendalam. Bagi pembaca yang berminat untuk menggali pembelajaran yang mendalam, saya mengesyorkan bermula dengan buku-buku dalam talian percuma ini:

  • Rangkaian Neural dan Pembelajaran Deep oleh Michael Nielsen: Rangkaian saraf dan pembelajaran mendalam
  1. Theano

Pautan: Selamat Datang-Theano 0.8.2 dokumentasi

Theano adalah perpustakaan pembelajaran Python yang pertama yang kita bincangkan. Lihat apa pengarang Theano berkata:

Theano adalah perpustakaan Python yang membolehkan anda untuk menentukan, mengoptimumkan, dan menilai ekspresi matematik yang mengandungi pelbagai array.

Tutorial pengantar berikut menggunakan Theano untuk mempelajari pembelajaran yang mendalam adalah agak panjang, tetapi cukup baik, diterangkan dengan jelas, dan diberi nilai tinggi:

  • Tutorial Pembelajaran Deep Theano oleh Colin Raffel: Juperter Notebook Viewer

2. Caffe

Pautan: Caffe | Rangka Kerja Pembelajaran Deep

Perpustakaan lain yang akan kami uji adalah Caffe. Sekali lagi, mari bermula dengan pengarang:

Caffe adalah rangka kerja pembelajaran yang mendalam yang dibina dari ungkapan, kelajuan, dan modularity. Pusat Visi dan Pembelajaran Bwekeley dan pekerja masyarakat telah bersama-sama membangunkan Caf fe.

Tutorial ini adalah yang terbaik dalam artikel ini. Kami telah mengkaji contoh-contoh menarik di atas, tetapi tidak satu pun dari mereka boleh bersaing dengan contoh berikut, yang dapat melaksanakan DeepDream Google melalui Caffe. Ini agak menarik! Setelah menguasai tutorial, anda boleh cuba membuat pemproses anda berjalan bebas sebagai hiburan.

  • Google DeepDream dengan Caffe: google / deepdream

Saya tidak menjamin bahawa ia akan cepat atau mudah, tetapi jika anda melabur masa anda dan menyelesaikan 7 langkah di atas, anda akan memahami sejumlah besar algoritma pembelajaran mesin dan lulus perpustakaan popular (termasuk beberapa perpustakaan Cutting edge) menjadi sangat baik dalam melaksanakan algoritma dalam Python.

Artikel lanjutan

Ini adalah bahagian kedua siri tujuh langkah mengenai pembelajaran mesin dengan Python. Sekiranya anda telah mempelajari bahagian pertama siri ini, anda sepatutnya mencapai tahap pembelajaran dan kemahiran yang memuaskan; jika tidak, anda perlu Mengulas semula artikel sebelumnya, berapa banyak masa yang diperlukan bergantung pada tahap pemahaman semasa anda. Saya berjanji ia berbaloi. Selepas semakan cepat, artikel ini akan memberi tumpuan lebih jelas mengenai beberapa set tugas pembelajaran mesin yang berkaitan. Oleh kerana beberapa modul asas selamat dilangkau-asas-asas Python, asas pembelajaran mesin, dan lain-lain-kita boleh pergi terus ke algoritma pembelajaran mesin yang berbeza. Kali ini kita dapat mengkategorikan tutorial berdasarkan fungsi.

Langkah 1: Semakan dasar pembelajaran mesin & perspektif baru

Langkah pertama termasuk langkah-langkah berikut:

1. Kemahiran asas Python

2. Kemahiran asas mesin pembelajaran

3. Gambaran Keseluruhan Pakej Python

4. Memulakan Pembelajaran Mesin dengan Python: Pengenalan & Penilaian Model

5. Topik pembelajaran mesin pada Python: k-means clustering, keputusan pokok, regresi linear & regresi logistik

6. Matlamat pembelajaran mesin lanjutan pada Python: mesin vektor sokongan, hutan rawak, pengurangan dimensi PCA

7. pembelajaran dalam Python

Seperti yang disebutkan di atas, jika anda sedang bersedia untuk bermula dari awal, saya cadangkan anda membaca bahagian pertama dalam rangka. Saya juga akan menyenaraikan semua bahan pengantar untuk pemula, dan arahan pemasangan dimasukkan ke dalam artikel sebelumnya.

Walau bagaimanapun, jika anda membacanya, saya akan mulakan dengan yang paling asas:

  • Istilah utama pembelajaran mesin diterangkan oleh Matthew Mayo. Alamat: Syarat Utama Pembelajaran Mesin, Dijelaskan
  • Kemasukan Wikipedia: Klasifikasi statistik. Alamat: Klasifikasi statistik
  • Pembelajaran mesin: Gambaran lengkap dan terperinci oleh Alex Castrounis. Alamat: Pembelajaran Mesin: Tinjauan Lengkap dan Terperinci

Sekiranya anda mencari kaedah alternatif atau pelengkap untuk mempelajari asas pembelajaran mesin, saya boleh mencadangkan kuliah video oleh Shai Ben-David dan buku teks oleh Shai Shalev-Shwartz:

  • Pengenalan Shai Ben-David kepada Kuliah Video Belajar Mesin, University of Waterloo.
  • Memahami Pembelajaran Mesin: Dari Teori ke Algoritma oleh Shai Ben-David & Shai Shalev-Shwartz

Ingat, saya tidak perlu membaca semua bahan pengenalan ini untuk memulakan siri saya. Video kuliah, buku teks, dan sumber lain boleh didapati apabila melaksanakan model menggunakan algoritma pembelajaran mesin atau apabila konsep yang sesuai sebenarnya digunakan dalam langkah seterusnya. Hakim keadaan tertentu.

Langkah 2: Pengelasan lebih lanjut

Mari kita mulakan dengan bahan-bahan baru, mula-mula menyatukan teknologi pengelasan kita dan memperkenalkan beberapa algoritma tambahan. Walaupun bahagian pertama artikel ini merangkumi pokok keputusan, mesin vektor sokongan, regresi logistik, dan pengelasan sintetik sintetik, kami akan menambah k-terdekat jiran, pengeluar Bayes naif, dan perceptron multilayer.

k-terdekat jiran (kNN) adalah contoh pengelas mudah dan pelajar yang malas, di mana semua pengiraan berlaku pada masa klasifikasi (bukannya berlaku semasa langkah latihan terlebih dahulu). kNN adalah bukan parametrik dan menentukan cara mengklasifikasikan dengan membandingkan contoh data dengan contoh yang terdekat.

  • Klasifikasi jiran terdekat K-menggunakan Python. Alamat: K-Nearest Neighbor klasifikasi menggunakan python

Naive Bayes adalah pengelas berdasarkan teorem Bayes. Ia mengandaikan bahawa terdapat kebebasan antara ciri-ciri dan kewujudan apa-apa ciri tertentu dalam kelas adalah bebas daripada kewujudan ciri-ciri lain dalam kelas yang sama.

  • Klasifikasi dokumen menggunakan Scikit-belajar oleh Zac Stewart. Alamat: Klasifikasi Dokumen dengan scikit-learn

Multilayer Perceptron (MLP) adalah rangkaian neural feedforward yang sederhana yang terdiri daripada pelbagai lapisan nod, di mana setiap lapisan disambung sepenuhnya ke lapisan berikutnya. Perceptron pelbagai lapisan diperkenalkan dalam versi Scikit-learn 0.18.

Pertama baca gambaran pengelas MLP dari dokumentasi Scikit-belajar, dan kemudian praktikkan menggunakan tutorial.

  • Model rangkaian neural (diselia), dokumentasi Scikit-belajar. Alamat: 1.17. Model rangkaian neural (diselia)
  • Panduan Permulaan kepada Rangkaian Neural untuk Python dan Scikit-belajar 0.18! Oleh Jose Portilla. Alamat: Panduan Permulaan kepada Rangkaian Neural dengan Python dan SciKit Belajar 0.18!

Langkah 3: Lebih banyak clustering

Sekarang kita berpaling kepada clustering, satu bentuk pembelajaran tanpa pengawasan. Dalam artikel sebelumnya, kami membincangkan algoritma k-berarti; kami memperkenalkan DBSCAN dan Maximization Expectation (EM) di sini.

Pertama, bacalah artikel pengantar ini; yang pertama adalah perbandingan cepat teknik k-means dan EM clustering, kesinambungan yang baik dalam bentuk clustering yang baru, dan yang kedua adalah teknik clustering yang tersedia dalam Scikit-learn Overview:

  • Perbandingan Teknologi Clustering: Tinjauan Teknikal Ringkas oleh Matthew Mayo. Alamat: Membandingkan Teknik Clustering: Tinjauan Teknikal Ringkas
  • Bandingkan algoritma kluster yang berbeza dalam dataset mainan, dokumentasi Scikit-belajar. Alamat: Membandingkan algoritma kluster yang berbeza pada dataset mainan

Pengoptimuman jangkaan (EM) adalah algoritma kluster probabilistik dan oleh itu melibatkan menentukan kebarangkalian bahawa suatu contoh kepunyaan kluster tertentu. EM mendekati kemungkinan maksimum atau anggaran maksimum posterior parameter dalam model statistik (Han, Kamber, dan Pei). Proses EM meleret dari satu set parameter sehingga clustering relatif terhadap k-clustering dimaksimumkan.

Mula-mula membaca tutorial mengenai algoritma EM. Seterusnya, lihat dokumentasi Scikit yang berkaitan. Akhirnya, ikuti tutorial untuk melaksanakan pengkompilan EM dengan menggunakan Python.

  • Tutorial Pengambilan Harimau (EM) Algoritma oleh Elena Sharova. Alamat: Tutorial mengenai Algoritma Memaksimumkan Harapan (EM)
  • Model campuran Gaussian, dokumentasi Scikit-learn. Alamat: 2.1. Model campuran Gaussian.
  • Pengenalan ringkas untuk membina model campuran Gaussian menggunakan Python oleh Tiago Ramalho. Alamat: Pengenalan ringkas kepada model campuran gaussian dengan python

Sekiranya model campuran Gaussian nampaknya mengelirukan pada mulanya, seksyen yang berkaitan dari dokumentasi Scikit-belajar ini harus meringankan kebimbangan yang tidak perlu:

Objek campuran Gaussian melaksanakan algoritma Maximization Expectation (EM) untuk menyesuaikan campuran model Gaussian.

Aplikasi clustering spatial berasaskan ketumpatan dan bising (DBSCAN) beroperasi dengan mengumpul mata data padat bersama-sama dan menyatakan titik data ketumpatan rendah sebagai pendiri.

Mula-mula membaca dokumentasi Scikit-belajar dan ikuti contoh pelaksanaan DBSCAN, kemudian ikuti tutorial ringkas untuk belajar:

  • Demonstrasi algoritma DBSCAN clustering, dokumentasi Scikit-learn. Alamat: Demo algoritma kluster DBSCAN
  • Algoritma kluster berasaskan kepadatan (DBSCAN) dan pelaksanaannya.

Langkah 4: Lebih banyak kaedah penyepaduan

Bahagian pertama hanya melibatkan satu kaedah penyepaduan: Random Forest (RF). RF sebagai pengelas utama telah mencapai kejayaan besar dalam beberapa tahun kebelakangan ini, tetapi ia bukanlah satu-satunya pengelas bersepadu. Kami akan melihat pembungkusan, promosi dan pengundian.

Pertama, bacalah gambaran keseluruhan pelajar-pelajar terpadu ini. Yang pertama adalah umum; yang kedua adalah bahawa mereka berkaitan dengan Scikit-belajar:

  • Pengenalan kepada Pelajar Bersepadu oleh Matthew Mayo. Alamat: Asas Sains Data: Pengenalan kepada Pelajar Ensemble
  • Kaedah integrasi dalam Scikit-belajar, dokumentasi Scikit-belajar. Alamat: 1.11. Kaedah Ensemble

Kemudian, sebelum beralih kepada kaedah integrasi baru, pelajari hutan secara rawak dengan cepat dengan tutorial baru:

  • Hutan secara rawak di Python dari Yhat. Alamat: Hutan Rawak di Python

Pembungkusan, kenaikan pangkat, dan pengundian adalah bentuk klasifikasi yang berbeza, yang semuanya membabitkan pelbagai model; Walau bagaimanapun, algoritma apa yang digunakan untuk membina model-model ini, data yang digunakan oleh model, dan bagaimana keputusan akhirnya digabungkan akan berubah dengan skema.

  • Pembungkusan: membina model berganda dari algoritma klasifikasi yang sama, dan pada masa yang sama menggunakan sampel data yang berbeza (bebas) dari latihan-Scikit-belajar untuk melaksanakan pengikat pembungkus
  • Penambahbaikan: membina model berganda dari algoritma klasifikasi yang sama, menghubungkan model satu demi satu untuk meningkatkan pembelajaran setiap model-alat Scikit-belajar seterusnya AdaBoost
  • Pengundian: membina pelbagai model dari algoritma klasifikasi yang berbeza dan kriteria penggunaan untuk menentukan bagaimana model terbaik menggabungkan-Scikit-belajar melaksanakan pengelas mengundi

Jadi mengapa menggabungkan model? Untuk mengatasi ini dari perspektif tertentu, di sini adalah gambaran mengenai bias-varians trade-offs, khusus berkaitan dengan promosi. Inilah dokumentasi Scikit-learn:

  • Penganggar tunggal berbanding pembungkusan: penguraian bias-varians, dokumentasi Scikit-belajar

Sekarang anda telah membaca beberapa bahan pengantar tentang pelajar yang terintegrasi dan mempunyai pemahaman asas tentang beberapa pengelas bersepadu tertentu, berikut cara menggunakan Scikit-belajar dari Penguasaan Pembelajaran Mesin untuk melaksanakan pengelas yang terintegrasi dalam Python:

  • Menggunakan Scikit-belajar Melaksanakan Algoritma Pembelajaran Mesin Bersepadu dalam Python oleh Jason Brownlee. Alamat: Algoritma Pembelajaran Ensemble Mesin dalam Python dengan Penguasaan Pembelajaran Belajar Mesin

Langkah 5: Meningkatkan Kecerunan

Seterusnya kita terus belajar tentang pengelas bersepadu dan meneroka salah satu algoritma pembelajaran mesin yang paling popular pada masa kita. Peningkatan kecerunan baru-baru ini mempunyai kesan yang signifikan terhadap pembelajaran mesin dan telah menjadi salah satu algoritma yang paling popular dan berjaya dalam kompetisi Kaggle.

Mula-mula, bacalah ikhtisar kecerunan gred:

  • Kemasukan Wikipedia: Rangsangan kecerunan

Seterusnya, ketahui mengapa meningkatkan kecerunan adalah kaedah "paling berjaya" dalam kompetisi Kaggle:

  • Mengapa meningkatkan kecerunan menyelesaikan banyak masalah Kaggle dengan sempurna? Kenapa, mengapa Gradient meningkatkan kerja dengan begitu baik untuk banyak masalah Kaggle?
  • Master Kaggle menjelaskan apa yang meningkatkan kecerahan, oleh Ben Gorman. Alamat: A Master Kaggle Menjelaskan Meningkatkan Kecerunan

Walaupun Scikit-belajar mempunyai pelaksanaan kecerunan sendiri, kita akan mengubahnya sedikit, menggunakan perpustakaan XGBoost, kita menyebutkan bahawa ini adalah pelaksanaan yang lebih cepat.

Pautan berikut memberikan beberapa maklumat tambahan mengenai perpustakaan XGBoost, dan meningkatkan kecerunan (jika perlu):

  • Kemasukan Wikipedia: XGBoost. Alamat: Xgboost-Wikipedia
  • Perpustakaan XGBoost di Ghub. Alamat: dmlc / xgboost
  • Dokumentasi XGBoost. Alamat: Pengenalan kepada Pokok Boosted

Sekarang, ikuti tutorial ini untuk membawa semuanya bersama-sama:

  • Panduan Pelaksanaan Pohon Meningkatkan Kecerunan XGBoost dalam Python oleh Jesse Steinweg-Woods. Alamat: Panduan untuk Puncak Boosted Gradient dengan XGBoost dalam Python

Anda juga boleh mengeras dengan mengikuti contoh-contoh ringkas ini:

  • Contoh XGBoost pada Kaggle (Python). Alamat: Titanic: Pembelajaran Mesin dari Bencana
  • Iris dataset dan tutorial mudah XGBoost oleh Ieva Zarina. Alamat: Iris Dataset dan Tutorial Mudah Xgboost

Langkah 6: Lebih banyak pengurangan dimensi

Pengurangan dimensi adalah menggunakan proses untuk mendapatkan satu set pemboleh ubah utama, mengurangkan pembolehubah yang digunakan untuk membina model dari bilangan awal mereka menjadi pengurangan.

Terdapat dua bentuk utama pengurangan dimensi:

  • 1. Pemilihan ciri-pilih subset ciri berkaitan. Alamat: Pemilihan ciri
  • 2. Pengekstrakan ciri-membina set ciri nilai yang bermaklumat dan tidak berlebihan. Alamat: Pengekstrakan ciri

Berikut adalah sepasang kaedah pengekstrakan ciri yang biasa digunakan.

Analisis komponen utama (PCA) adalah langkah statistik yang menggunakan transformasi ortogonal untuk mengubah satu set pemerhatian pembolehubah yang berpotensi yang berkaitan ke dalam satu set pembolehubah yang tidak berteluar secara linear dipanggil komponen utama. Bilangan komponen utama kurang daripada atau sama dengan bilangan pembolehubah asal. Transformasi ini ditakrifkan sedemikian rupa sehingga komponen utama pertama mempunyai varians terbesar yang mungkin (iaitu, mempertimbangkan sebanyak mungkin variasi dalam data)

Takrif di atas adalah dari entri Wikipedia PCA, dan anda boleh membaca selanjutnya jika anda berminat. Walau bagaimanapun, gambaran / tutorial berikut adalah sangat teliti:

  • Analisis komponen utama: 3 langkah mudah, oleh Sebastian Raschka. Alamat: Analisis Komponen Utama
Analisis Diskriminasi Linear (LDA) adalah penyebaran diskriminasi linier Fisher. Ini adalah kaedah yang digunakan dalam statistik, pengiktirafan corak, dan pembelajaran mesin untuk mencari ciri gabungan linear atau untuk memisahkan ciri dua atau lebih kategori objek atau peristiwa. Gabungan yang dihasilkan boleh digunakan sebagai pengelas linier atau, lebih umum, sebagai pengurangan dimensi sebelum klasifikasi berikutnya.

LDA berkait rapat dengan analisis varians (ANOVA) dan analisis regresi, yang juga cuba untuk mewakili pembolehubah bergantung sebagai gabungan linear dari ciri atau ukuran lain. Walau bagaimanapun, ANOVA menggunakan pembolehubah bebas kategori dan pembolehubah bergantung berterusan, manakala analisis diskriminasi mempunyai pembolehubah bebas yang berterusan dan pembolehubah bergantung kategori (iaitu, label kelas).

Definisi di atas juga berasal dari Wikipedia. Inilah bacaan lengkap:

  • Analisis Diskriminasi Linear-Sehingga Bit, oleh Sebastian Raschka. Alamat: Analisis Diskriminasi Linear

Adakah anda keliru dengan perbezaan sebenar antara PCA dan LDA untuk pengurangan dimensi? Sebastian Raschka menjelaskan:

Analisis diskriminasi linier (LDA) dan analisis komponen utama (PCA) adalah teknik transformasi linear yang biasa digunakan untuk pengurangan dimensi. PCA boleh digambarkan sebagai algoritma "tanpa pengawasan" kerana ia "mengabaikan" label kelas dan matlamatnya adalah untuk mencari arahan (komponen utama yang dipanggil) yang memaksimumkan varians dalam set data. Berbeza dengan PCA, LDA "diawasi" dan menghitung arah paksi ("diskriminasi linear") yang mewakili selang yang memaksimumkan jarak antar kelas.

Untuk penjelasan ringkas tentang ini, baca yang berikut:

  • Apakah perbezaan antara pengurangan dimensi antara LDA dan PCA? Oleh Sebastian Raschka. Alamat: FAQ Pembelajaran Mesin

Langkah 7: Lebih Banyak Pembelajaran Deep

Artikel sebelumnya menyediakan titik masuk untuk pembelajaran rangkaian saraf dan pembelajaran mendalam. Sekiranya anda telah belajar sejauh ini dan ingin menyatukan pemahaman anda tentang rangkaian saraf dan amalan melaksanakan beberapa model rangkaian neural biasa, teruskan membaca.

Pertama, lihat beberapa bahan asas pembelajaran yang mendalam:

  • Terma dan Keterangan Utama untuk Pembelajaran Deep oleh Matthew Mayo
  • Memahami 7 Langkah Pembelajaran Deep oleh Matthew Mayo. Alamat: 7 Langkah untuk Memahami Pembelajaran Deep

Seterusnya, cobalah beberapa gambaran ringkas / tutorial di Google TensorFlow, perpustakaan perisian sumber terbuka untuk kecerdasan mesin (rangka kerja pembelajaran yang berkesan dan hampir alat rangkaian neural yang terbaik hari ini):

  • Mesin pembelajaran melangkah batu: pengenalan kepada TensorFlow yang sesiapa sahaja boleh faham
  • Interpretasi peringkat masuk: Pengenalan TensorFlow yang noob juga boleh difahami

Akhirnya, cuba tutorial ini secara langsung dari laman web TensorFlow, yang mengimplementasikan beberapa model rangkaian neural yang paling popular dan biasa:

  • Rangkaian neural berulang, tutorial Google TensorFlow
  • Rangkaian neural convolutional, tutorial Google TensorFlow

Di samping itu, satu artikel mengenai menguasai pembelajaran dalam 7 langkah sedang dalam pembangunan, dengan memberi tumpuan kepada penggunaan API peringkat tinggi di atas TensorFlow untuk meningkatkan kemudahan dan fleksibiliti pelaksanaan model. Saya juga akan menambah pautan di sini apabila saya selesai.