Scikit belajar - Pembelajaran Mesin menggunakan Python



Blog Scikit learn akan memperkenalkan Anda pada Machine Learning dengan python. Ini termasuk kasus penggunaan di mana kita akan mengimplementasikan regresi logistik menggunakan scikit learn.

Di blog ini, kita akan membahas Scikit belajar dengan python. Sebelum berbicara tentang Scikit belajar, seseorang harus memahami konsep pembelajaran mesindan harus tahu cara menggunakannya . Dengan pembelajaran mesin, Anda tidak perlu mengumpulkan wawasan Anda secara manual. Anda hanya perlu algoritme dan mesin akan melakukan sisanya untuk Anda! Bukankah ini menarik? Scikit learn adalah salah satu daya tarik di mana kita dapat mengimplementasikan pembelajaran mesin menggunakan Python. Saya tadalah pustaka pembelajaran mesin gratis yang berisi alat sederhana dan efisien untuk analisis data dan tujuan penambangan.Saya akan membawa Anda melalui topik-topik berikut, yang akan menjadi dasar untuk blog yang akan datang:

Apa itu pembelajaran mesin?

Pembelajaran mesin adalah jenis kecerdasan buatan yang memungkinkan aplikasi perangkat lunak untuk belajar dari data dan menjadi lebih akurat dalam memprediksi hasil tanpa campur tangan manusia. Tapi bagaimana itu bisa terjadi? Untuk itu, mesin perlu dilatih pada beberapa data dan berdasarkan itu akan mendeteksi pola untuk membuat model.Proses mendapatkan pengetahuan dari data dan memberikan wawasan yang kuat ini adalah tentang pembelajaran mesin. Lihat gambar di bawah ini untuk mendapatkan pemahaman yang lebih baik tentang kerjanya:





MachineLearning - Scikit Learn - Edureka

adalah gelar master yang dianggap pascasarjana

Dengan menggunakan data tersebut, sistem mempelajari algoritme dan kemudian menggunakannya untuk membangun model prediktif. Nanti, kami menyesuaikan model atau kami meningkatkan akurasi model menggunakan data umpan balik. Dengan menggunakan data umpan balik ini, kami menyesuaikan model dan memprediksi tindakan pada kumpulan data baru. Kami akanmembahas a kasus penggunaan salah satu pendekatan algoritme di mana kami akan melatih dan menguji data yang akan membantu Anda memberikan gambaran yang lebih baik tentang apakah data itu cocok untuk masalah khusus Anda atau tidak.



Berikutnya, ada tiga jenis pembelajaran mesin:

    • Pembelajaran yang Diawasi : Ini adalah proses belajar algoritma dari dataset pelatihan. Pembelajaran yang diawasi adalah tempat Anda menghasilkan fungsi pemetaan antara variabel masukan (X) dan variabel keluaran (Y) dan Anda menggunakan algoritme untuk menghasilkan fungsi di antaranya. Ini juga dikenal sebagai pemodelan prediktif yang mengacu pada proses membuat prediksi menggunakan data. Beberapa algoritma tersebut antara lain Linear Regression, Logistic Regression, Decision tree, Random forest dan Naive Bayes classifier. Kami akan membahas lebih lanjut kasus penggunaan pembelajaran yang diawasi saat kami melatih penggunaan mesin regresi logistik .
    • Pembelajaran Tanpa Pengawasan : Ini adalah proses di mana model dilatih menggunakan informasi yang tidak diberi label. Proses ini dapat digunakan untuk mengelompokkan data masukan dalam kelas berdasarkan properti statistiknya. Pembelajaran tanpa pengawasan juga disebut sebagai clustering analysis yang berarti pengelompokan objek berdasarkan informasi yang ditemukan dalam data yang mendeskripsikan objek atau hubungannya. Tujuannya adalah agar objek dalam satu grup harus serupa satu sama lain tetapi berbeda dari objek di grup lain. Beberapa algoritma termasuk K-means clustering, Hierarchical clustering, dll.
    • Pembelajaran penguatan: Pembelajaran penguatan adalah pembelajaran dengan cara berinteraksi dengan suatu ruang atau lingkungan.Agen RL belajar dari konsekuensi tindakannya, daripada diajarkan secara eksplisit. Ia memilih tindakannya berdasarkan pengalaman masa lalunya (eksploitasi) dan juga oleh pilihan baru (eksplorasi).

Sekilas tentang Scikit Learn

Scikit learn adalah pustaka yang digunakan untuk melakukan pembelajaran mesin dengan Python. Scikit learn adalah pustaka open source yang dilisensikan di bawah BSD dan dapat digunakan kembali dalam berbagai konteks, mendorong penggunaan akademis dan komersial. Ini menyediakan berbagai algoritma pembelajaran yang diawasi dan tidak diawasi dengan Python.Scikit learn terdiri dari algoritma dan pustaka populer. Selain itu, ini juga berisi paket-paket berikut:



  • NumPy
  • Matplotlib
  • SciPy (Python Ilmiah)

Untuk mengimplementasikan Scikit learn, pertama kita perlu mengimpor paket di atas. Jika Anda tidak terbiasa dengan perpustakaan ini, Anda dapat melihat blog saya sebelumnya di dan . Anda dapat mengunduh kedua paket ini menggunakan baris perintah atau jika Anda menggunakan P.YCharm, Anda dapat langsung menginstalnya dengan membuka pengaturan Anda dengan cara yang sama seperti yang Anda lakukan untuk paket lain.

Selanjutnya, dengan cara yang serupa, Anda harus mengimpor Sklearn.Scikit learn dibangun di atas SciPy (Scientific Python) yang harus diinstal sebelum Anda dapat menggunakan Scikit-learn. Anda bisa merujuk ke ini situs web untuk mengunduh yang sama. Juga, instal Scipy dan paket roda jika tidak ada, Anda dapat mengetikkan perintah di bawah ini:

pip instal scipy

Saya sudah mengunduh dan menginstalnya, Anda dapat merujuk ke tangkapan layar di bawah ini untuk kebingungan apa pun.

Setelah mengimpor pustaka di atas, mari kita gali lebih dalam dan pahami bagaimana tepatnya Scikit learn digunakan.

Scikit learn dilengkapi dengan kumpulan data sampel, seperti iris dan digit . Anda dapat mengimpor kumpulan data dan bermain-main dengannya. Setelah itu, Anda harus mengimpor SVM yang merupakan singkatan dari Support Vector Machine. SVM merupakan salah satu bentuk pembelajaran mesin yang digunakan untuk menganalisis data.

Mari kita ambil contoh dimana kita akan ambil digit dataset dan itu akan mengkategorikan angka-angka untuk kita, misalnya- 0 1 2 3 4 5 6 7 8 9. Lihat kode di bawah ini:

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

Keluaran -

[[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 kami baru saja mengimpor pustaka, SVM, kumpulan data, dan mencetak data. Ini adalah deretan panjang data digit tempat data disimpan. Ini memberikan akses ke fitur yang dapat digunakan untuk mengklasifikasikan digit sampel. Selanjutnya, Anda juga dapat mencoba beberapa operasi lain seperti target, gambar, dll. Perhatikan contoh di bawah ini:

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

Keluaran -

[0 1 2 ..., 8 9 8] // target 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 target dan gambar digit dicetak. digits.target memberikan kebenaran dasar untuk angka dataset, yaitu nomor yang sesuai dengan setiap digit gambar. Selanjutnya, data selalu berupa larik 2D yang memiliki bentuk (n_samples, n_features), meskipun data asli mungkin memiliki bentuk yang berbeda. Tetapi dalam kasus digit, setiap sampel asli adalah gambar berbentuk (8,8) dan dapat diakses menggunakan digit . gambar.

Belajar dan Memprediksi

Selanjutnya, di Scikit learn, kami telah menggunakan kumpulan data (sampel 10 kemungkinan kelas, digit dari nol hingga sembilan) dan kami perlu memprediksi digit saat gambar diberikan. Untuk memprediksi kelas, kita membutuhkan penduga yang membantu untuk memprediksi kelas yang memiliki sampel tak terlihat. Di Scikit learn, kami memiliki estimator untuk klasifikasi yang merupakan objek python yang mengimplementasikan metode cocok (x, y) dan memprediksi (T). Mari kita pertimbangkan contoh di bawah ini:

panggilan dengan referensi di c ++
import matplotlib.pyplot sebagai plt dari sklearn import dataset dari sklearn import svm digits = dataset.load_digits () // dataset clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // latih data clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // prediksi data plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'nearest') plt.show ()

Keluaran -

1796
Prediksi: [8]


Dalam contoh di atas, kami pertama kali menemukan panjang dan memuat 1796 contoh. Selanjutnya, kami telah menggunakan data ini sebagai data pembelajaran, di mana kami perlu menguji elemen terakhir dan elemen negatif pertama. Selain itu, kami perlu memeriksa apakah mesin telah memprediksi data yang benar atau tidak. Untuk itu, kami telah menggunakan Matplotlib di mana kami telah menampilkan gambar digit.Jadi untuk menyimpulkan, Anda memiliki data digit, Anda mendapatkan target, Anda menyesuaikan dan memprediksinya, dan karenanya Anda siap melakukannya! Sangat cepat dan mudah, bukan?

Anda juga dapat memvisualisasikan label target dengan gambar, cukup lihat kode di bawah ini:

import matplotlib.pyplot sebagai plt dari sklearn import dataset dari sklearn import svm digits = dataset.load_digits () # Bergabunglah dengan gambar dan label target dalam daftar images_and_labels = list (zip (digits.images, digits.target)) # untuk setiap elemen dalam daftar indeks, (image, label) in enumerate (images_and_labels [: 8]): # inisialisasi subplot dari 2X4 pada posisi i + 1-th plt.subplot (2, 4, index + 1) # Tampilkan gambar di semua subplot plt.imshow (gambar, cmap = plt.cm.gray_r, interpolation = 'terdekat') # Tambahkan judul ke setiap subplot plt.title ('Pelatihan:' + str (label)) # Tampilkan plot plt. menunjukkan()

Keluaran-


Seperti yang Anda lihat pada kode di atas, kami telah menggunakan fungsi 'zip' untuk menggabungkan gambar dan label target dalam daftar dan kemudian menyimpannya ke dalam variabel, misalnya images_and_labels. Setelah itu, kami telah mengindeks delapan elemen pertama dalam kisi 2 kali 4 di setiap posisi. Setelah itu, kami baru saja menampilkan gambar dengan bantuan Matplotlib dan menambahkan judul sebagai 'pelatihan'.

Kasus Penggunaan - Prediksi menggunakan Regresi Logistik

Pernyataan masalah - Sebuah perusahaan mobil telah merilis SUV baru di pasaran. Dengan menggunakan data sebelumnya tentang penjualan SUV mereka, mereka ingin memprediksi kategori orang yang mungkin tertarik untuk membeli ini.

Untuk ini, mari kita lihat kumpulan data yang saya miliki UserId, jenis kelamin, usia, perkiraan gaji dan pembelian sebagai kolom. Ini hanyalah contoh kumpulan data, Anda dapat mengunduh seluruh kumpulan data dari sini . Setelah kami mengimpor data di pyCharm, tampilannya akan seperti ini.

Sekarang mari kita pahami data ini. Seperti yang Anda lihat pada dataset di atas, kami memiliki kategori seperti id, jenis kelamin, usia dll. Sekarang berdasarkan kategori ini, kami akan melatih mesin kami dan memprediksi no. pembelian. Jadi di sini, kami punya Variabel independen sebagai 'usia', 'gaji yang diharapkan' dan variabel tak bebas sebagai 'dibeli'. Sekarang kami akan menerapkan pembelajaran yang diawasi, yaitu algoritma regresi logistik untuk mengetahui jumlah pembelian menggunakan data yang ada.

Pertama, mari kita lihat gambaran umum tentang regresi logistik.

Regresi logistik - Regresi Logistik menghasilkan hasil dalam format biner yang digunakan untuk memprediksi hasil variabel dependen kategoris. Ini paling banyak digunakan ketika variabel dependen adalah biner yaitu, jumlah kategori yang tersedia adalah dua seperti, output biasa dari regresi logistik adalah -

  • Iya dan tidak
  • Benar dan salah
  • Tinggi dan rendah
  • Lulus dan Gagal

Sekarang untuk memulai dengan kode, pertama-tama kita akan mengimpor pustaka ini - Numpy, Matplotlib, dan Pandas. Sangat mudah untuk mengimpor panda di Pycharm dengan mengikuti langkah-langkah di bawah ini:

Pengaturan -> Tambah Paket -> Pandas -> Pasang

Setelah ini, kami akan mengimpor set data dan variabel dependen terpisah (dibeli) dan variabel independen (usia, gaji) dengan:

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

Langkah selanjutnya adalah melatih dan menguji data. Strategi umum adalah mengambil semua data berlabel dan memecahnya menjadi subset pelatihan dan pengujian, yang biasanya diambil dengan rasio 70-80% untuk subset pelatihan dan 20-30% untuk subset pengujian. Karenanya, kami telah membuat set Pelatihan dan Pengujian 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 menskalakan nilai input untuk kinerja yang lebih baik menggunakan StandarScaler seperti yang ditunjukkan di bawah ini:

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 Regresi Logistik kita.

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

Kami dapat menggunakan ini dan memprediksi hasil set pengujian kami.

y_pred = classifier.predict (X_test)

Sekarang, kami dapat memeriksa berapa banyak prediksi yang akurat dan berapa banyak yang tidak digunakan matriks kebingungan . Mari kita definisikan Y sebagai instance positif dan N sebagai instance negatif. Empat hasil dirumuskan dalam matriks kebingungan 2 * 2, seperti yang ditunjukkan di bawah ini:

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

Keluaran-

jumlah digit angka di java menggunakan for loop
[[65 3] [8 24]]

Selanjutnya, berdasarkan matriks konfusi kita, kita dapat menghitung akurasinya. Jadi dalam contoh kami di atas, akurasinya adalah:

= TP + TN / FN + FP

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

= 89%

Kami telah melakukan ini secara manual! Sekarang mari kita lihat bagaimana mesin menghitung hal yang sama untuk kita, untuk itu kita memiliki fungsi 'akurasi_score' yang menghitung akurasi dan mencetaknya, seperti yang ditunjukkan di bawah ini:

dari sklearn.metrics impor akurasi_score // impor fungsi akurasi_score print (akurasi_ skor (y_test, y_pred) * 100) // mencetak akurasi

Keluaran -

89.0

Hore! Dengan demikian, kami telah berhasil menerapkan regresi logistik menggunakan Scikit learn dengan akurasi 89%.

Klik disini untuk mendapatkan sumber prediksi di atas secara lengkap menggunakan pustaka belajar Python Scikit.

Dengan ini, kami telah membahas hanya satu dari banyak algoritma populer yang ditawarkan python.Kami telah membahas semua dasar-dasar Scikit mempelajari perpustakaan,jadi kamu bisa mulai berlatih sekarang. Semakin banyak Anda berlatih, semakin banyak Anda akan belajar. Nantikan blog tutorial python lebih lanjut!

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di blog 'Scikit learn' ini dan kami akan menghubungi Anda sesegera mungkin. Untuk mendapatkan pengetahuan mendalam tentang Python beserta berbagai aplikasinya, Anda bisa untuk pelatihan online langsung dengan dukungan 24/7 dan akses seumur hidup.