Aprenentatge automàtic amb R
L’aprenentatge automàtic és el present i el futur. Des del motor de recomanacions de Netflix fins al cotxe autònom de Google, tot és aprenentatge automàtic. Aquest blog sobre aprenentatge automàtic amb R us ajuda a entendre els conceptes bàsics d’aprenentatge automàtic seguits de diferents algoritmes d’aprenentatge automàtic i implementar aquests algoritmes d’aprenentatge automàtic amb R.
Aquest bloc sobre 'Aprenentatge automàtic amb R' inclou aquestes seccions:
- Comprensió de l’aprenentatge automàtic
- Tipus d’algorismes d’aprenentatge automàtic
- Implementació d’algorismes d’aprenentatge automàtic amb R
Aprenentatge automàtic amb R | Edureka
Comprensió de l’aprenentatge automàtic
Com se sap que tots són peixos?
Quan era petit, és possible que us haguéssiu trobat amb una imatge d’un peix i els vostres pares o mestres d’escola bressol us haguessin dit que es tracta d’un peix i que té algunes característiques específiques associades, com ara que té aletes, branquies, ulls, una cua, etc. Ara, cada vegada que el cervell troba una imatge amb aquestes funcions, la registra automàticament com a peix perquè el cervell té après que és un peix.
Així funciona el nostre cervell, però, què passa amb una màquina? Si la mateixa imatge s’alimenta a una màquina, com la identificarà la màquina per ser un peix?
Aquí és on M Achine Learning entra. Continuarem alimentant les imatges d’un peix a un ordinador amb l’etiqueta 'peix' fins al machine aprèn totes les funcions associades amb una peix.
Un cop la màquina conegui totes les característiques associades a un peix, li proporcionarem noves dades per determinar quant ha après.
En altres paraules, Dades brutes / dades de formació es dóna a la màquina, de manera que aquesta aprèn totes les funcions associades a Dades de formació. Un cop acabat l’aprenentatge, es dóna Noves dades / dades de prova per determinar el grau d’aprenentatge de la màquina.
Anem endavant en aquest bloc d’aprenentatge automàtic amb R i entenem els tipus d’aprenentatge automàtic.
Tipus d’aprenentatge automàtic
Aprenentatge supervisat:
L’algorisme d’aprenentatge supervisat aprèn d’un conjunt de dades conegut (Training Data) que té etiquetes per fer prediccions.
La regressió i la classificació són alguns exemples d’aprenentatge supervisat.
# Classificació:
La classificació determina a quin conjunt de categories pertany una nova observació, és a dir, un algorisme de classificació aprèn totes les característiques i etiquetes de les dades de formació i, quan se li donen noves dades, ha d'assignar etiquetes a les noves observacions en funció del que hagi après a partir de les dades de formació.
Per a aquest exemple, si la primera observació rep l'etiqueta 'Home', es classifica correctament, però si rep l'etiqueta 'Dona', la classificació és incorrecta. De la mateixa manera, per a la segona observació, si l'etiqueta que es dóna és 'Dona', es classifica correctament, en cas contrari la classificació és incorrecta.
#Regressió:
La regressió és un algorisme d'aprenentatge supervisat que ajuda a determinar com influeix una variable en una altra variable.
Aquí, 'living_area' és la variable independent i 'price' és la variable dependent, és a dir, estem determinant com varia el 'preu' respecte a 'living_area'.
Aprenentatge sense supervisió:
L’algorisme d’aprenentatge sense supervisió extreu inferències a partir de dades que no tenen etiquetes.
Agrupació és un exemple d’aprenentatge sense supervisió. 'K-significa', 'jerarquitzat', 'Fuzzy C-Means' són alguns exemples d'algorismes de concentració.
En aquest exemple, el conjunt d'observacions es divideix en dos clústers. L’agrupació es fa sobre la base de la similitud entre les observacions. Hi ha una gran similitud intra-clúster i una baixa similitud entre clústers, és a dir, hi ha una similitud molt alta entre tots els autobusos, però baixa similitud entre els autobusos i els cotxes.
Aprenentatge de reforç:
L’aprenentatge de reforç és un tipus d’algoritme d’aprenentatge automàtic on el màquina / agent en un entorn aprèn un comportament ideal per maximitzar el seu rendiment. Es necessita una retroalimentació de recompenses senzilla perquè l'agent pugui conèixer el seu comportament, això es coneix com a senyal de reforç .
Prenem pacman per exemple. Mentre Pacman segueix menjant menjar, guanya punts però quan s’estavella contra un monstre perd la vida. Així, Pacman s’assabenta que necessita menjar més menjar i evitar monstresper millorar el seu rendiment.
Implementació de l'aprenentatge automàtic amb R:
Regressió lineal:
Treballarem amb el conjunt de dades de diamants per implementar l'algorisme de regressió lineal:
Descripció del conjunt de dades:
Abans de construir qualsevol model sobre les dades, se suposa que hem de dividir les dades en conjunts de 'tren' i 'prova'. El model es construirà sobre el conjunt 'tren' i la seva precisió es comprovarà sobre el conjunt 'prova'.
Hem de carregar el paquet 'caTools' per dividir les dades en dos conjunts.
biblioteca (caTools)
El paquet 'caTools' proporciona una funció 'sample.split ()' que ajuda a dividir les dades.
sample.split (diamants $ price, SplitRatio = 0,65) -> split_index
Al 65% de les observacions de la columna de preus se'ls ha assignat l'etiqueta 'veritable' i al 35% restant se'ls ha assignat l'etiqueta 'falsa'.
subconjunt (diamants, split_index == T) -> tren subconjunt (diamants, split_index == F) -> prova
Totes les observacions que tenen l’etiqueta “veritable” s’han emmagatzemat a tren ”objecte i aquelles observacions amb etiqueta 'falsa' s'han assignat al conjunt 'prova'.
Ara que la divisió està feta i tenim els nostres conjunts de 'tren' i 'prova', és hora de construir el model de regressió lineal sobre el conjunt d'entrenament.
Utilitzarem la funció 'lm ()' per construir el model de regressió lineal sobre les dades 'tren'. Estem determinant el preu dels diamants respecte a la resta de variables del conjunt de dades. El model construït s'emmagatzema a l'objecte 'mod_regress'.
lm (preu ~., dades = tren) -> mod_regress
Ara, ja que hem construït el model, hem de fer prediccions sobre el conjunt de 'proves'. La funció 'predict ()' s'utilitza per obtenir prediccions. Es necessiten dos arguments: el model construït i la conjunt de proves. Els resultats previstos s’emmagatzemen a l’objecte “result_regress”.
predir (mod_regress, test) -> result_regress
Vinculem els valors de preu reals del conjunt de dades 'prova' i els valors predits en un únic conjunt de dades mitjançant la funció 'cbind ()'. El nou marc de dades s’emmagatzema a “Final_Data”
cbind (Actual = preu de prova $, predit = resultat_regress) -> Dades_finals
as.data.frame (Final_Data) -> Final_Data
Un cop d'ull a la 'Dada_Data_Final', que inclou valors reals i valors predits:
com sortir a Java
Cerquem l'error restant els valors predits dels valors reals i afegim aquest error com a nova columna a 'Dades_dades finals':
(Final_Data $ Actual- Final_Data $ Predected) -> error
cbind (Dades_Final, error) -> Dades_Final
Un cop d'ull a la 'Dada_Data_Final', que també inclou l'error de predicció:
Ara seguirem endavant i calcularem ' Error quadrat mitjà d'arrel ' cosa que dóna un error agregat per a totes les prediccions
rmse1<-sqrt(mean(Final_Data$error^2))
rmse1
En endavant, construïm un altre model, de manera que puguem comparar la precisió d’aquests models i determinar quin és el millor.
Construirem un nou model de regressió lineal al conjunt “tren”, però aquesta vegada deixarem caure les columnes 'x' i 'y' de les variables independents, és a dir, el 'preu' dels diamants està determinat per tots els columnes excepte 'x' i 'y'.
El model construït s'emmagatzema a 'mod_regress2':
lm (preu ~.-y-z, dades = tren) -> mod_regress2
Els resultats previstos s’emmagatzemen a “result_regress2”
predir (mod_regress2, test) -> result_regress2
Els valors reals i previstos es combinen i s'emmagatzemen a 'Final_Data2':
cbind (Actual = preu de prova $, Predicció = resultat_regress2) -> Dades_de_final2
as.data.frame (Final_Data2) -> Final_Data2
Afegim també l'error de predicció a 'Final_Data2'
(Final_Data2 $ Actual- Final_Data2 $ Predict) -> error2
cbind (Final_Data2, error2) -> Final_Data2
Un cop d'ull a 'Dades_Definides2':
Trobant un error quadrat mitjà per obtenir l’error global:
rmse2<-sqrt(mean(Final_Data2$error^2))
Veiem que 'rmse2' és marginalment inferior a 'rmse1' i, per tant, el segon model és marginalment millor que el primer model.
Classificació:
Treballarem amb el conjunt de dades 'car_purchase' per implementar particionament recursiu que és un algorisme de classificació.
Dividim les dades en conjunts 'tren' i 'prova' mitjançant la funció 'sample.split ()' del paquet 'caTools'.
biblioteca (caTools)
Al 65% de les observacions de la columna 'Comprat' se'ls assignaran etiquetes 'TRUE' i a la resta se'ls assignaran etiquetes 'FALS'.
sample.split (car_purchase $ Purchased, SplitRatio = 0,65) -> split_values
Totes aquelles observacions que tinguin l'etiqueta 'TRUE' s'emmagatzemaran en dades de 'tren' i les observacions que tinguin l'etiqueta 'FALS' s'assignaran a les dades de 'prova'.
subconjunt (auto_purchase, split_values == T) -> train_data
subconjunt (auto_purchase, split_values == F) -> test_data
És hora de construir l'algorisme de particionament recursiu:
Començarem carregant el paquet 'rpart':
biblioteca (rpart)
La columna 'Comprada' serà la variable dependent i la resta de columnes són les variables independents, és a dir, estem determinant si la persona ha comprat el cotxe o no respecte a la resta de columnes. El model es basa en 'train_data' i el resultat s'emmagatzema en 'mod1'.
rpart (Compra ~., dades = dades_del tren) -> mod1
Representem el resultat:
gràfic (mod1, marge = 0,1)
text (mod1, bonic = T, cex = 0,8)
Ara anem endavant i predimem els resultats a 'test_data'. Estem donant el model rpart incorporat 'mod1' com a primer argument, la prova defineix 'test_data' com a segon argument i el tipus de predicció com a 'classe' per al tercer argument. El resultat s’emmagatzema a l’objecte ‘result1’.
predict (mod1, data_prova, type = 'class') -> resultat1
Avaluem la precisió del model mitjançant la funció 'confusionMatrix ()' del paquet de cursors.
biblioteca (cursor)
confusionMatrix (taula (prova_dades $ comprat, resultat1))
La matriu de confusió ens indica que de les 90 observacions en què la persona no va comprar el cotxe, 79 observacions han estat correctament classificades com a 'No' i 11 s'han classificat erròniament com a 'SÍ'. De la mateixa manera, de les 50 observacions en què la persona va comprar el cotxe, 47 han estat classificades correctament com a 'SÍ' i 3 s'han classificat erròniament com a 'NO'.
Podem trobar la precisió del model dividint les prediccions correctes amb prediccions totals, és a dir (79 + 47) / (79 + 47 + 11 + 3).
Agrupació de K-Means:
Treballarem amb el conjunt de dades 'iris' per implementar l'agrupació de k-means:
Eliminem la columna 'Espècies' i creeu un conjunt de dades nou que inclogui només les primeres quatre columnes del conjunt de dades 'iris'.
Sant Martí [1: 4] -> iris_k
Prenguem el nombre de clústers a 3. La funció 'Kmeans ()' pren les dades d'entrada i el nombre de clústers en què es volen agrupar les dades. La sintaxi és: kmeans (dades, k) on k és el nombre de centres de clústers.
kmeans (iris_k, 3) -> k1
Analitzant el clúster:
str (k1)
La funció str () proporciona l'estructura dels kmeans que inclou diversos paràmetres com withinss, betweenss, etc, analitzant els quals podeu esbrinar el rendiment dels kmeans.
entre una suma de quadrats, és a dir, una similitud intraclúster
withinss: dins de la suma del quadrat, és a dir, semblança entre grups
totwithinss: suma de tots els withins de tots els clústers, és a dir, semblança total intra-clúster
Una bona agrupació tindrà un valor inferior de 'tot.withinss' i un valor més alt de 'betweenss', que depèn del nombre de clústers 'k' triats inicialment.
És hora de convertir-se en un expert en aprenentatge automàtic per aprofitar les noves oportunitats que se us presenten. Això ens porta al final d’aquest “ Aprenentatge automàtic amb R ”Bloc. Espero que aquest bloc hagi estat informatiu i fructífer.
Edureka compta amb un programa especialment curat que us ajuda a adquirir experiència en algorismes d’aprenentatge automàtic com ara K-Means Clustering, Decision Trees, Random Forest, Naive Bayes. També aprendreu els conceptes d’Estadístiques, sèries temporals, mineria de text i una introducció a l’aprenentatge profund. Ben aviat començaran les noves lots d’aquest curs !!