Rete neurale artificiale che utilizza un set di dati sul cancro al seno

Contenuti

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

introduzione

In questo articolo, aprenderemos cómo una de las técnicas de apprendimento profondo utilizadas para encontrar la precisión de Set di dati sul cancro al seno, ma so che la maggior parte dei tecnici non sa di cosa stiamo parlando, inizieremo dalle basi per poi passare al nostro argomento. Primo, faremo una breve introduzione al deep learning e poi, ¿qué es la neuronale rosso artificial?

Cos'è l'apprendimento profondo??

Se parliamo di deep learning, capisci solo che è un sottoinsieme o una sottoparte dell'apprendimento automatico. Possiamo dire che il deep learning è una funzione dell'intelligenza artificiale che imita il cervello umano ed elabora quei dati e crea modelli da utilizzare nel processo decisionale.

L'apprendimento profondo è il tipo di apprendimento automatico che è un po' come il cervello umano. Utilizza una struttura multistrato di algoritmi chiamati reti neurali. I loro algoritmi cercano di copiare i dati che gli umani analizzerebbero con una certa struttura logica. Conosciuto anche come rete neurale profonda o apprendimento neurale profondo.

903981_i5o6nx_dikyi1vbulfx77q-8739305

Nell'apprendimento profondo esiste un concetto chiamato Rete neurale artificiale che discuteremo brevemente di seguito.:

Artificiale neuronale rosso

Come suggerisce il nome, rete neurale artificiale, è la rete dei neuroni artificiali. Si riferisce a un modello ispirato biologicamente nel cervello. Possiamo dire che di solito è una rete computazionale basata su reti neurali biologiche che costruiscono la struttura del cervello umano.

Sapete tutti che i neuroni sono interconnessi tra loro nel nostro cervello e nel processo di trasmissione dei dati. È simile ai neuroni del cervello umano che sono interconnessi tra loro, la rete neurale è costituita da un gran numero di neuroni artificiali, chiamate unità disposte in una sequenza di strati. avere i vari strati di neuroni e formare una rete completa. questi neuroni sono chiamati nodi.

Si compone di tre strati che è:

  • Livello di input
  • Mantello nascosto
  • Livello di output
70593112-9565977

Creare ANN utilizzando un set di dati sul cancro al seno

Ora passiamo al nostro argomento, qui prenderemo il set di dati e quindi creeremo la rete neurale artificiale e classificheremo la diagnosi, primo, prendiamo un set di dati sul cancro al seno e poi andiamo avanti.

Set di dati: Set di dati sul cancro al seno

Dopo aver scaricato il set di dati, importeremo le librerie importanti che sono necessarie per ulteriori elaborazioni.

Importa librerie

#importare panda
importa panda come pd
#import numpy
importa numpy come np
importa matplotlib.pyplot come plt
import seaborn come sb

Qui importiamo i panda, NumPy e alcune librerie di visualizzazione.

Ora carichiamo il nostro set di dati usando i panda:

df = pd.read_csv('Cancro_seno.csv')
df
69704screenshot202021-06-1220075913-9220964

In questo set di dati, puntiamo al 'diagnosi’ colonna caratteristiche, quindi controlliamo il conteggio dei valori di quella colonna usando i panda:

# conteggio dei valori delle variabili in 'diagnosi'
df['diagnosi'].value_counts()
14470screenshot202021-06-1220080416-7384076

Ora visualizziamo i conteggi dei valori delle “colonne diagnostiche”: per una migliore comprensione

Visualizza conti a valore

plt.figure(figsize=[17,9])
sb.countplot(df['diagnosi'].value_counts())
plt.mostra()
46880screenshot20dal202021-06-122014-59-24-7553297

Valori nulli

Nel set di dati, dobbiamo controllare i valori nulli che sono presenti all'interno delle variabili per le quali usiamo i panda:

df.isnull().somma()

Dopo aver eseguito il programma, concludiamo che il nome della funzione 'Unnamed': 32’ contiene tutti i valori null, quindi eliminiamo o scartiamo quella colonna.

#caratteristica di caduta
df.drop(["Senza nome": 32','ID'],asse = 1, posto = vero)

Variabili indipendenti e dipendenti

Ora è il momento di dividere il set di dati in variabili indipendenti e dipendenti, per questo creiamo due variabili, uno rappresenta indipendente e l'altro rappresenta dipendente.

# variabili indipendenti
x = df.drop('diagnosi',asse=1)
#variabili dipendenti
y = df.diagnosi

Gestione del valore categoriale

Cuando imprimimos la variabile dipendente e quindi vediamo che contengono dati categorici e dobbiamo convertire i dati categorici in formato binario per un'ulteriore elaborazione. Perciò, usiamo Scikit learn Label Encoder per codificare i dati categorici.

da sklearn.preprocessing import LabelEncoder
#creare l'oggetto
lb = LabelEncoder()
y = lb.fit_transform(e)

Divisione dati

Ahora es el momento de dividir los datos en partes de addestramento y prueba:

da sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest = train_test_split(X,e,test_size=0.3,random_state=40)

Scala i dati

Quando abbiamo creato la rete neurale artificiale, dobbiamo ridimensionare i dati a numeri più piccoli perché l'algoritmo di deep learning moltiplica i pesi e i dati di input dei nodi e richiede molto tempo, quindi per ridurre quel tempo ridimensioniamo i dati.

scalare, usiamo scikit impara Scalatore standard modulo, scaliamo il set di dati di training e test:

#importazione di StandardScaler
da sklearn.preprocessing import StandardScaler
#creare un oggetto
sc = Scala standard()
xtrain = sc.fit_transform(xtrain)
xtest = sc.transform(xtest)

Da qui iniziamo a creare la rete neurale artificiale, per questo importiamo le librerie importanti che vengono utilizzate per creare ANN:

#importare keras
importare keras
#importazione di moduli sequenziali
da keras.models import Sequential
# importare il modulo denso per i livelli nascosti
da keras.layers import Dense
#importare le funzioni di attivazione
da keras.layers import LeakyReLU,PRELU,ELU
da keras.layers import Dropout

Creazione di livelli

Dopo aver importato quelle librerie, creiamo i tre tipi di strati:

  • Livello di input
  • Mantello nascosto
  • Livello di output

Primo, creiamo il modello:

#creazione del modello
classificatore = Sequenziale()

UN sequenziale El modelo es apropiado para una pila simple de capas donde cada capa tiene exactamente un tensor de entrada y un tensor de salida.

Ora creiamo gli strati della rete neurale:

#primo livello nascosto
classificatore.add(Denso(unità=9,kernel_initializer="lui_uniforme",attivazione = 'rileggere',input_dim=30))
#secondo livello nascosto
classificatore.add(Denso(unità=9,kernel_initializer="lui_uniforme",attivazione = 'rileggere'))
# ultimo livello o livello di output
classificatore.add(Denso(unità=1,kernel_initializer="glorot_uniform",attivazione='sigmoide'))

Nel seguente codice, il metodo Dense viene utilizzato per creare i livelli, en el que usamos parametri fundamentales. Il primo parametro è Nodi di uscita, il Il secondo è l'inizializzatore per la matrice dei pesi del kernel, el tercero es la funzione sveglia y el último parámetro son los nodos de entrada o el número de características independientes.

Dopo aver eseguito questo codice, ne prendiamo il riepilogo utilizzando:

#prendendo il riassunto dei livelli
classificatore.riepilogo()
99565screenshot202021-06-1220084647-6110422

Compilando ANN

Ora compiliamo il nostro modello con l'ottimizzatore:

#compilazione dell'ANN
classificatore.compila(ottimizzatore="Adamo",perdita="binary_crossentropy",metriche=['precisione'])

Adeguamento della ANN ai dati di training

Dopo aver compilato il modello, dobbiamo adattare la ANN ai dati di addestramento per la previsione:

 #fitting the ANN to the training set
model = classifier.fit(xtrain,ytrain,batch_size=100,epoche=100)
82560screenshot202021-06-1220085211-7230726

il adattarsi() Il metodo adatta la ANN ai dati di addestramento, nei parametri impostiamo i valori specifici di ogni variabile come dimensione del lotto, epoche, eccetera. Finalmente, abbiamo trovato un eccellente punteggio di precisione, quindi il nostro modello si adatta perfettamente ai dati di allenamento.

Dopo aver addestrato i dati, dobbiamo anche testare il punteggio di accuratezza dei dati del test, vediamo dopo:

#ora test per i dati di prova
y_pred = classificatore.predict(test)

Quando si esegue questo codice, abbiamo scoperto che y_pred conteneva i diversi valori, quindi convertiamo i valori di previsione in valori di soglia come True, Impostore.

#convertire i valori
y_pred = (y_pred>0.5)
Stampa(y_pred)
94786screenshot202021-06-1220085914-5804980

Matrice di punteggiatura e confusione

Ora controlliamo la matrice di confusione e il punteggio dei valori previsti.

da sklearn.metrics import confusione_matrix
da sklearn.metrics import precision_score
cm = confusione_matrice(ytest,y_pred)
punteggio = precision_score(ytest,y_pred)
Stampa(cm)
Stampa('il punteggio è:',punto)

Produzione:-

71586a-2228284

Visualizza matrice di confusione

Qui visualizziamo la matrice di confusione dei valori di previsione.

# creazione di una mappa termica della matrice di compressione
plt.figure(figsize=[14,7])
sb.heatmap(cm,annot=Vero)
plt.mostra()
14201screenshot202021-06-1220090913-4427746

Visualizza la cronologia dei dati

Ora visualizziamo la perdita e la precisione in ogni epoca.

# elenca tutti i dati nella cronologia
Stampa(chiavi.storia.modello())
# riassumere la storia per la precisione
plt.trama(modello.storia['precisione'])
plt.titolo("precisione del modello")
plt.ylabel('precisione')
plt.xlabel('epoca')
plt.legend(['treno', 'test'], loc ="superiore sinistro")
plt.mostra()
84984screenshot202021-06-1220091044-7500253
# riassumere la storia per la perdita
plt.trama(modello.storia['perdita'])
plt.titolo("perdita di modello")
plt.ylabel('perdita')
plt.xlabel('epoca')
plt.legend(['treno', 'test'], loc ="superiore sinistro")
plt.mostra()
58930screenshot202021-06-1220091136-4070596

Modello di risparmio

Finalmente, salviamo il nostro modello.

#salvare il modello
classificatore.salva('Nome_file.h5')

Nota finale

Questa è la mia prima ANN creata in deep learning, Sono un principiante nell'apprendimento profondo. Faccio del mio meglio per spiegare questo articolo, spero ti piaccia. Grazie per aver letto questo articolo.

Connettiti con me su LinkedIn: Profilo

Grazie.

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.