Pembelajaran Mesin dalam R untuk Pemula dengan Contoh



Blog mengenai pembelajaran mesin dengan R ini membantu anda mempelajari konsep teras Pembelajaran Mesin dan melaksanakan algoritma pembelajaran mesin yang berbeza dengan R.

Pembelajaran Mesin dengan R

Pembelajaran mesin adalah masa kini dan masa depan! Dari mesin cadangan Netflix hingga kereta memandu sendiri Google, semuanya adalah pembelajaran mesin. Blog mengenai Pembelajaran Mesin dengan R ini membantu anda memahami konsep teras pembelajaran mesin diikuti dengan algoritma pembelajaran mesin yang berbeza dan melaksanakan algoritma pembelajaran mesin tersebut dengan R.

Blog mengenai 'Pembelajaran Mesin dengan R' ini merangkumi bahagian-bahagian berikut:





Pembelajaran Mesin dengan R | Edureka

Memahami Pembelajaran Mesin

Fish1- Pembelajaran Mesin dengan R - Edureka



Bagaimana anda tahu bahawa semua itu adalah ikan?



Semasa kecil, anda mungkin pernah melihat gambar seekor ikan dan anda akan diberitahu oleh guru tadika atau ibu bapa anda bahawa ini adalah ikan dan ia mempunyai beberapa ciri khusus yang berkaitan dengannya seperti sirip, insang, sepasang mata, ekor dan sebagainya. Sekarang, setiap kali otak anda menemui gambar dengan sekumpulan ciri tersebut, ia secara automatik mendaftarkannya sebagai ikan kerana otak anda mempunyai belajar bahawa ia adalah ikan.

Begitulah cara otak kita berfungsi tetapi bagaimana dengan mesin? Sekiranya gambar yang sama dimasukkan ke mesin, bagaimana mesin akan mengenalinya sebagai ikan?

Di sinilah M Pembelajaran achine masuk. Kami akan terus memberi makan gambar ikan ke komputer dengan tanda 'ikan' hingga mesin mempelajari semua ciri yang berkaitan dengan ikan.

Setelah mesin mempelajari semua ciri yang berkaitan dengan ikan, kami akan memberikannya data baru untuk menentukan berapa banyak yang dipelajari.

apa __init__

Dalam kata lain, Data Mentah / Data Latihan diberikan kepada mesin, supaya ia belajar semua ciri yang berkaitan dengan Data Latihan. Setelah, pembelajaran selesai, ia diberikan Data / Data Ujian Baru untuk menentukan sejauh mana mesin telah belajar.

Mari kita terus maju dalam blog Machine Learning dengan R ini dan fahami tentang jenis Machine Learning.

Jenis Pembelajaran Mesin

  • Pembelajaran yang diselia:

Algoritma Pembelajaran diawasi belajar dari kumpulan data yang diketahui (Data Latihan) yang mempunyai label untuk membuat ramalan.

Regresi dan Klasifikasi adalah beberapa contoh Pembelajaran yang Diselia.

# Klasifikasi:

Klasifikasi menentukan kumpulan kategori mana yang dimiliki pemerhatian baru iaitu algoritma klasifikasi mempelajari semua ciri dan label data latihan dan apabila data baru diberikan kepadanya, ia harus menetapkan label pada pemerhatian baru bergantung pada apa yang telah dipelajarinya. dari data latihan.

Untuk contoh ini, jika pemerhatian pertama diberi label 'Lelaki' maka diklasifikasikan dengan betul tetapi jika diberi label 'Wanita', klasifikasi itu salah. Begitu juga untuk pemerhatian kedua, jika label yang diberikan adalah 'Wanita', ia diklasifikasikan dengan betul, jika tidak, klasifikasi itu salah.

#Regresi:

Regresi adalah algoritma pembelajaran yang diselia yang membantu dalam menentukan bagaimana satu pemboleh ubah mempengaruhi pemboleh ubah yang lain.

Di sini, 'living_area' adalah pemboleh ubah bebas dan 'harga' adalah pemboleh ubah bersandar iaitu kita menentukan bagaimana 'harga' berbeza dengan 'hidup_area'.

  • Pembelajaran Tanpa Pengawasan:

Algoritma pembelajaran tanpa pengawasan mengambil kesimpulan dari data yang tidak mempunyai label.

Penggabungan adalah contoh pembelajaran tanpa pengawasan. 'K-berarti', 'Hierarki', 'Fuzzy C-Means' adalah beberapa contoh algoritma pengelompokan.

Dalam contoh ini, kumpulan pemerhatian terbahagi kepada dua kelompok. Penggabungan dilakukan berdasarkan kesamaan antara pemerhatian. Terdapat persamaan intra-kluster yang tinggi dan persamaan antara kluster yang rendah iaitu terdapat persamaan yang sangat tinggi antara semua bas tetapi kesamaan yang rendah antara bas dan kereta.

  • Pembelajaran Pengukuhan:

Pembelajaran Pengukuhan adalah sejenis algoritma pembelajaran mesin di mana mesin / ejen di sebuah persekitaran belajar tingkah laku yang ideal untuk memaksimumkan prestasinya. Maklum balas ganjaran sederhana diperlukan untuk ejen mempelajari tingkah lakunya, ini dikenali sebagai isyarat pengukuhan .

Mari ambil pacman sebagai contoh. Selagi pacman terus makan makanan, ia memperoleh mata tetapi apabila bertembung dengan monster, ia akan kehilangan nyawanya. Oleh itu, Pacman mengetahui bahawa perlu makan lebih banyak makanan dan mengelakkan raksasauntuk meningkatkan prestasi.

Melaksanakan Pembelajaran Mesin dengan R:

Regresi Linear:

Kami akan bekerjasama dengan kumpulan data berlian untuk menerapkan algoritma regresi linear:

Penerangan mengenai set data:

Sebelum membangun model apa pun pada data, kita seharusnya membagi data menjadi set 'train' dan 'test'. Model akan dibangun di atas set 'kereta api' dan ketepatannya akan diperiksa pada set 'uji'.

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

perpustakaan (caTools)

Pakej 'caTools' menyediakan fungsi 'sample.split ()' yang membantu dalam membelah data.

sample.split (harga berlian $, SplitRatio = 0.65) -> split_index

65% pemerhatian dari lajur harga telah diberi label 'benar' dan selebihnya 35% diberi label 'palsu'.

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

Semua pemerhatian yang mempunyai label 'benar' telah disimpan di ' objek kereta api dan pemerhatian yang mempunyai label 'palsu' telah ditetapkan ke set 'ujian'.

Sekarang pemisahan sudah selesai dan kami mempunyai set 'kereta api' dan 'ujian' kami, inilah masanya untuk membangun model regresi linier pada set latihan.

Kami akan menggunakan fungsi 'lm ()' untuk membangun model regresi linier pada data 'kereta api'. Kami menentukan harga berlian berkenaan dengan semua pemboleh ubah lain dari set data. Model yang dibina disimpan dalam objek 'mod_regress'.

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

Sekarang, setelah kita membuat model, kita perlu membuat ramalan pada set 'test'. Fungsi 'prediksi ()' digunakan untuk mendapatkan ramalan. Ia memerlukan dua hujah: yang model yang dibina dan juga set ujian. Hasil yang diramalkan disimpan dalam objek 'result_regress'.

ramalkan (mod_regress, test) -> result_regress

Mari kita mengikat nilai harga sebenar dari kumpulan data 'uji' dan nilai yang diramalkan ke dalam satu set data menggunakan fungsi 'cbind ()'. Kerangka data baru disimpan dalam 'Final_Data'

cbind (Sebenar = harga $ uji, Ramalan = hasil_kurang) -> Final_Data 
as.data.frame (Final_Data) -> Final_Data

Sekilas melihat 'Final_Data' yang terdiri daripada nilai sebenar dan nilai ramalan:

Mari cari ralat dengan mengurangkan nilai yang diramalkan dari nilai sebenar dan tambahkan ralat ini sebagai lajur baru ke 'Final_Data':

(Final_Data $ Sebenar - Final_Data $ Ramalan) -> ralat
cbind (Final_Data, ralat) -> Final_Data

Sekilas melihat 'Final_Data' yang juga merangkumi kesalahan dalam ramalan:

Sekarang, kita akan teruskan dan mengira ' Kesalahan Root Mean Square ” yang memberikan ralat agregat untuk semua ramalan

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

Ke depan, mari kita bina model lain, supaya kita dapat membandingkan ketepatan kedua-dua model ini dan menentukan mana yang lebih baik.

Kami akan membina model regresi linier baru pada set 'kereta api' tetapi kali ini, kami akan menjatuhkan lajur 'x' dan 'y' dari pemboleh ubah bebas iaitu 'harga' berlian ditentukan oleh semua lajur kecuali 'x' dan 'y'.

Model yang dibina disimpan dalam 'mod_regress2':

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

Hasil yang diramalkan disimpan di 'result_regress2'

ramalkan (mod_regress2, test) -> result_regress2

Nilai sebenar dan Ramalan digabungkan dan disimpan dalam 'Final_Data2':

cbind (Sebenar = harga $ uji, Ramalan = hasil_regress2) -> Final_Data2 
as.data.frame (Final_Data2) -> Final_Data2

Mari juga tambahkan ralat dalam ramalan ke 'Final_Data2'

(Final_Data2 $ Sebenar- Final_Data2 $ Ramalan) -> ralat2
cbind (Final_Data2, error2) -> Final_Data2

Sekilas 'Final_Data2':

Mencari Ralat Root Mean Square untuk mendapatkan ralat agregat:

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

cara membina aplikasi salesforce

Kami melihat bahawa 'rmse2' sedikit lebih kecil daripada 'rmse1' dan oleh itu model kedua sedikit lebih baik daripada model pertama.

Pengelasan:

Kami akan bekerja dengan kumpulan data 'car_purchase' untuk dilaksanakan pembahagian rekursif yang merupakan algoritma klasifikasi.

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

perpustakaan (caTools)

65% pemerhatian dari lajur ‘Dibeli’ akan diberi label “BENAR” dan selebihnya akan diberi label “SALAH”.

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

Semua pemerhatian yang mempunyai label 'BENAR' akan disimpan ke dalam data 'kereta api' dan pemerhatian yang mempunyai label 'SALAH' akan ditugaskan ke data 'uji'.

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

Masa untuk membina algoritma Pemisahan Rekursif:

Kami akan memulakan dengan memuatkan pakej ‘rpart’:

perpustakaan (bahagian)

Lajur 'Dibeli' akan menjadi pemboleh ubah bersandar dan semua lajur lain adalah pemboleh ubah tidak bersandar iaitu kita menentukan sama ada orang itu telah membeli kereta atau tidak berkenaan dengan lajur lain. Model ini dibina di atas 'train_data' dan hasilnya disimpan dalam 'mod1'.

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

Mari kita hasilkan hasilnya:

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

Sekarang, mari kita teruskan dan ramalkan hasilnya pada 'test_data'. Kami memberikan model rpart yang dibangun 'mod1' sebagai argumen pertama, ujian menetapkan 'test_data' sebagai argumen kedua dan jenis ramalan sebagai 'kelas' untuk argumen ketiga. Hasilnya disimpan dalam objek 'result1'.

ramalkan (mod1, test_data, type = 'class') -> hasil1

Mari kita menilai ketepatan model menggunakan fungsi 'confusionMatrix ()' dari caret package.

perpustakaan (karet) confusionMatrix (jadual (test_data $ Dibeli, hasil1))

Matriks kekeliruan memberitahu kita bahawa daripada 90 pemerhatian di mana orang itu tidak membeli kereta, 79 pemerhatian diklasifikasikan dengan betul sebagai 'Tidak' dan 11 salah diklasifikasikan sebagai 'YA'. Begitu juga, dari 50 pemerhatian di mana orang itu benar-benar membeli kereta tersebut, 47 telah diklasifikasikan sebagai 'YA' dan 3 diklasifikasikan sebagai 'TIDAK'.

Kita dapat mengetahui ketepatan model dengan membahagikan ramalan yang betul dengan jumlah ramalan iaitu (79 + 47) / (79 + 47 + 11 + 3).

Pengelompokan K-Means:

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

Mari keluarkan lajur 'Spesies' dan buat satu set data baru yang merangkumi hanya empat lajur pertama dari kumpulan data 'iris'.

iris [1: 4] -> iris_k

Mari kita anggap jumlah kluster menjadi 3. Fungsi 'Kmeans ()' mengambil data input dan jumlah kluster di mana data tersebut akan dikelompokkan. Sintaksnya adalah: kmeans (data, k) di mana k adalah bilangan pusat kluster.

kmeans (iris_k, 3) -> k1

Menganalisis pengelompokan:

str (k1)

Fungsi str () memberikan struktur kmeans yang merangkumi pelbagai parameter seperti ininss, betweenss, dll, menganalisis yang mana anda dapat mengetahui prestasi kmeans.

betweenss: Antara jumlah petak iaitu persamaan Intracluster

withinss: Dalam jumlah kuadrat iaitu persamaan Intercluster

totwithinss: Jumlah semua inins dari semua kluster iaitu. Jumlah persamaan intra-kluster

Penggabungan yang baik akan mempunyai nilai “tot.withinss” yang lebih rendah dan nilai “betweenss” yang lebih tinggi yang bergantung pada jumlah kluster ‘k’ yang dipilih pada awalnya.

Masanya sudah tiba untuk menjadi pakar dalam Pembelajaran Mesin untuk memanfaatkan peluang baru yang sesuai dengan anda. Ini membawa kita ke akhir ini ' Pembelajaran Mesin dengan R Blog. Saya harap blog ini bermaklumat.

Edureka mempunyai kurasi khas yang membantu anda memperoleh kepakaran dalam Algoritma Pembelajaran Mesin seperti Pengelompokan K-Means, Pohon Keputusan, Hutan Rawak, Naive Bayes. Anda akan mempelajari konsep Statistik, Siri Masa, Perlombongan Teks dan juga pengenalan kepada Pembelajaran Dalam. Kumpulan baru untuk kursus ini akan dimulakan tidak lama lagi !!