Created
July 28, 2017 18:32
-
-
Save kevinpCroat/6261ec0885e502f7ab205ca4b73fd9f0 to your computer and use it in GitHub Desktop.
dsafsdaf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from keras.models import Sequential | |
from keras.layers import Dense | |
#rm /Users/kevinperko/anaconda/lib/python2.7/site-packages/sklearn/utils/random.so | |
from sklearn.model_selection import train_test_split, StratifiedKFold | |
import numpy | |
numpy.random.seed(7) | |
#seed = 7 | |
dataset = numpy.loadtxt("/Users/kevinperko/Downloads/pima-indians-diabetes.csv",delimiter=",") | |
X = dataset[:,0:8] | |
Y = dataset[:,8] | |
model = Sequential() | |
model.add(Dense(12, input_dim=8, activation='relu')) | |
model.add(Dense(8, activation='relu')) | |
model.add(Dense(1, activation='sigmoid')) | |
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) | |
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) | |
#automatic validation | |
model.fit(X,Y, validation_split=0.33, epochs=150, batch_size=10) | |
#manual validation | |
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=seed) | |
model.fit(X_train, y_train, validation_data=(X_test,y_test), epochs=150, batch_size=10) | |
kfold = StratifiedKFold(n_splits = 10, shuffle=True, random_state = seed) | |
cvscores = [] | |
for train,test in kfold.split(X,Y): | |
model = Sequential() | |
model.add(Dense(12, input_dim=8, activation='relu')) | |
model.add(Dense(8, activation='relu')) | |
model.add(Dense(1, activation='sigmoid')) | |
#something | |
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) | |
#something else | |
model.fit(X[train], Y[train], epochs = 150, batch_size=10, verbose=0) | |
scores = model.evaluate(X[test], Y[test], verbose=0) | |
#something more | |
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) | |
cvscores.append(scores[1]*100) | |
print("%.2f%% (+/- %.2f%%" % (numpy.mean(cvscores), numpy.std(cvscores))) | |
#new model | |
from keras.models import Sequential | |
from keras.layers import Dense | |
from keras.wrappers.scikit_learn import KerasClassifier | |
from sklearn.model_selection import StratifiedKFold | |
from sklearn.model_selection import cross_val_score | |
import numpy | |
def create_model(): | |
model = Sequential() | |
model.add(Dense(12, input_dim=8, activation='relu')) | |
model.add(Dense(8, activation='relu')) | |
model.add(Dense(1, activation='sigmoid')) | |
#compile | |
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) | |
return model | |
seed = 7 | |
numpy.random.seed(seed) | |
dataset = numpy.loadtxt("/Users/kevinperko/Downloads/pima-indians-diabetes.csv",delimiter=",") | |
X = dataset[:,0:8] | |
Y = dataset[:,8] | |
model = KerasClassifier(build_fn=create_model, epochs = 150, batch_size=10, verbose=0) | |
kfold = StratifiedKFold(n_splits = 10, shuffle=True, random_state = seed) | |
results = cross_val_score(model, X, Y, cv=kfold) | |
print(results.mean()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment