Skip to content

Instantly share code, notes, and snippets.

@8q
Created February 7, 2018 08:17
Show Gist options
  • Save 8q/a86b7bc75312d20b75c5048401fcf34b to your computer and use it in GitHub Desktop.
Save 8q/a86b7bc75312d20b75c5048401fcf34b to your computer and use it in GitHub Desktop.
import keras
import sklearn
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
from sklearn.metrics import f1_score
from keras.utils import to_categorical
from keras.layers import Dense, Activation
from keras.models import Sequential, Model
iris_X, iris_y = datasets.load_iris(return_X_y=True)
iris_X = preprocessing.scale(iris_X)
iris_y = to_categorical(iris_y)
train_X, test_X, train_y, test_y = train_test_split(iris_X, iris_y, test_size=0.25)
train_X, valid_X, train_y, valid_y = train_test_split(iris_X, iris_y, test_size=0.2)
model = Sequential()
model.add(Dense(10, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax'))
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=['accuracy'])
model.fit(train_X, train_y, epochs=30, batch_size=1, validation_data=(valid_X, valid_y))
pred_y = model.predict(test_X)
print(f1_score(np.argmax(test_y, 1), np.argmax(pred_y, 1), average='macro'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment