Rumah >Peranti teknologi >industri IT >Primer pada Pembelajaran Mesin dengan Python
mata utama
Terdapat pelbagai kategori algoritma pembelajaran mesin, yang masing -masing dapat menyelesaikan masalah tertentu.
Pembelajaran yang diselia
Model pembelajaran yang diselia dapat menyelesaikan masalah regresi atau klasifikasi. Model regresi meramalkan kuantiti (mis. Kuantiti barang yang dijual atau harga stok), sementara masalah klasifikasi cuba menentukan kategori data input (mis. Kucing/anjing/ikan/burung, penipuan/bukan penipuan).
Klasifikasi imej, pengesanan muka, ramalan harga saham dan ramalan jualan adalah contoh masalah yang dapat diselesaikan oleh pembelajaran yang diselia.
Beberapa algoritma pembelajaran yang diawasi popular termasuk regresi linear dan regresi logistik, mesin vektor sokongan, pokok keputusan dan rangkaian saraf buatan.
Pembelajaran tanpa pengawasan sesuai untuk masalah di mana anda mempunyai data tetapi tidak hasil, tetapi mencari corak. Sebagai contoh, anda mungkin mahu mengumpulkannya ke segmen berdasarkan persamaan anda. Ini dipanggil clustering dalam pembelajaran tanpa pengawasan. Sebagai alternatif, anda mungkin mahu mengesan trafik rangkaian yang berniat jahat yang menyimpang dari aktiviti biasa perniagaan anda. Ini dipanggil pengesanan anomali, yang merupakan satu lagi tugas pembelajaran yang tidak diselia. Pembelajaran yang tidak diselia juga boleh digunakan untuk pengurangan dimensi, teknik untuk memudahkan tugas pembelajaran mesin dengan mengeluarkan ciri -ciri yang tidak relevan.
Beberapa algoritma pembelajaran yang tidak diselia yang tidak diselia termasuk K-Mean Clustering dan Analisis Komponen Utama (PCA).
Pembelajaran Pengukuhan adalah cabang pembelajaran mesin di mana ejen cuba mencapai matlamat mereka dengan berinteraksi dengan persekitaran mereka. Pembelajaran pengukuhan melibatkan tindakan, status dan ganjaran. Ejen pembelajaran tetulang yang tidak terlatih bermula dengan tindakan rawak. Setiap tindakan mengubah keadaan alam sekitar. Jika ejen mendapati dirinya dalam keadaan yang dikehendaki, dia akan menerima ganjaran. Ejen cuba mencari urutan tindakan dan menyatakan yang menjana ganjaran yang paling.
Pembelajaran tetulang digunakan dalam sistem cadangan, robotik, dan robot permainan, seperti Google's Alphago dan Alphastar.
Dalam artikel ini, kami akan memberi tumpuan kepada pembelajaran yang diawasi, kerana ia adalah cawangan pembelajaran mesin yang paling popular dan hasilnya lebih mudah untuk dinilai. Kami akan menggunakan Python kerana ia mempunyai banyak ciri dan perpustakaan yang menyokong aplikasi pembelajaran mesin. Walau bagaimanapun, konsep umum boleh digunakan untuk mana -mana bahasa pengaturcaraan dengan perpustakaan yang sama.
(jika anda tidak biasa dengan Python, FreeCodeCamp menyediakan kursus kemalangan yang hebat untuk memulakan anda.)
Salah satu perpustakaan python yang biasa digunakan dalam sains data dan pembelajaran mesin adalah Scikit-learn, yang menyediakan pelaksanaan algoritma pembelajaran mesin popular. Scikit-Learn bukan sebahagian daripada pemasangan Python asas, anda perlu memasangnya secara manual.
macOS dan Linux dipasang dengan python. Untuk memasang perpustakaan Scikit-learn, taipkan arahan berikut dalam tetingkap terminal:
<code>pip install scikit-learn</code>
atau untuk python 3:
<code>python3 -m pip install scikit-learn</code>
Pada Microsoft Windows, anda mesti memasang Python terlebih dahulu. Anda boleh mendapatkan versi terkini Windows Python 3 Installer dari laman web rasmi. Selepas Python dipasang, taipkan arahan berikut dalam tetingkap baris arahan:
<code>python -m pip install scikit-learn</code>
Sebagai alternatif, anda boleh memasang kerangka Anaconda, yang termasuk Python 3 yang mandiri serta Scikit-Learn dan banyak lagi perpustakaan untuk sains data dan pembelajaran mesin, seperti numpy , scipy > dan matplotlib . Anda boleh mencari arahan pemasangan untuk versi peribadi Anaconda percuma di laman web rasminya.
Langkah pertama dalam setiap projek pembelajaran mesin adalah untuk memahami masalah yang ingin anda selesaikan. Mendefinisikan soalan akan membantu anda menentukan jenis data yang anda perlukan untuk mengumpul dan memberi anda idea tentang algoritma pembelajaran mesin yang anda perlukan untuk digunakan.
Dalam contoh kami, kami ingin mencipta model yang meramalkan jenis bunga berdasarkan pengukuran kelopak dan panjang sepal dan lebar.
Ini adalah isu klasifikasi penyeliaan. Kita perlu mengumpul senarai pengukuran spesimen bunga yang berbeza dan spesies yang sepadan. Kami kemudian akan menggunakan data ini untuk melatih dan menguji model pembelajaran mesin yang boleh memetakan pengukuran kepada spesies.
Salah satu bahagian pembelajaran mesin yang paling rumit adalah mengumpul data untuk melatih model anda. Anda mesti mencari sumber yang boleh mengumpul jumlah data yang diperlukan untuk melatih model. Anda juga perlu mengesahkan kualiti data anda, pastikan ia mewakili situasi yang berbeza yang akan dikendalikan oleh model, dan mengelakkan mengumpul data yang mengandungi kecenderungan tersembunyi.
bernasib baik, Scikit-Learn mengandungi beberapa dataset mainan yang boleh digunakan untuk mencuba algoritma pembelajaran mesin yang berbeza. "Dataset iris" kebetulan mengandungi data tepat yang diperlukan untuk soalan kami. Kami hanya perlu memuatkannya dari perpustakaan.
kod berikut memuatkan dataset perumahan:
<code>pip install scikit-learn</code>
Set data iris mengandungi 150 pemerhatian, masing -masing dengan empat pengukuran (iris.data) dan spesies bunga sasaran (iris.target). Anda dapat melihat nama lajur data di iris.feature_names:
<code>python3 -m pip install scikit-learn</code>
iris.target mengandungi indeks berangka (0-2) salah satu daripada tiga spesies bunga yang didaftarkan dalam dataset. Nama spesies bunga boleh didapati di iris.target_names:
<code>python -m pip install scikit-learn</code>
Sebelum memulakan latihan, anda mesti memecah data ke dalam set latihan dan set ujian. Anda akan menggunakan set latihan untuk melatih model pembelajaran mesin dan menggunakan set ujian untuk mengesahkan ketepatannya.
Ini dilakukan untuk memastikan model anda tidak terlalu banyak data latihan. Overfitting adalah apabila model pembelajaran mesin anda berfungsi dengan baik pada contoh latihan tetapi tidak pada data yang tidak kelihatan. Overfitting mungkin disebabkan oleh memilih algoritma pembelajaran mesin yang salah, salah faham model, data latihan yang lemah, atau terlalu sedikit contoh latihan.
Bergantung pada jenis masalah yang anda selesaikan dan jumlah data yang anda miliki, anda mesti menentukan jumlah data yang anda ingin berikan kepada set ujian. Biasanya, apabila anda mempunyai banyak data (kira -kira puluhan ribu contoh), walaupun kira -kira 1% daripada sampel kecil sudah cukup untuk menguji model anda. Untuk dataset iris yang mengandungi sejumlah 150 rekod, kami akan memilih segmentasi 75-25.
scikit-learn mempunyai fungsi train_test_split yang memisahkan dataset ke dalam dataset latihan dan dataset ujian:
<code>from sklearn.datasets import load_iris iris = load_iris() </code>
train_test_split mendapat data dan sasaran dataset dan mengembalikan dua pasang dataset yang digunakan untuk latihan (x_train dan y_train) dan ujian (x_test dan y_test). Parameter test_size menentukan peratusan data yang akan diberikan kepada ujian (antara 0 dan 1). Parameter Stratify memastikan bahawa pelbagai latihan dan array ujian mengandungi bilangan sampel seimbang dari setiap kategori. Pembolehubah rawak wujud dalam banyak fungsi scikit-learn dan digunakan untuk mengawal penjana nombor rawak dan mencapai kebolehulangan.
Sekarang data kami sudah siap, kami boleh membuat model pembelajaran mesin dan melatihnya pada set latihan. Terdapat banyak algoritma pembelajaran mesin yang dapat menyelesaikan masalah klasifikasi yang kita hadapi. Dalam kes kami, kami akan menggunakan algoritma "regresi logistik", yang sangat cepat dan sesuai untuk masalah klasifikasi mudah yang tidak mengandungi terlalu banyak dimensi.
Kelas Logisticregression Scikit-Learn melaksanakan algoritma ini. Selepas menafikannya, kami akan melatihnya pada set latihan kami (X_TRAIN dan Y_TRAIN) dengan memanggil fungsi FIT. Ini akan menyesuaikan parameter model untuk mencari pemetaan antara nilai yang diukur dan spesies bunga.
<code>pip install scikit-learn</code>
Sekarang kita telah melatih model, kita mahu mengukur ketepatannya. Kelas Logisticregression mempunyai kaedah skor yang mengembalikan ketepatan model. Pertama, kita akan mengukur ketepatan model pada data latihan:
<code>python3 -m pip install scikit-learn</code>
Ini akan mengembalikan kira -kira 0.97, yang bermaksud model secara tepat meramalkan 97% daripada contoh latihan, yang cukup baik memandangkan kita hanya mempunyai kira -kira 37 contoh latihan setiap spesies.
Seterusnya, kami akan menyemak ketepatan model pada set ujian:
<code>python -m pip install scikit-learn</code>
Ini akan memberi kita kira -kira 95% daripada keputusan, sedikit di bawah ketepatan latihan, yang semulajadi kerana ini adalah contoh -contoh yang tidak pernah dilihat oleh model sebelum ini. Dengan mencipta set data yang lebih besar atau mencuba algoritma pembelajaran mesin lain (seperti mesin vektor sokongan), kami dapat meningkatkan lagi ketepatan model kami dan menjembatani jurang antara latihan dan prestasi ujian.
Akhirnya, kami ingin melihat cara menggunakan model yang kami terlatih pada contoh baru. Kelas LogisticRegression mempunyai fungsi ramalan yang mengambil pelbagai pemerhatian sebagai input dan mengembalikan kategori yang diramalkan. Dalam kes model pengelas bunga kita, kita perlu menyediakannya dengan pelbagai empat ukuran (panjang sepal, lebar sepal, panjang kelopak, lebar kelopak) yang akan mengembalikan integer yang mewakili kategori bunga:
<code>from sklearn.datasets import load_iris iris = load_iris() </code>
Tahniah! Anda mencipta model pembelajaran mesin pertama anda. Sekarang kita boleh menggabungkannya ke dalam aplikasi yang mengambil pengukuran dari pengguna dan mengembalikan spesies bunga:
<code>print(iris.feature_names) ''' ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] ''' </code>
Harap ini adalah langkah pertama anda untuk menjadi tuan pembelajaran mesin. Dari sini, anda boleh terus mempelajari algoritma pembelajaran mesin lain, mengetahui lebih lanjut mengenai konsep asas pembelajaran mesin, dan terus mempelajari topik yang lebih maju seperti rangkaian saraf dan pembelajaran mendalam. Dengan beberapa pembelajaran dan amalan, anda akan dapat membuat aplikasi luar biasa yang dapat mengesan objek dalam imej, memproses arahan suara, dan terlibat dalam perbualan dengan pengguna.
Untuk mula belajar menggunakan python untuk pembelajaran mesin, anda memerlukan pemahaman asas mengenai pengaturcaraan Python. Ia juga bermanfaat untuk mengenali perpustakaan seperti Numpy, Pandas, dan Matplotlib. Selain itu, pemahaman asas tentang statistik dan kebarangkalian adalah penting kerana mereka membentuk teras algoritma pembelajaran mesin.
Python adalah salah satu bahasa pembelajaran mesin yang paling popular kerana kesederhanaan dan kebolehbacaannya. Ia mempunyai pelbagai perpustakaan dan kerangka seperti Scikit-learn, tensorflow, dan pytorch yang memudahkan perkembangan model pembelajaran mesin. Bahasa lain seperti R dan Java juga digunakan dalam pembelajaran mesin, tetapi ekosistem Python yang luas menjadikannya pilihan pertama bagi banyak orang.
Perpustakaan Scikit-Learn Python menyediakan pelaksanaan pelbagai algoritma pembelajaran mesin. Sesetengah algoritma yang biasa digunakan termasuk regresi linear, regresi logistik, pokok keputusan, hutan rawak, mesin vektor sokongan, dan jiran-jiran K-terdekat. Untuk pembelajaran mendalam, anda boleh menggunakan perpustakaan seperti Tensorflow dan Pytorch.
Anda boleh menggunakan teknik seperti ujian silang dan ujian latihan untuk mengesahkan prestasi model anda. Perpustakaan Scikit-Learn Python menyediakan fungsi untuk ini. Di samping itu, anda boleh menggunakan metrik seperti ketepatan, ketepatan, penarikan balik, dan skor F1 untuk mengklasifikasikan masalah dan menggunakan kesilapan purata persegi atau rquared untuk masalah regresi.
Ya, Python menyokong pembelajaran yang diawasi dan pembelajaran tanpa pengawasan. Perpustakaan seperti Scikit-Learn boleh digunakan untuk melaksanakan algoritma pembelajaran yang diselia seperti regresi dan klasifikasi. Untuk pembelajaran tanpa pengawasan, anda boleh menggunakan algoritma kluster seperti k-means, clustering hierarki, dan dbscan.
seperti regularization, hentian awal dan keciciran rangkaian saraf boleh digunakan untuk mengendalikan overfitting. Anda juga boleh menggunakan kaedah bersepadu seperti pembungkus dan meningkatkan untuk mengurangkan overfitting.
Preprocessing data adalah langkah utama dalam pembelajaran mesin. Ia termasuk membersihkan data, memproses nilai yang hilang, pengekodan pembolehubah kategori, dan ciri skala. Python menyediakan perpustakaan seperti Pandas dan Scikit-Learn, yang boleh melakukan pra-proses yang cekap.
Anda boleh menggunakan perpustakaan seperti Matplotlib dan Seaborn untuk memvisualisasikan prestasi model anda. Perpustakaan ini menyediakan fungsi untuk plot grafik seperti matriks kekeliruan, lengkung ROC, dan lengkung pembelajaran.
Ya, Python menyediakan perpustakaan seperti NLTK dan SPACY untuk pemprosesan bahasa semula jadi. Perpustakaan ini menyediakan fungsi seperti tokenisasi, anotasi sebahagian-of-speech, pengiktirafan entiti yang dinamakan, dan analisis sentimen.
Anda boleh menggunakan kerangka web seperti Flask atau Django untuk menggunakan model pembelajaran mesin. Untuk penyebaran berskala besar, anda boleh menggunakan platform awan seperti AWS, Google Cloud, atau Azure. Mereka menyediakan perkhidmatan untuk penggunaan model, skala dan pemantauan.
Atas ialah kandungan terperinci Primer pada Pembelajaran Mesin dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!