Scikit belajar - Pembelajaran Mesin menggunakan Python



Scikit belajar blog akan memperkenalkan anda kepada Machine Learning di python. Ini termasuk kes penggunaan di mana kita akan melaksanakan regresi logistik menggunakan scikit belajar.

Dalam blog ini, kita akan membincangkan Scikit belajar di python. Sebelum bercakap mengenai Scikit belajar, seseorang mesti memahami konsep pembelajaran mesindan mesti tahu menggunakan . Dengan pembelajaran mesin, anda tidak perlu mengumpulkan pandangan anda secara manual. Anda hanya memerlukan algoritma dan mesin akan melakukan selebihnya untuk anda! Bukankah ini menarik? Scikit belajar adalah salah satu daya tarikan di mana kita dapat melaksanakan pembelajaran mesin menggunakan Python. Iaadalah perpustakaan pembelajaran mesin percuma yang mengandungi alat mudah dan cekap untuk analisis data dan tujuan perlombongan.Saya akan membimbing anda melalui topik berikut, yang akan menjadi asas untuk blog yang akan datang:

Apakah pembelajaran Mesin?

Pembelajaran mesin adalah sejenis kecerdasan buatan yang membolehkan aplikasi perisian belajar dari data dan menjadi lebih tepat dalam meramalkan hasil tanpa campur tangan manusia. Tetapi bagaimana ia berlaku? Untuk itu, mesin perlu dilatih mengenai beberapa data dan berdasarkan itu, ia akan mengesan corak untuk membuat model.Proses memperoleh pengetahuan dari data dan memberikan pandangan yang kuat adalah mengenai pembelajaran mesin. Rujuk gambar di bawah untuk mendapatkan pemahaman yang lebih baik mengenai cara kerjanya:





Pembelajaran Mesin - Belajar Scikit - Edureka

Dengan menggunakan data, sistem mempelajari algoritma dan kemudian menggunakannya untuk membina model ramalan. Kemudian, kami menyesuaikan model atau meningkatkan ketepatan model menggunakan data maklum balas. Dengan menggunakan data maklum balas ini, kami menyesuaikan model dan meramalkan tindakan pada set data baru. Kami akanberbincang a kes penggunaan salah satu pendekatan algoritma di mana kami akan melatih dan menguji data yang akan membantu anda memberi gambaran yang lebih baik sama ada ia sesuai untuk masalah tertentu anda atau tidak.



jika penyataan dalam pertanyaan sql

Seterusnya, terdapat tiga jenis pembelajaran mesin:

    • Pembelajaran yang diselia : Ini adalah proses pembelajaran algoritma dari set data latihan. Pembelajaran yang diawasi adalah di mana anda menghasilkan fungsi pemetaan antara pemboleh ubah input (X) dan pemboleh ubah output (Y) dan anda menggunakan algoritma untuk menghasilkan fungsi di antara mereka. Ia juga dikenal sebagai model prediktif yang merujuk kepada proses membuat ramalan menggunakan data. Beberapa algoritma merangkumi Linear Regression, Logistic Regression, Decision tree, Random forest dan Naive Bayes classifier. Kami akan membincangkan lebih lanjut mengenai kes penggunaan pembelajaran yang diawasi di mana kami melatih mesin menggunakan regresi logistik .
    • Pembelajaran Tanpa Pengawasan : Ini adalah proses di mana model dilatih menggunakan maklumat yang tidak dilabel. Proses ini dapat digunakan untuk mengumpulkan data input dalam kelas berdasarkan sifat statistiknya. Pembelajaran tanpa pengawasan juga disebut sebagai canalisis kilauan yang bermaksud pengelompokan objek berdasarkan maklumat yang terdapat dalam data yang menerangkan objek atau hubungannya. Tujuannya adalah bahawa objek dalam satu kumpulan harus serupa antara satu sama lain tetapi berbeza dari objek dalam kumpulan lain. Beberapa algoritma merangkumi K-means clustering, Hierarchical clustering dll.
    • Pembelajaran pengukuhan: Pembelajaran pengukuhan adalah pembelajaran dengan berinteraksi dengan ruang atau persekitaran.Ejen RL belajar dari akibat tindakannya, dan bukannya diajar secara eksplisit. Ia memilih tindakan berdasarkan pengalaman masa lalu (eksploitasi) dan juga dengan pilihan baru (penerokaan).

Gambaran keseluruhan Scikit Learn

Scikit learn adalah perpustakaan yang digunakan untuk melakukan pembelajaran mesin di Python. Scikit learn adalah perpustakaan sumber terbuka yang dilesenkan di bawah BSD dan dapat digunakan kembali dalam pelbagai konteks, mendorong penggunaan akademik dan komersial. Ia menyediakan pelbagai algoritma pembelajaran yang diawasi dan tidak diawasi di Python.Scikit belajar terdiri daripada algoritma dan perpustakaan yang popular. Selain itu, ia juga mengandungi pakej berikut:



  • NumPy
  • Matplotlib
  • SciPy (Python Saintifik)

Untuk melaksanakan pembelajaran Scikit, pertama-tama kita perlu mengimport pakej di atas. Sekiranya anda tidak biasa dengan perpustakaan ini, anda boleh melihat blog-blog saya sebelumnya dan . Anda boleh memuat turun kedua paket ini menggunakan baris arahan atau jika anda menggunakan PYCharm, anda boleh memasangnya secara langsung dengan pergi ke tetapan anda dengan cara yang sama seperti yang anda lakukan untuk pakej lain.

Seterusnya, dengan cara yang serupa, anda mesti mengimport Sklearn.Scikit belajar dibina berdasarkan SciPy (Scientific Python) yang mesti dipasang sebelum anda dapat menggunakan Scikit-learn. Anda boleh merujuknya laman web untuk memuat turun yang sama. Juga, pasang pakej Scipy dan roda jika tidak ada, anda boleh memasukkan arahan di bawah:

memasang pip scipy

Saya telah memuat turun dan memasangnya, anda boleh melihat tangkapan skrin di bawah untuk sebarang kekeliruan.

Setelah mengimport perpustakaan di atas, mari kita menggali lebih mendalam dan memahami bagaimana sebenarnya Scikit belajar digunakan.

Scikit belajar dilengkapi dengan kumpulan data contoh, seperti iris dan digit . Anda boleh mengimport set data dan bermain-main dengannya. Selepas itu, anda harus mengimport SVM yang bermaksud Mesin Vektor Sokongan. SVM adalah satu bentuk pembelajaran mesin yang digunakan untuk menganalisis data.

Mari kita ambil contoh di mana kita akan mengambil digit set data dan ia akan mengkategorikan nombor untuk kita, sebagai contoh- 0 1 2 3 4 5 6 7 8 9. Rujuk kod di bawah:

import matplotlib.pyplot sebagai plt dari set data import sklearn dari sklearn import svm digit = datasets.load_digits () print (digits.data)

Pengeluaran -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Di sini kita baru sahaja mengimport perpustakaan, SVM, set data dan mencetak data. Kumpulan data digit yang panjang di mana data disimpan. Ini memberikan akses ke ciri-ciri yang dapat digunakan untuk mengklasifikasikan digit sampel. Seterusnya, anda juga boleh mencuba beberapa operasi lain seperti sasaran, gambar dan lain-lain. Pertimbangkan contoh di bawah:

import matplotlib.pyplot sebagai plt dari set data import sklearn dari sklearn import svm digit = datasets.load_digits () print (digits.target) print (digits.images [0])

Pengeluaran -

[0 1 2 ..., 8 9 8] // sasaran data [[0. 0. 5. 13. 9. 1. 0. 0.] // gambar data [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Seperti yang anda lihat di atas, digit sasaran dan gambar digit dicetak. digit.target memberikan kebenaran asas untuk digit set data, itu adalah nombor yang sesuai dengan setiap gambar digit. Selanjutnya, data selalu merupakan array 2D yang memiliki bentuk (n_sampel, n_features), walaupun data asalnya mungkin memiliki bentuk yang berbeda. Tetapi bagi digit, setiap sampel asal adalah gambar bentuk (8,8) dan dapat diakses menggunakan digit . imej.

Belajar dan Meramal

Seterusnya, dalam pembelajaran Scikit, kami telah menggunakan set data (contoh 10 kelas yang mungkin, digit dari sifar hingga sembilan) dan kami perlu meramalkan digit ketika gambar diberikan. Untuk meramalkan kelas, kita memerlukan penganggar yang membantu meramalkan kelas yang menjadi contoh sampel yang tidak dapat dilihat. Dalam Scikit belajar, kita mempunyai estimator untuk klasifikasi yang merupakan objek python yang menerapkan kaedahnya sesuai (x, y) dan ramalkan (T). Mari kita perhatikan contoh berikut:

import matplotlib.pyplot sebagai plt dari sket data import dari sklearn import svm digit = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // latih cetakan data clf.fit (x, y) ('Prediction:', clf.predict (digits.data [-1]) ) // ramalkan data plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'terdekat') plt.show ()

Pengeluaran -

1796
Ramalan: [8]


Dalam contoh di atas, kami pertama kali menemui panjang dan memuatkan 1796 contoh. Seterusnya, kami telah menggunakan data ini sebagai data pembelajaran, di mana kami perlu menguji elemen terakhir dan elemen negatif pertama. Kita juga perlu memeriksa sama ada mesin telah meramalkan data yang betul atau tidak. Untuk itu, kami telah menggunakan Matplotlib di mana kami telah memaparkan gambar digit.Jadi untuk membuat kesimpulan, anda mempunyai data digit, anda mendapat sasaran, anda sesuai dan meramalkannya dan oleh itu anda mesti berjaya! Ia sangat cepat dan mudah, bukan?

pelaksanaan hashmap dalam kod java

Anda juga dapat memvisualisasikan label sasaran dengan gambar, rujuk kod di bawah:

import matplotlib.pyplot sebagai plt dari set data import sklearn dari digit skvarn import svm = datasets.load_digits () # Sertai gambar dan label sasaran dalam senarai gambar_dan_labels = senarai (zip (digits.images, digits.target)) # untuk setiap elemen dalam senarai untuk indeks, (gambar, label) dalam jumlah (gambar_dan_label [: 8]): # menginisialisasi subplot 2X4 pada kedudukan i + 1-th plt.subplot (2, 4, indeks + 1) # Paparkan gambar dalam semua subplot plt.imshow (gambar, cmap = plt.cm.gray_r, interpolation = 'terdekat') # Tambahkan tajuk untuk setiap subplot plt.title ('Latihan:' + str (label)) # Tunjukkan plotnya. tunjuk ()

Pengeluaran-


Seperti yang anda lihat dalam kod di atas, kami telah menggunakan fungsi 'zip' untuk menggabungkan gambar dan label sasaran dalam senarai dan kemudian menyimpannya ke dalam pemboleh ubah, katakan gambar_dan_label. Selepas itu, kami telah mengindeks lapan elemen pertama dalam grid 2 hingga 4 pada setiap kedudukan. Selepas itu, kami baru sahaja mempamerkan gambar dengan bantuan Matplotlib dan menambahkan tajuknya sebagai 'latihan'.

Gunakan Kes - Ramalan menggunakan Regresi Logistik

Pernyataan masalah - Sebuah syarikat kereta telah mengeluarkan SUV baru di pasaran. Dengan menggunakan data sebelumnya mengenai penjualan SUV mereka, mereka ingin meramalkan kategori orang yang mungkin berminat membeli ini.

Untuk ini, mari kita lihat set data di mana saya ada UserId, jantina, umur, anggaran gaji dan dibeli sebagai lajur. Ini hanyalah contoh set data, anda boleh memuat turun keseluruhan set data dari di sini . Sebaik sahaja kami mengimport data dalam pyCharm, ia kelihatan seperti ini.

Sekarang mari kita memahami data ini. Seperti yang anda lihat dalam set data di atas, kami mempunyai kategori seperti id, jantina, umur dan lain-lain. Sekarang berdasarkan kategori ini, kami akan melatih mesin kami dan meramalkan no. pembelian. Jadi di sini, kita ada pemboleh ubah bebas sebagai 'umur', 'gaji yang diharapkan' dan pemboleh ubah bersandar sebagai ‘dibeli’. Sekarang kita akan menerapkan pembelajaran yang diselia, i.e. algoritma regresi logistik untuk mengetahui jumlah pembelian menggunakan data yang ada.

Pertama, mari dapatkan gambaran keseluruhan mengenai regresi logistik.

Regresi Logistik - Regresi Logistik menghasilkan hasil dalam format binari yang digunakan untuk meramalkan hasil pemboleh ubah bersandar kategorik. Ia paling banyak digunakan apabila pemboleh ubah bersandar adalah binari, iaitu jumlah kategori yang tersedia adalah dua seperti, output regresi logistik yang biasa adalah -

  • Ya dan tidak
  • Betul dan Salah
  • Tinggi dan rendah
  • Lulus dan Gagal

Sekarang untuk bermula dengan kod, pertama-tama kita akan mengimport perpustakaan ini - Numpy, Matplotlib dan Pandas. Cukup mudah untuk mengimport panda di Pycharm dengan mengikuti langkah-langkah berikut:

Tetapan -> Tambah Pakej -> Pandas -> Pasang

Selepas ini, kami akan mengimport set data dan pemboleh ubah bersandar berasingan (dibeli) dan pemboleh ubah bebas (umur, gaji) dengan:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. nilai y = dataset.iloc [:, 4]. nilai cetak (X) cetak (y)

Langkah seterusnya adalah melatih dan menguji data. Strategi umum adalah mengambil semua data berlabel dan dibahagikan kepada subset latihan dan ujian, yang biasanya diambil dengan nisbah 70-80% untuk subset latihan dan 20-30% untuk subset ujian. Oleh itu, kami telah membuat set Latihan dan Ujian menggunakan cross_validation.

dari sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0)

Kami juga dapat meningkatkan nilai input untuk kinerja yang lebih baik menggunakan StandarScaler seperti yang ditunjukkan di bawah:

dari sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Sekarang kita akan membuat model Logistik Regresi kami.

dari sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Kami boleh menggunakan ini dan meramalkan hasil set ujian kami.

y_pred = classifier.predict (Ujian X_)

Sekarang, kita dapat memeriksa berapa ramalan yang tepat dan berapa ramalan yang tidak digunakan matriks kekeliruan . Mari kita tentukan Y sebagai contoh positif dan N sebagai contoh negatif. Keempat hasil dirumuskan dalam matriks kekeliruan 2 * 2, seperti yang ditunjukkan di bawah:

dari sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) cetak (cm)

Pengeluaran-

[[65 3] [8 24]]

Seterusnya, berdasarkan matriks kekeliruan, kita dapat mengira ketepatannya. Jadi dalam contoh di atas, ketepatannya adalah:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Kami telah melakukan ini secara manual! Sekarang mari kita lihat bagaimana mesin mengira yang sama untuk kita, untuk itu kita mempunyai fungsi 'ketepatan_score' terbina dalam yang mengira ketepatan dan mencetaknya, seperti yang ditunjukkan di bawah:

dari sklearn.metrik import ketepatan_score // import fungsi ketepatan_cetak cetak (ketepatan_ skor (y_test, y_pred) * 100) // mencetak ketepatan

Pengeluaran -

89.0

Hore! Oleh itu, kami berjaya melaksanakan regresi logistik menggunakan pembelajaran Scikit dengan ketepatan 89%.

Tekan di sini untuk mendapatkan sumber lengkap ramalan di atas menggunakan perpustakaan belajar Python Scikit.

Dengan ini, kami telah merangkumi salah satu daripada banyak algoritma popular yang ditawarkan python.Kami telah membahas semua asas Scikit mempelajari perpustakaan,jadi anda boleh mula berlatih sekarang. Semakin banyak anda berlatih, semakin banyak anda akan belajar. Nantikan blog tutorial python selanjutnya!

cara membuat timbunan di java

Ada soalan untuk kami? Sila sebutkan di bahagian komen dari blog 'Scikit learn' ini dan kami akan menghubungi anda secepat mungkin. Untuk mendapatkan pengetahuan mendalam tentang Python bersama dengan pelbagai aplikasinya, anda boleh untuk latihan dalam talian secara langsung dengan sokongan 24/7 dan akses seumur hidup.