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:
- Memahami Pembelajaran Mesin
- Jenis Algoritma Pembelajaran Mesin
- Melaksanakan Algoritma Pembelajaran Mesin dengan R
Pembelajaran Mesin dengan R | Edureka
Memahami Pembelajaran Mesin
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 !!