Apprendimento automatico con R
L'apprendimento automatico è il presente e il futuro! Dal motore di raccomandazione di Netflix all'auto a guida autonoma di Google, è tutto apprendimento automatico. Questo blog sul machine learning con R ti aiuta a comprendere i concetti fondamentali del machine learning seguito da diversi algoritmi di machine learning e implementare tali algoritmi di machine learning con R.
Questo blog su 'Machine Learning with R' comprende queste sezioni:
- Capire il machine learning
- Tipi di algoritmi di apprendimento automatico
- Implementazione di algoritmi di machine learning con R
Apprendimento automatico con R | Edureka
Capire il machine learning
java come uscire dal programma
Come fai a sapere che sono tutti pesci?
Da bambino, potresti esserti imbattuto nella foto di un pesce e ti sarebbe stato detto dalle tue maestre d'asilo o dai tuoi genitori che questo è un pesce e ha alcune caratteristiche specifiche ad esso associate come pinne, branchie, un paio di occhi, una coda e così via. Ora, ogni volta che il tuo cervello incontra un'immagine con quel set di caratteristiche, la registra automaticamente come un pesce perché il tuo cervello ha imparato che è un pesce.
È così che funziona il nostro cervello, ma che dire di una macchina? Se la stessa immagine viene inviata a una macchina, come la macchina identificherà che si tratta di un pesce?
È qui che M achine Learning entra. Continueremo a fornire immagini di un pesce a un computer con l'etichetta 'pesce' fino a quando il macchina apprende tutte le funzionalità associate con un pesce.
Una volta che la macchina apprende tutte le caratteristiche associate a un pesce, le forniremo nuovi dati per determinare quanto ha imparato.
In altre parole, Dati grezzi / Dati di allenamento viene dato alla macchina, in modo che impara tutte le funzionalità associate a Dati di allenamento. Una volta che l'apprendimento è finito, è dato Nuovi dati / dati di prova per determinare quanto bene la macchina ha imparato.
Andiamo avanti in questo blog Machine Learning with R e comprendiamo i tipi di Machine Learning.
Tipi di machine learning
Apprendimento supervisionato:
L'algoritmo di apprendimento supervisionato apprende da un set di dati noto (dati di addestramento) che ha etichette per fare previsioni.
La regressione e la classificazione sono alcuni esempi di apprendimento supervisionato.
#Classificazione:
La classificazione determina a quale insieme di categorie appartiene una nuova osservazione, ovvero un algoritmo di classificazione apprende tutte le caratteristiche e le etichette dei dati di addestramento e quando gli vengono forniti nuovi dati, deve assegnare etichette alle nuove osservazioni a seconda di ciò che ha appreso dai dati di addestramento.
Per questo esempio, se alla prima osservazione viene assegnata l'etichetta 'Uomo', viene giustamente classificata, ma se viene assegnata l'etichetta 'Donna', la classificazione è sbagliata. Allo stesso modo per la seconda osservazione, se l'etichetta data è “Donna”, è giustamente classificata, altrimenti la classificazione è sbagliata.
#Regressione:
La regressione è un algoritmo di apprendimento supervisionato che aiuta a determinare come una variabile influenza un'altra variabile.
Qui, 'living_area' è la variabile indipendente e 'price' è la variabile dipendente, cioè stiamo determinando come varia 'price' rispetto a 'living_area'.
Apprendimento senza supervisione:
L'algoritmo di apprendimento senza supervisione trae inferenze da dati che non hanno etichette.
Clustering è un esempio di apprendimento senza supervisione. 'K-means', 'Hierarchical', 'Fuzzy C-Means' sono alcuni esempi di algoritmi di clustering.
In questo esempio, la serie di osservazioni è divisa in due gruppi. Il raggruppamento viene effettuato sulla base della somiglianza tra le osservazioni. Esiste un'elevata somiglianza intra-cluster e una bassa somiglianza inter-cluster, ovvero una somiglianza molto alta tra tutti gli autobus ma una somiglianza bassa tra gli autobus e le auto.
Insegnamento rafforzativo:
Il Reinforcement Learning è un tipo di algoritmo di apprendimento automatico in cui il macchina / agente in un ambiente impara il comportamento ideale per massimizzare le sue prestazioni. È necessario un semplice feedback sulla ricompensa affinché l'agente apprenda il suo comportamento, questo è noto come segnale di rinforzo .
Prendiamo pacman per esempio. Finché pacman continua a mangiare cibo, guadagna punti ma quando si schianta contro un mostro perde la vita. Così Pacman impara che ha bisogno di mangiare più cibo ed evitare i mostriin modo da migliorarne le prestazioni.
Implementazione del machine learning con R:
Regressione lineare:
Lavoreremo con il set di dati dei diamanti per implementare l'algoritmo di regressione lineare:
Descrizione del set di dati:
Prima di costruire qualsiasi modello sui dati, dovremmo suddividere i dati in set 'train' e 'test'. Il modello sarà costruito sul set 'train' e la sua precisione sarà verificata sul set 'test'.
Dobbiamo caricare il pacchetto 'caTools' per dividere i dati in due set.
libreria (caTools)
Il pacchetto 'caTools' fornisce una funzione 'sample.split ()' che aiuta a suddividere i dati.
sample.split (diamanti $ price, SplitRatio = 0.65) -> split_index
Al 65% delle osservazioni dalla colonna prezzo è stata assegnata l'etichetta 'vero' e al restante 35% è stata assegnata l'etichetta 'falso'.
sottoinsieme (rombi, split_index == T) -> train sottoinsieme (rombi, split_index == F) -> test
Tutte le osservazioni che hanno l'etichetta 'true' sono state memorizzate nella cartella ' oggetto 'treno' e quelle osservazioni che hanno l'etichetta 'false' sono state assegnate al set 'test'.
Ora che la suddivisione è terminata e abbiamo i nostri set di 'addestramento' e 'test', è il momento di costruire il modello di regressione lineare sul set di addestramento.
Useremo la funzione 'lm ()' per costruire il modello di regressione lineare sui dati 'train'. Stiamo determinando il prezzo dei diamanti rispetto a tutte le altre variabili del data-set. Il modello costruito viene memorizzato nell'oggetto 'mod_regress'.
lm (prezzo ~., data = train) -> mod_regress
Ora che abbiamo costruito il modello, dobbiamo fare previsioni sul set di 'test'. La funzione 'prediction ()' viene utilizzata per ottenere previsioni. Ci vogliono due argomenti: il modello costruito e il set di prova. I risultati previsti vengono memorizzati nell'oggetto 'result_regress'.
predire (mod_regress, test) -> result_regress
Associamo i valori dei prezzi effettivi dal set di dati 'test' e i valori previsti in un unico set di dati utilizzando la funzione 'cbind ()'. Il nuovo data-frame viene memorizzato in 'Final_Data'
cbind (Actual = test $ price, Predicted = result_regress) -> Final_Data
as.data.frame (Final_Data) -> Final_Data
Uno sguardo a 'Final_Data' che comprende i valori effettivi e quelli previsti:
Troviamo l'errore sottraendo i valori previsti dai valori effettivi e aggiungiamo questo errore come nuova colonna a 'Final_Data':
(Final_Data $ Actual- Final_Data $ Predicted) -> errore
cbind (Final_Data, errore) -> Final_Data
Uno sguardo a 'Final_Data' che comprende anche l'errore nella previsione:
Ora andremo avanti e calcoleremo ' Root Mean Square Error ' che fornisce un errore aggregato per tutte le previsioni
rmse1<-sqrt(mean(Final_Data$error^2))
rmse1
Andando avanti, costruiamo un altro modello, in modo da poter confrontare l'accuratezza di entrambi questi modelli e determinare qual è il migliore.
Costruiremo un nuovo modello di regressione lineare sull'insieme 'train', ma questa volta elimineremo le colonne 'x' e 'y' dalle variabili indipendenti, ovvero il 'prezzo' dei diamanti è determinato da tutte le colonne tranne 'x' e 'y'.
Il modello costruito è memorizzato in 'mod_regress2':
lm (prezzo ~.-y-z, data = train) -> mod_regress2
I risultati previsti vengono archiviati in 'result_regress2'
predire (mod_regress2, test) -> result_regress2
I valori effettivi e previsti vengono combinati e memorizzati in 'Final_Data2':
cbind (Actual = test $ price, Predicted = result_regress2) -> Final_Data2
as.data.frame (Final_Data2) -> Final_Data2
Aggiungiamo anche l'errore nella previsione a 'Final_Data2'
(Final_Data2 $ Actual- Final_Data2 $ Predicted) -> errore2
cbind (Final_Data2, error2) -> Final_Data2
Uno sguardo a 'Final_Data2':
Trovare Root Mean Square Error per ottenere l'errore aggregato:
rmse2<-sqrt(mean(Final_Data2$error^2))
framework basato sui dati nel webdriver al selenio
Vediamo che 'rmse2' è leggermente inferiore a 'rmse1' e quindi il secondo modello è leggermente migliore del primo modello.
Classificazione:
Lavoreremo con il set di dati 'car_purchase' da implementare partizionamento ricorsivo che è un algoritmo di classificazione.
Dividiamo i dati in set 'train' e 'test' utilizzando la funzione 'sample.split ()' dal pacchetto 'caTools'.
libreria (caTools)
Al 65% delle osservazioni dalla colonna 'Acquistato' verranno assegnate etichette 'VERO' e al resto verranno assegnate etichette 'FALSO'.
sample.split (car_purchase $ Purchased, SplitRatio = 0.65) -> split_values
Tutte le osservazioni che hanno l'etichetta 'TRUE' verranno memorizzate nei dati 'train' e quelle osservazioni che hanno l'etichetta 'FALSE' verranno assegnate ai dati 'test'.
sottoinsieme (car_purchase, split_values == T) -> train_data
sottoinsieme (car_purchase, split_values == F) -> test_data
È ora di costruire l'algoritmo di partizionamento ricorsivo:
Inizieremo caricando il pacchetto 'rpart':
libreria (rpart)
La colonna 'Acquistato' sarà la variabile dipendente e tutte le altre colonne sono le variabili indipendenti, ovvero stiamo determinando se la persona ha acquistato l'auto o meno rispetto a tutte le altre colonne. Il modello è costruito su 'train_data' e il risultato è memorizzato in 'mod1'.
rpart (Acquistato ~., data = train_data) -> mod1
Tracciamo il risultato:
trama (mod1, margine = 0,1)
text (mod1, pretty = T, cex = 0.8)
Ora andiamo avanti e prevediamo i risultati su 'test_data'. Stiamo dando il modello rpart costruito 'mod1' come primo argomento, il test set 'test_data' come secondo argomento e il tipo di previsione come 'classe' per il terzo argomento. Il risultato viene memorizzato nell'oggetto 'risultato1'.
predire (mod1, test_data, type = 'class') -> risultato1
Valutiamo l'accuratezza del modello utilizzando la funzione 'confusionMatrix ()' dal pacchetto del cursore.
biblioteca (cursore)
confusionMatrix (table (test_data $ Purchased, result1))
La matrice di confusione ci dice che delle 90 osservazioni in cui la persona non ha acquistato l'auto, 79 osservazioni sono state giustamente classificate come 'No' e 11 sono state erroneamente classificate come 'SI'. Allo stesso modo, delle 50 osservazioni in cui la persona ha effettivamente acquistato l'auto, 47 sono state giustamente classificate come 'SI' e 3 sono state erroneamente classificate come 'NO'.
Possiamo trovare l'accuratezza del modello dividendo le previsioni corrette per le previsioni totali, ovvero (79 + 47) / (79 + 47 + 11 + 3).
Clustering K-Means:
Lavoreremo con il set di dati 'iris' per implementare il clustering k-means:
Rimuoviamo la colonna 'Specie' e creiamo un nuovo set di dati che comprende solo le prime quattro colonne dal set di dati 'iris'.
iris [1: 4] -> iris_k
Supponiamo che il numero di cluster sia 3. La funzione 'Kmeans ()' accetta i dati di input e il numero di cluster in cui i dati devono essere raggruppati. La sintassi è: kmeans (data, k) dove k è il numero di centri del cluster.
kmeans (iris_k, 3) -> k1
Analizzando il clustering:
str (k1)
La funzione str () fornisce la struttura dei kmeans che include vari parametri come withinss, betweenss, ecc., Analizzando i quali puoi trovare le prestazioni di kmeans.
betweenss: Between sum of square i.e. similarità Intracluster
withinss: all'interno della somma del quadrato, ovvero somiglianza tra ammassi
totwithinss: somma di tutti i withinss di tutti i cluster cioè somiglianza totale intra-cluster
Un buon clustering avrà un valore inferiore di 'tot.withinss' e un valore maggiore di 'betweenss' che dipende dal numero di cluster 'k' scelti inizialmente.
I tempi sono maturi per diventare un esperto di Machine Learning e sfruttare le nuove opportunità che ti si presentano. Questo ci porta alla fine di questo ' Apprendimento automatico con R 'Blog. Spero che questo blog sia stato fruttuoso.
Edureka ha un che ti aiuta ad acquisire esperienza in algoritmi di machine learning come Clustering K-Means, Decision Trees, Random Forest, Naive Bayes. Imparerai anche i concetti di statistica, serie storica, estrazione di testo e un'introduzione al deep learning. Presto inizieranno nuovi lotti per questo corso !!