Pembelajaran Mesin di R untuk Pemula dengan Contoh



Blog tentang pembelajaran mesin dengan R ini membantu Anda mempelajari konsep inti Pembelajaran Mesin dan menerapkan algoritme pembelajaran mesin yang berbeda dengan R.

Pembelajaran Mesin dengan R

Pembelajaran mesin adalah masa kini dan masa depan! Dari mesin rekomendasi Netflix hingga mobil tanpa pengemudi dari Google, semuanya adalah pembelajaran mesin. Blog di Machine Learning dengan R ini membantu Anda memahami konsep inti machine learning yang diikuti oleh berbagai algoritme machine learning dan menerapkan algoritme machine learning tersebut dengan R.

Blog di 'Machine Learning dengan R' ini terdiri dari bagian-bagian berikut:





Pembelajaran Mesin dengan R | Edureka

Memahami Pembelajaran Mesin

Fish1- Machine Learning dengan R - Edureka



Bagaimana Anda tahu semua itu ikan?



Sebagai seorang anak, Anda mungkin pernah menemukan gambar ikan dan Anda akan diberi tahu oleh guru taman kanak-kanak atau orang tua Anda bahwa ini adalah ikan dan memiliki beberapa fitur khusus yang terkait dengannya seperti memiliki sirip, insang, sepasang mata, ekor dan sebagainya. Sekarang, setiap kali otak Anda menemukan gambar dengan serangkaian fitur itu, secara otomatis mencatatnya sebagai ikan karena otak Anda memilikinya terpelajar bahwa itu adalah seekor ikan.

peran dan tanggung jawab administrator sistem linux

Begitulah cara otak kita berfungsi, tetapi bagaimana dengan mesin? Jika gambar yang sama diumpankan ke mesin, bagaimana mesin tersebut mengidentifikasinya sebagai ikan?

Di sinilah M achine Learning masuk. Kami akan terus memasukkan gambar ikan ke komputer dengan tag 'ikan' hingga mesin mempelajari semua fitur yang terkait dengan ikan.

Setelah mesin mempelajari semua fitur yang terkait dengan ikan, kami akan memberinya data baru untuk menentukan seberapa banyak yang telah dipelajari.

Dengan kata lain, Data Mentah / Data Pelatihan diberikan ke mesin, sehingga itu belajar semua fitur yang terkait dengan Data pelatihan. Begitu pembelajaran selesai, itu diberikan Data Baru / Data Uji untuk menentukan seberapa baik mesin telah belajar.

Mari kita lanjutkan dalam blog Pembelajaran Mesin dengan R ini dan memahami tentang jenis-jenis Pembelajaran Mesin.

Jenis Pembelajaran Mesin

  • Pembelajaran yang Diawasi:

Algoritme Pembelajaran yang Diawasi belajar dari kumpulan data yang dikenal (Data Pelatihan) yang memiliki label untuk membuat prediksi.

Regresi dan Klasifikasi adalah beberapa contoh Supervised Learning.

#Klasifikasi:

Klasifikasi menentukan kumpulan kategori mana yang memiliki observasi baru, yaitu algoritme klasifikasi mempelajari semua fitur dan label dari data pelatihan dan ketika data baru diberikan, ia harus menetapkan label ke pengamatan baru tergantung pada apa yang telah dipelajari. dari data pelatihan.

Untuk contoh ini jika pada pengamatan pertama diberi label “Laki-laki” maka diklasifikasikan dengan benar tetapi jika diberi label “Perempuan” maka klasifikasi salah. Begitu pula pada observasi kedua, jika label yang diberikan adalah “Perempuan”, maka diklasifikasikan dengan benar, jika tidak klasifikasi salah.

#Regresi:

Regresi adalah algoritma pembelajaran yang diawasi yang membantu dalam menentukan bagaimana satu variabel mempengaruhi variabel lain.

Di sini, 'area_hidup' adalah variabel independen dan 'harga' adalah variabel dependen, yaitu kami menentukan bagaimana 'harga' bervariasi sehubungan dengan 'area_lama'.

  • Pembelajaran Tanpa Pengawasan:

Algoritme pembelajaran yang tidak diawasi menarik kesimpulan dari data yang tidak memiliki label.

Kekelompokan adalah contoh pembelajaran tanpa pengawasan. “K-means”, “Hierarchical”, “Fuzzy C-Means” adalah beberapa contoh algoritma clustering.

Dalam contoh ini, kumpulan observasi dibagi menjadi dua cluster. Clustering dilakukan atas dasar kesamaan antar pengamatan. Ada kesamaan intra-cluster yang tinggi dan kesamaan antar-cluster yang rendah yaitu ada kesamaan yang sangat tinggi antara semua bus tetapi kesamaan yang rendah antara bus dan mobil.

  • Pembelajaran Penguatan:

Pembelajaran Penguatan adalah jenis algoritma pembelajaran mesin di mana mesin / agen di sebuah lingkungan Hidup mempelajari perilaku ideal untuk memaksimalkan kinerjanya. Umpan balik hadiah sederhana diperlukan agar agen mempelajari perilakunya, ini dikenal sebagai sinyal penguatan .

Mari kita ambil pacman sebagai contoh. Selama pacman terus makan makanan, itu mendapatkan poin tetapi ketika menabrak monster, dia kehilangan nyawanya. Jadi pacman belajar bahwa ia perlu makan lebih banyak dan menghindari monsteruntuk meningkatkan kinerjanya.

Menerapkan Machine Learning dengan R:

Regresi linier:

Kami akan bekerja dengan kumpulan data berlian untuk menerapkan algoritme regresi linier:

Deskripsi kumpulan data:

Sebelum membuat model apa pun pada data, kita harus membagi data menjadi set 'train' dan 'test'. Model akan dibangun di set 'kereta' dan akurasinya akan diperiksa pada set 'pengujian'.

Kita perlu memuat paket 'caTools' untuk membagi data menjadi dua set.

perpustakaan (caTools)

Paket 'caTools' menyediakan fungsi 'sample.split ()' yang membantu dalam memisahkan data.

sample.split (diamonds $ price, SplitRatio = 0.65) -> split_index

65% pengamatan dari kolom harga telah diberi label 'benar' dan sisanya 35% telah diberi label 'salah'.

subset (berlian, split_index == T) -> kereta subset (berlian, split_index == F) -> test

Semua pengamatan yang memiliki label 'benar' telah disimpan di ' melatih ”objek dan observasi yang memiliki label 'salah' telah ditetapkan ke set 'pengujian'.

Sekarang setelah pemisahan selesai dan kita memiliki set 'train' dan 'test', sekarang saatnya membuat model regresi linier pada set pelatihan.

Kami akan menggunakan fungsi 'lm ()' untuk membuat model regresi linier pada data 'melatih'. Kami menentukan harga berlian sehubungan dengan semua variabel lain dari kumpulan data. Model yang dibangun disimpan dalam objek 'mod_regress'.

lm (harga ~., data = kereta) -> mod_regress

Sekarang, setelah kita membangun model, kita perlu membuat prediksi pada set 'test'. Fungsi “predict ()” digunakan untuk mendapatkan prediksi. Dibutuhkan dua argumen: the model yang dibangun dan set tes. Hasil yang diprediksi disimpan di objek 'result_regress'.

prediksi (mod_regress, test) -> result_regress

Mari kita ikat nilai harga sebenarnya dari kumpulan data 'test' dan nilai prediksi ke dalam satu kumpulan data menggunakan fungsi 'cbind ()'. Data-frame baru disimpan di 'Final_Data'

cbind (Actual = test $ price, Predicted = result_regress) -> Final_Data 
as.data.frame (Final_Data) -> Final_Data

Sekilas tentang 'Final_Data' yang terdiri dari nilai aktual dan nilai prediksi:

cara menjalankan atom python

Mari kita temukan kesalahan dengan mengurangi nilai prediksi dari nilai sebenarnya dan menambahkan kesalahan ini sebagai kolom baru ke “Final_Data”:

(Final_Data $ Actual- Final_Data $ Predicted) -> error
cbind (Final_Data, error) -> Final_Data

Sekilas tentang 'Final_Data' yang juga terdiri dari kesalahan dalam prediksi:

Sekarang, kita akan melanjutkan dan menghitung ' Root Mean Square Error ” yang memberikan kesalahan agregat untuk semua prediksi

rmse1<-sqrt(mean(Final_Data$error^2)) 
rmse1

Selanjutnya, mari kita buat model lain, sehingga kita dapat membandingkan keakuratan kedua model ini dan menentukan mana yang lebih baik.

Kami akan membuat model regresi linier baru pada kumpulan 'kereta' tetapi kali ini, kami akan menghapus kolom 'x' dan 'y' dari variabel independen yaitu 'harga' berlian ditentukan oleh semua kolom kecuali 'x' dan 'y'.

Model yang dibangun disimpan di 'mod_regress2':

lm (harga ~.-y-z, data = kereta) -> mod_regress2

Hasil yang diprediksi disimpan di 'result_regress2'

prediksi (mod_regress2, tes) -> result_regress2

Nilai Aktual dan Prediksi digabungkan dan disimpan dalam 'Final_Data2':

cbind (Aktual = tes $ harga, Predicted = result_regress2) -> Final_Data2 
as.data.frame (Final_Data2) -> Final_Data2

Mari kita juga menambahkan kesalahan dalam prediksi ke 'Final_Data2'

(Final_Data2 $ Aktual- Final_Data2 $ Diprediksi) -> error2
cbind (Final_Data2, error2) -> Final_Data2

Sekilas tentang “Final_Data2”:

Menemukan Root Mean Square Error untuk mendapatkan kesalahan agregat:

rmse2<-sqrt(mean(Final_Data2$error^2))

Kita melihat bahwa 'rmse2' sedikit lebih kecil dari 'rmse1' dan karenanya model kedua sedikit lebih baik daripada model pertama.

Klasifikasi:

Kami akan bekerja dengan kumpulan data 'car_purchase' untuk diterapkan partisi rekursif yang merupakan algoritma klasifikasi.

Mari kita pisahkan data menjadi set 'train' dan 'test' menggunakan fungsi 'sample.split ()' dari paket 'caTools'.

perpustakaan (caTools)

65% pengamatan dari kolom 'Dibeli' akan diberi label 'BENAR' dan sisanya akan diberi label 'SALAH'.

sample.split (car_purchase $ Purchased, SplitRatio = 0.65) -> split_values

Semua observasi yang memiliki label 'TRUE' akan disimpan ke dalam data 'train' dan observasi yang memiliki label 'FALSE' akan ditetapkan ke data 'test'.

subset (car_purchase, split_values ​​== T) -> train_data
subset (car_purchase, split_values ​​== F) -> test_data

Saatnya membangun algoritma Partisi Rekursif:

Kami akan memulai dengan memuat paket 'rpart':

perpustakaan (rpart)

Kolom 'Membeli' akan menjadi variabel dependen dan semua kolom lainnya adalah variabel independen, yaitu kami menentukan apakah orang tersebut telah membeli mobil atau tidak sehubungan dengan semua kolom lainnya. Model ini dibuat di 'train_data' dan hasilnya disimpan di 'mod1'.

rpart (Dibeli ~., data = train_data) -> mod1

Mari kita plot hasilnya:

plot (mod1, margin = 0.1) teks (mod1, cantik = T, cex = 0.8)

Sekarang, mari kita lanjutkan dan prediksi hasil di 'test_data'. Kami memberikan model rpart yang dibangun 'mod1' sebagai argumen pertama, set pengujian 'test_data' sebagai argumen kedua dan jenis prediksi sebagai 'class' untuk argumen ketiga. Hasilnya disimpan dalam objek 'result1'.

prediksi (mod1, test_data, type = 'class') -> result1

Mari kita evaluasi keakuratan model menggunakan fungsi 'confusionMatrix ()' dari paket caret.

perpustakaan (tanda sisipan) kebingunganMatrix (tabel (test_data $ Dibeli, hasil1))

Matriks kebingungan memberi tahu kita bahwa dari 90 pengamatan di mana orang tersebut tidak membeli mobil, 79 pengamatan telah diklasifikasikan dengan benar sebagai 'Tidak' dan 11 telah salah diklasifikasikan sebagai 'YA'. Demikian pula, dari 50 observasi di mana orang tersebut benar-benar membeli mobil, 47 telah diklasifikasikan dengan benar sebagai 'YA' dan 3 telah salah diklasifikasikan sebagai 'TIDAK'.

Akurasi model dapat kita temukan dengan membagi prediksi yang benar dengan prediksi total yaitu (79 + 47) / (79 + 47 + 11 + 3).

Pengelompokan K-Means:

Kami akan bekerja dengan kumpulan data 'iris' untuk menerapkan pengelompokan k-means:

Mari kita hapus kolom 'Spesies' dan buat kumpulan data baru yang hanya terdiri dari empat kolom pertama dari kumpulan data 'iris'.

iris [1: 4] -> iris_k

Mari kita ambil jumlah cluster menjadi 3. Fungsi 'Kmeans ()' mengambil data input dan jumlah cluster tempat data akan di-cluster. Sintaksnya adalah: kmeans (data, k) di mana k adalah jumlah pusat cluster.

kmeans (iris_k, 3) -> k1

Menganalisis pengelompokan:

str (k1)

Fungsi str () memberikan struktur kmean yang mencakup berbagai parameter seperti withinss, betweenss, dll, menganalisis yang dapat Anda gunakan untuk mengetahui kinerja kmean.

betweenss: Antara jumlah kuadrat, yaitu kesamaan Intracluster

withinss: Dalam jumlah kuadrat, yaitu kesamaan Intercluster

totwithinss: Jumlah semua withins dari semua cluster yaitu Total kesamaan intra-cluster

Pengelompokan yang baik akan memiliki nilai 'tot.withinss' yang lebih rendah dan nilai 'antara' yang lebih tinggi yang bergantung pada jumlah kluster 'k' yang dipilih pada awalnya.

Waktunya sudah matang untuk menjadi ahli dalam Machine Learning untuk memanfaatkan peluang baru yang menghampiri Anda. Ini membawa kita ke akhir dari ' Pembelajaran Mesin dengan R ' blog. Semoga blog ini bermanfaat dan informatif.

Edureka memiliki kurasi khusus yang membantu Anda mendapatkan keahlian dalam Algoritme Pembelajaran Mesin seperti K-Means Clustering, Decision Trees, Random Forest, Naive Bayes. Anda akan mempelajari konsep Statistik, Rangkaian Waktu, Penambangan Teks, dan pengantar Deep Learning juga. Gelombang baru untuk kursus ini akan segera dimulai !!