Analisi dell'albero decisionale e clustering di K-means utilizzando il set di dati dell'iride.

Contenuti

Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati

introduzione:

Come sappiamo tutti, L'intelligenza artificiale è ampiamente utilizzata intorno a noi: dalla lettura delle notizie sul tuo dispositivo mobile o dall'analisi di quei dati complessi sul tuo posto di lavoro, L'intelligenza artificiale ha migliorato la velocità, precisione ed efficacia dello sforzo umano. I progressi nell'intelligenza artificiale ci hanno aiutato a raggiungere cose che in precedenza pensavamo non fossero possibili. Anche avere a casa una pizza del tuo ristorante preferito è a portata di click, grazie ad AI.

In poche parole, intelligenza artificiale significa un computer o un programma per computer che imita l'intelligenza umana. Si ottiene imparando come si pensa, imparare, decide e lavora il cervello umano mentre risolve un problema. I risultati di questo studio vengono quindi utilizzati come base per lo sviluppo di sistemi e software intelligenti..

Ci sono 4 tipi di apprendimento:

Apprendimento supervisionato.

Apprendimento non supervisionato.

Apprendimento semi-supervisionato.

Apprendimento rinforzato.

Supervisionatonon supervisionatoSemi-sorvegliatoRinforzati
L'apprendimento supervisionato è quando il modello viene addestrato su un set di dati etichettato.Il aprendizaje no supervisado es cuando el modelo se entrena en un conjunto de datos sin etiquetar, sta all'algoritmo trovare i modelli sottostanti nei dati.Si colloca tra apprendimento supervisionato e non supervisionato, in questo, alcuni dati di apprendimento sono etichettati e altri no.L'algoritmo valuta le sue prestazioni in base alle risposte di feedback e reagisce di conseguenza.

Questo blog tratta l'apprendimento dell'IA supervisionato e non supervisionato, usando il set di dati Python e Iris.

Sommario:

  1. introduzione
  2. Set di dati dell'iride
  3. Apprendimento supervisionato
  4. Albero decisionale
  5. Regressione logistica
  6. Apprendimento non supervisionato
  7. Raggruppamento di K-calze
  8. Conclusione e riferimenti

Set di dati dell'iride:

Il set di dati contiene 3 lezioni con 50 istanze ciascuno e 150 istanze totali, dove ogni classe si riferisce ad un tipo di pianta di iris.

Classe: Iris Setosa, Iris Versicolor, Iris Virginica

Il formato dei dati: (lunghezza del sepalo, larghezza del sepalo, lunghezza del petalo, larghezza del petalo)

20733iride-3539434

Entrenaremos nuestros modelos en función de estos parametri y los usaremos para predecir las clases de flores.

Capire i dati:

Scarica il set di dati Iris da https://www.kaggle.com/uciml/iris

importa numpy come np
importa panda come pd
importa matplotlib.pyplot come plt
iride = pd.read_csv("Iris.csv") #Iris.csv è ora un dataframe panda
Stampa(iris.testa()) #stampa prima 5 valori
Stampa(iris.descrivi()) #stampa alcuni dettagli statistici di base come percentile,Significare, standard ecc. del frame di dati
16566iris-head_-2786086
iris.testa ()
42140iris-descrivi-3459342
iris.descrivi ()

Visualizzazione dei dati utilizzando matplotlib:

iris.trama(gentile="disperdere", x="SepaloLunghezzaCm",   y ="SepaloLarghezzaCm")
plt.mostra()
75894scatter_plot-6136253
Grafico a dispersione

Visualizzazione dei dati utilizzando le curve di Andrew dai panda:

Le curve di Andrews hanno la forma funzionale:

F

x_4 senza (2T) + x_5 cos (2T) +…

Donde los coeficientes x corresponden a los valores de cada dimensione y t está espaciado linealmente entre -pi y + pi. Ogni riga del frame corrisponde a una singola curva.

da pandas.plotting import andrews_curves
andrews_curves(iris.goccia("ID", asse=1), "Specie")
plt.mostra()
74761andrews20curve-3533825
Grafico della curva di Andrews

Pre-elaborazione del set di dati:

Utilizzo di una libreria integrata chiamata 'train_test_split', che divide il nostro set di dati in una proporzione di 80:20. Il 80% se utilizará para addestramento, valutazione e selezione tra i nostri modelli e il 20% verrà conservato come set di dati di convalida.

da sklearn.model_selection import train_test_split
x = iris.iloc[:, :-1].valori #ultima colonna valori esclusi
y = iris.iloc[:,   -1].valori #ultimo valore colonna
da sklearn.model_selection import train_test_split
x_treno,x_test,y_train,y_test = train_test_split(X,e,test_size=0.2,random_state=0)  #Suddivisione del set di dati in Set di allenamento e Set di test

Apprendimento supervisionato :

Gli algoritmi di apprendimento automatico supervisionati sono addestrati per trovare modelli utilizzando un set di dati. Il processo è semplice, prende ciò che è stato appreso in passato e poi lo applica a nuovi dati. L'apprendimento supervisionato utilizza esempi etichettati per prevedere modelli ed eventi futuri.

Ad esempio, quando insegniamo a un bambino che 2 + 2 = 4 oppure segnaliamo l'immagine di qualsiasi animale in modo che tu sappia il suo nome.

L'apprendimento supervisionato è a sua volta suddiviso in:

Classificazione: La classificazione prevede le etichette delle classi categoriali, che sono discreti e disordinati. È un processo in due fasi, costituito da una fase di apprendimento e una fase di classificazione. Esistono vari algoritmi di classificazione come: “Classificatore albero decisionale”, “foresta casuale”, “Classificatore Naive Bayes”, eccetera.

Regressione: La regressione è generalmente descritta come la determinazione di una relazione tra due o più variabili, come prevedere il lavoro di una persona in base ai dati di input X. Alcuni degli algoritmi di regressione sono: “Regressione logistica”, “Regressione ad anello”, “Regressione della cresta”, eccetera. .

21093cattura-5016285
esempio di apprendimento supervisionato

Classificatore albero decisionale:

Il motivo generale per l'utilizzo di un albero decisionale è creare un modello di addestramento che possa essere utilizzato per prevedere la classe o il valore delle variabili di destinazione apprendendo le regole decisionali dedotte dai dati precedenti. (dati di allenamento).

Prova a risolvere il problema usando la rappresentazione ad albero. Ogni nodo interno del árbol corresponde a un atributo y cada nodo hoja corresponde a una etiqueta de clase.

Utilizzo dell'albero decisionale nel set di dati Iris:

da sklearn.tree import DecisionTreeClassifier
da sklearn.metrics import precision_score
classificatore = DecisionTreeClassifier()
classificatore.fit(x_treno,   y_train) #addestrare il classificatore
y_pred = classificatore.predict(x_test) #fare previsioni
Stampa(classificazione_report(y_test,   y_pred)) #Riepilogo delle previsioni fatte dal classificatore
Stampa(confusione_matrice(y_test, y_pred)) #per valutare la qualità dell'output
Stampa('la precisione è',precision_score(y_pred,y_test)) #Punteggio di precisione

Precisione: accuratezza delle previsioni positive.

Recupero: frazione di positivi che sono stati correttamente identificati.

Punteggio F1: Quale percentuale di previsioni positive era corretta??

macro media – media non ponderata per etichetta

media ponderata: media della media ponderata del supporto per etichetta

Mappa di calore para la matriz de confusión:

import seaborn come sns
cm = confusione_matrice(y_test, y_pred) #Trasforma in df
cm_df = pd.DataFrame(cm,indice = ['setosa','versicolor','vergine'], colonne = ['setosa','versicolor','vergine'])
plt.figure(figsize=(5.5,4))
sns.heatmap(cm_df,   annot=Vero)
plt.ylabel("Vera etichetta")
plt.xlabel("Etichetta prevista")
plt.mostra()
65665mappa termica-1821488
Mappa termica della matrice di confusione

Un'idea che possiamo ottenere dalla matrice è che il modello era molto accurato quando classificava Setosa e Virginica (Vero positivo / Tutto = 1.0). tuttavia, La precisione di Versicolor era inferiore (13/14 = 0,928).

Apprendimento non supervisionato:

L'apprendimento non supervisionato viene utilizzato su dati senza etichette storiche. Il sistema non è soggetto a un insieme predeterminato di output, correlazioni tra input e output o a “risposta corretta”. L'algoritmo deve capire cosa sta vedendo da solo, poiché non ha alcuna memoria di waypoint. L'obiettivo è esplorare i dati e trovare un qualche tipo di pattern o strutture.

L'apprendimento non supervisionato può essere classificato in:

Raggruppamento: Il clustering è il compito di dividere la popolazione o i punti dati in più gruppi, in modo che i punti dati di un gruppo siano omogenei tra loro rispetto a quelli di gruppi diversi. Esistono numerosi algoritmi di raggruppamento, alcuni di loro sono: “K significa algoritmi di clustering”, “cambiamento medio”, “raggruppamento gerarchico”, eccetera.

Associazione: Una regla de asociación es un método de aprendizaje no supervisado que se utiliza para encontrar las relaciones entre variables en una gran Banca dati. Determinare l'insieme di elementi che si verificano insieme nel set di dati.

98361unsuper-8669081
esempio di apprendimento non supervisionato

Raggruppamento di K-calze:

L'obiettivo dell'algoritmo di clustering K-means è trovare cluster nei dati, con el número de grupos representado por la variabile K. L'algoritmo funziona in modo iterativo per assegnare ciascun punto dati a uno dei gruppi K in base alle caratteristiche fornite.. .

I risultati dell'esecuzione di una media K su un set di dati sono:

Centroide K: centroidi per ciascuno dei K gruppi identificati nel set di dati.

Etichette per i dati di allenamento: set di dati completo etichettato per garantire che ogni punto dati sia mappato su uno dei cluster.

Utilizzo del clustering di mezzi K sul set di dati Iris:

da sklearn.datasets import load_iris
da sklearn.cluster import KMeans
iris_data=load_iris()   #caricamento del set di dati dell'iride da sklearn.datasets
iris_df = pd.DataFrame(iris_data.data, colonne = iris_data.feature_names) #creazione di dataframe
kmsignifica = KMezzi(n_clusters=3,init="k-significa++",   max_iter = 100, n_init = 10, stato_casuale = 0) #Applicazione del classificatore Kmeans
y_kmeans = kmeans.fit_predict(X)
Stampa(kmeans.cluster_centers_) #display cluster centri
plt.scatter(X[y_ksignifica == 0, 0], X[y_ksignifica == 0, 1],s = 100, c="rosso", etichetta="Iris-setosa")
plt.scatter(X[y_ksignifica == 1, 0], X[y_ksignifica == 1, 1],s = 100, c="blu", etichetta="Iris versicolor")
plt.scatter(X[y_ksignifica == 2, 0], X[y_ksignifica == 2, 1],s = 100, c="verde", etichetta="Iris-verginica")   #Visualizzazione dei cluster - Nelle prime due colonne
plt.scatter(kmeans.cluster_centers_[:,   0], kmeans.cluster_centers_[:,1],s = 100, c="Nero", etichetta="centroidi")   #tracciando i baricentri dei cluster
plt.legend()
plt.mostra()
11191kmc-2567246
K-mezzi grafico a dispersione clustering

Una idea que podemos obtener del Diagramma di dispersione es que la precisión del modelo para determinar Setosa y Virginica es comparativamente más a Versicolour.

conclusione:

Abbiamo esplorato e pre-elaborato il set di dati Iris utilizzando sklearn. set di dati, oltre a utilizzare il file Iris.csv. Cosa c'è di più, aprendí sobre el aprendizaje supervisado y no supervisado e implementé el algoritmo de árbol de decisión y el algoritmo de raggruppamento de K-means.

Riferimenti:

https://www.kaggle.com/sixteenpython/machine-learning-with-iris-dataset

https://towardsdatascience.com/exploring-classifiers-with-python-scikit-learn-iris-dataset-2bcb490d2e1b

https://scikit-learn.org/stable/

https://certes.co.uk/types-of-artificial-intelligence-a-detailed-guide/

Circa l'autore:

Ciao lettore, sono Yashi Saxena, e attualmente lavoro presso TCS come ingegnere di sistemi. AI, ML e PNL sono sempre stati il ​​mio interesse, quindi eccomi qui a fare uno sforzo per saperne di più su questo campo. Puoi connetterti con me su Linkedin: https://www.linkedin.com/in/yashi-saxena-7a9522194/

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.