Recurrent Neural Networks (RNNs) for Language Modeling with Keras
David Cecchini
Data Scientist
Applications of text classification:
What change from binary to multi class:
y
Shape of the output variable y
:
# Example: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)
Number of units on the output layer:
# Output layer
model.add(Dense(num_classes))
Activation function on the output layer:
softmax
gives the probability of every class# Output layer
model.add(Dense(num_classes, activation="softmax"))
Loss function:
# Compile the model
model.compile(loss='categorical_crossentropy')
y = ["sports", "economy", "data_science", "sports", "finance"] # Transform to pandas series object y_series = pd.Series(y, dtype="category")
# Print the category codes print(y_series.cat.codes)
0 3
1 1
2 0
3 3
4 2
from tensorflow.keras.utils import to_categorical
y = np.array([0, 1, 2]) # Change to categorical y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Recurrent Neural Networks (RNNs) for Language Modeling with Keras