Un Confronto degli Algoritmi di Apprendimento Automatico in Python e R

A Comparison of Machine Learning Algorithms in Python and R.

Questa lista degli algoritmi di machine learning più comunemente utilizzati in Python e R è stata creata per aiutare ingegneri novizi ed appassionati a familiarizzare con gli algoritmi più comunemente utilizzati.

Python e R sono due dei linguaggi di programmazione più utilizzati per il machine learning. Entrambi sono open source e altamente accessibili, ma mentre Python è un linguaggio di programmazione generico, R è un linguaggio di programmazione statistico. Questo lo rende ideale per vari ruoli e applicazioni di dati, come il data mining.

I due linguaggi di programmazione incoraggiano anche la riutilizzabilità, il che significa che gli ingegneri di machine learning alle prime armi e gli appassionati non devono scrivere il loro codice da zero. Utilizzarli per la costruzione di progetti significa integrare i giusti moduli e algoritmi – tutto ciò che devi sapere è dove cercare. Per aiutarti, abbiamo compilato una lista di alcuni degli algoritmi di machine learning più utilizzati per Python e R. Assicurati di segnare questo guida nei segnalibri e farvi riferimento ogni volta che ti blocchi.

1. Algoritmo di clustering K-Means

Come suggerisce il nome, il machine learning si tratta in definitiva di insegnare ai sistemi informatici in modo che possano funzionare in modo autonomo. Ciò può essere facilitato attraverso l’apprendimento supervisionato o non supervisionato.

Un modo per effettuare quest’ultimo è utilizzando l’algoritmo di clustering k-means, che cerca di trovare modelli in un set di dati raggruppando (clusterizzando) punti dati simili.

Nel linguaggio di programmazione R, il clustering k-means viene generalmente eseguito utilizzando la funzione k-means. Sfortunatamente, Python non sembra offrire una soluzione immediata altrettanto semplice. Il clustering k-means per Python viene di solito effettuato utilizzando la classe sklearn.cluster.KMeans della libreria sci-kit-learn in congiunzione con la libreria matplotlib.pyplot.

L’algoritmo di clustering k-means è uno dei più ampiamente utilizzati per il machine learning non supervisionato e probabilmente lo incontrerai o ne avrai bisogno prima o poi. Pertanto, è uno dei primi che dovresti imparare e padroneggiare.

2. Albero decisionale

L’algoritmo dell’albero decisionale è preferito per la sua accessibilità e usabilità. È un algoritmo di machine learning supervisionato che viene principalmente utilizzato per la classificazione. Ad esempio, le aziende possono utilizzarlo per determinare come gestire i clienti difficili tramite chatbot.

L’albero decisionale insegna alle macchine come fare scelte dalle esperienze precedenti. Uno dei motivi per cui è così popolare tra i nuovi ingegneri di machine learning è perché può essere modellato e rappresentato visualmente come un grafico o un diagramma. Questa qualità lo rende interessante per coloro con competenze di programmazione tradizionali.

Ci sono due tipi principali di alberi decisionali:

  • Albero decisionale a variabile continua: si riferisce ad alberi decisionali con variabili target illimitate.
  • Albero decisionale a variabile categorica: si riferisce ad alberi decisionali con variabili target raggruppate limitate.

I pacchetti e le classi che si occupano principalmente di alberi decisionali nel linguaggio di programmazione R includono:

  • Datasets
  • caTools
  • party
  • dplyr
  • magrittr

Di nuovo, dovrai cercare moduli Python esterni per implementare questo algoritmo. Come per l’algoritmo di clustering k-means, sci-kit-learn contiene una serie di moduli per gli alberi decisionali con la classe sklearn.tree che è la più rilevante. Puoi anche utilizzare il modulo Graphviz per rappresentare graficamente il tuo albero decisionale in modo programmato.

3. Analisi di regressione lineare

La regressione lineare è un altro algoritmo di machine learning supervisionato molto utilizzato. L’obiettivo dell’analisi di regressione lineare è dedurre un risultato o un valore basato su una variabile o un insieme di variabili.

Come la maggior parte degli algoritmi, il modo migliore per visualizzarlo è utilizzando un grafico con due assi. L’asse Y rappresenta la variabile dipendente, mentre l’asse X contiene la variabile indipendente. L’obiettivo dell’analisi di regressione lineare è formare o trovare una relazione tra queste due variabili.

Se un aumento della variabile indipendente causa un aumento della variabile dipendente (simile alla crescita esponenziale), questo è noto come una relazione positiva. D’altra parte, se il valore della variabile dipendente diminuisce all’aumentare del valore della variabile indipendente (simile al decadimento esponenziale), questo è noto come una relazione negativa.

Utilizziamo una linea di miglior adattamento per determinare la relazione, che può essere rappresentata utilizzando l’equazione lineare dell’intercetta di pendenza y=mx+b.

Ma come facilitiamo la regressione lineare in R e Python? I pacchetti più interessati all’analisi di regressione lineare nel linguaggio di programmazione R sono:

  • ggplot2
  • dplyr
  • broom
  • ggpubr

I pacchetti gg vengono utilizzati per creare e tracciare grafici, mentre dplyr e broom vengono utilizzati per manipolare e visualizzare i dati. sklearn.linear_model può essere utilizzato per costruire il modello di regressione lineare in Python. Puoi anche aggiungere NumPY per elaborare grandi matrici e array.

4. Regressione Logistica

Come per la regressione lineare, la regressione logistica ci permette di prevedere il valore di una variabile in base ad un’altra (serie di) variabile(i). Tuttavia, mentre la regressione lineare usa valori metrici, la regressione logistica utilizza variabili discrete. Si tratta di variabili dicotomiche che possono assumere solo uno dei due valori possibili (sì o no, 0 o 1, vero o falso, ecc.).

Nel mondo reale, questo può essere utilizzato per determinare la probabilità che una persona acquisti un prodotto (commercio al dettaglio) o la probabilità che abbia una malattia (assistenza sanitaria). Ad esempio, potremmo utilizzare l’età, l’altezza e il peso come variabili indipendenti (x). E l’esito binario sarebbe la variabile dipendente (y). Quindi, x è il dominio dei numeri reali e y contiene valori discreti.

Lo scopo della regressione logistica è di stimare (prevedere) la probabilità di un risultato o di un evento. Poiché i valori delle variabili y sono binari, non possiamo utilizzare un’equazione lineare e dobbiamo invece utilizzare una funzione di attivazione.

La funzione Sigmoid viene utilizzata per rappresentare la regressione logistica:

f(x) = L / 1+e^(-x)

oppure

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+…))

I pacchetti e i moduli Python più importanti per la regressione logistica sono:

  • matplotlib.pyplot
  • sklearn.linear_model
  • sklearn.metrics

La procedura per la generazione di regressioni logistiche con R è molto più semplice e può essere eseguita utilizzando la funzione glm().

5. Macchine a Vettori di Supporto

Gli algoritmi delle macchine a vettori di supporto (SVM) sono principalmente utilizzati per la classificazione, ma possono anche essere utilizzati per compiti di regressione. Gli SVM sono uno dei metodi più semplici per la classificazione.

In un SVM, l’oggetto che deve essere classificato è rappresentato come un punto in uno spazio n-dimensionale. Ogni coordinata di questo punto è chiamata la sua caratteristica. Gli SVM cercano di classificare un oggetto disegnando prima un iperpiano in modo che tutti i punti di ogni categoria siano da un lato o dall’altro.

Anche se potrebbero esserci potenzialmente più iperpiani, SVM cerca di trovare quello che separa meglio le due categorie. In primo luogo, ciò viene raggiunto trovando la massima distanza tra le categorie, nota come margine. I punti che toccano o cadono direttamente sul margine sono chiamati vettori di supporto.

Poiché SVM è un metodo di apprendimento automatico supervisionato, richiede dati di formazione. È possibile implementare questo algoritmo di apprendimento automatico in Python utilizzando il modulo SVM dedicato di sklearn. Gli SVM in R sono gestiti tipicamente utilizzando le funzioni di contorno e di tracciamento.

Conclusioni

Molte di queste tecniche sono testimonianza di quanto sia fortemente dipendente l’apprendimento automatico dalla probabilità e dalle statistiche. Anche se R precede l’ingegneria moderna dell’apprendimento automatico, è rilevante perché è un linguaggio di programmazione statistico. Come tale, molte di queste tecniche possono essere facilmente costruite o implementate immediatamente.

Python è un linguaggio di programmazione generale multi-paradigma, quindi ha una vasta gamma di casi d’uso. Sci-kit-learn è la libreria più affidabile per i moduli di apprendimento automatico di Python. Se si vuole saperne di più sulle tecniche sopra descritte e altro ancora, si può visitare il sito web ufficiale della libreria.

Nahla Davies è una sviluppatrice di software e scrittrice tecnica. Prima di dedicarsi a tempo pieno alla scrittura tecnica, ha gestito – tra le altre cose interessanti – il ruolo di programmatrice principale presso un’organizzazione di branding esperienziale Inc. 5.000 i cui clienti includono Samsung, Time Warner, Netflix e Sony.