Rumah >Peranti teknologi >industri IT >Primer pada Pembelajaran Mesin dengan Python

Primer pada Pembelajaran Mesin dengan Python

Christopher Nolan
Christopher Nolanasal
2025-02-10 15:54:09793semak imbas

A Primer on Machine Learning with Python

Sepanjang dekad yang lalu, pembelajaran mesin telah berpindah dari makmal penyelidikan saintifik ke aplikasi web dan mudah alih setiap hari. Pembelajaran mesin membolehkan permohonan anda melaksanakan tugas -tugas yang sukar sebelum ini, seperti mengesan objek dan wajah dalam imej, mengesan spam dan kebencian, dan menghasilkan balasan pintar untuk aplikasi e -mel dan mesej.

bagaimanapun, melakukan pembelajaran mesin pada asasnya berbeza daripada pengaturcaraan klasik. Dalam artikel ini, anda akan mempelajari asas -asas pembelajaran mesin dan membuat model asas yang dapat meramalkan spesies bunga berdasarkan pengukuran bunga.

mata utama

Pembelajaran mesin telah berkembang dari makmal penyelidikan saintifik ke aplikasi web dan mudah alih setiap hari, membolehkan aplikasi melaksanakan tugas yang sebelum ini sukar untuk diprogramkan.
  • Pembelajaran mesin bergantung pada pengalaman, melatih model melalui contoh, dan bukannya memberikan peraturan kepada mereka. Terdapat pelbagai kategori algoritma pembelajaran mesin, yang masing -masing dapat menyelesaikan masalah tertentu: pembelajaran yang diawasi, pembelajaran tanpa pengawasan, dan pembelajaran tetulang.
  • Python telah menjadi bahasa pembelajaran mesin yang popular kerana kesederhanaan, kebolehbacaan dan ekosistem yang luas termasuk perpustakaan dan rangka kerja seperti Scikit-learn, Tensorflow, dan Pytorch. Walau bagaimanapun, memahami konsep asas pengaturcaraan Python, perpustakaan seperti numpy, panda, dan matplotlib, serta statistik dan kebarangkalian adalah prasyarat.
  • Proses melaksanakan model pembelajaran mesin termasuk menentukan masalah, mengumpul data, memisahkan dataset ke dalam latihan dan set ujian, membina model, dan menilai prestasinya. Teknik seperti pemisahan ujian silang dan latihan, serta petunjuk seperti ketepatan, ketepatan, penarikan balik dan skor F1, boleh digunakan untuk mengesahkan prestasi model.
Bagaimana mesin pembelajaran berfungsi?

Pengaturcaraan klasik bergantung pada masalah yang jelas yang dapat dipecahkan ke dalam kelas, fungsi, dan perintah yang berlainan. Pembelajaran mesin, sebaliknya, bergantung kepada pembangunan tingkah laku berdasarkan pengalaman. Daripada menyediakan peraturan kepada model pembelajaran mesin, anda melatih mereka melalui contoh.

Terdapat pelbagai kategori algoritma pembelajaran mesin, yang masing -masing dapat menyelesaikan masalah tertentu.

Pembelajaran yang diselia

Pembelajaran yang diselia sesuai untuk pertanyaan yang anda ingin dapatkan dari data input ke hasilnya. Ciri umum semua masalah pembelajaran yang diselia adalah kewujudan keadaan sebenar yang boleh digunakan untuk menguji model, seperti imej yang ditandakan atau data jualan sejarah.

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

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 tetulang

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.

Menyediakan persekitaran python

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 1: Tentukan masalah

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.

Langkah 2: Kumpulkan data

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>

Langkah 3: Pecahkan dataset

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.

Langkah 4: Bina model

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>

Langkah 5: Menilai model

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.

Soalan Lazim untuk Pembelajaran Mesin dengan Python (FAQ)

Apakah prasyarat untuk belajar menggunakan python untuk pembelajaran mesin?

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.

Bagaimanakah Python dibandingkan dengan bahasa pembelajaran mesin lain?

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.

Apakah algoritma pembelajaran mesin biasa yang boleh saya laksanakan menggunakan python?

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.

Bagaimana untuk mengesahkan prestasi model pembelajaran mesin python saya?

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.

Bolehkah saya menggunakan python untuk pembelajaran yang diawasi dan tidak diselia?

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.

Bagaimana menangani terlalu banyak model pembelajaran mesin?

Teknik

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.

Apakah peranan preprocessing data dalam pembelajaran mesin menggunakan Python?

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.

Bagaimana menggunakan Python untuk memvisualisasikan prestasi model pembelajaran mesin?

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.

Bolehkah saya menggunakan python untuk pemprosesan bahasa semulajadi (NLP)?

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.

Bagaimana untuk menggunakan model pembelajaran mesin yang dibina menggunakan Python?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn