Modelli di classificazione multiclasse

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

David Cecchini

Data Scientist

Revisione del modello di sentiment analysis

# Build and compile the model
model = Sequential()

model.add(Embedding(10000, 128))
model.add(LSTM(128, dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Architettura del modello

Si può riutilizzare la stessa architettura

# Build the model
model = Sequential()
model.add(Embedding(10000, 128))
model.add(LSTM(128, dropout=0.2))

# Output layer has `num_classes` units and uses `softmax` model.add(Dense(num_classes, activation="softmax"))
# Compile the model model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) ...
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Dataset 20 Newsgroups

Dataset 20 Newsgroups

  • Disponibile in sklearn.datasets import fetch_20newsgroups
# Importa la funzione per caricare i dati
from sklearn.datasets import fetch_20newsgroups

# Scarica train e test set news_train = fetch_20newsgroups(subset='train')
news_test = fetch_20newsgroups(subset='test')
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Dataset 20 Newsgroups

I dati hanno questi attributi:

  • news_train.DESCR: Documentazione.
  • news_train.data: Testi.
  • news_train.filenames: Percorso dei file su disco.
  • news_train.target: Indice numerico delle classi.
  • news_train.target_names: Nomi unici delle classi.
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Pre-elabora i testi

# Import modules
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.utils import to_categorical

# Crea e adatta il tokenizer tokenizer = Tokenizer() tokenizer.fit_on_texts(news_train.data)
# Crea le variabili (X, Y) X_train = tokenizer.texts_to_sequences(news_train.data) X_train = pad_sequences(X_train, maxlen=400) Y_train = to_categorical(news_train.target)
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Training sui dati

Allena il modello sui dati di training

# Train the model
model.fit(X_train, Y_train, 
          batch_size=64, epochs=100)

# Evaluate on test data
model.evaluate(X_test, Y_test)
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Ayo berlatih!

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparing Video For Download...