Machine learning in R per principianti con esempio

Questo blog sul machine learning con R ti aiuta ad apprendere i concetti fondamentali del Machine Learning e implementare diversi algoritmi di machine learning con R.

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:





Apprendimento automatico con R | Edureka

Capire il machine learning

Fish1- Machine Learning con R - Edureka



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 !!