İçeriğe geç

Deep Learning Best Score Ölçümü

Burada mantık deep learning için verilen değerlerin ölçülerek en iyi skor yakalandığında onu tutarak en son işlem sonunda bildirmesi işlemidir.

Gridseachcv mantığı gibi fakat el ile yazılmış halidir. Hız olarak yavaş olabilir.

from sklearn.cross_validation import train_test_split
from sklearn.metrics import confusion_matrix
import pandas as pd
import keras
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.utils.np_utils import to_categorical
from sklearn.metrics import confusion_matrix
import os.path
import tensorflow as tf
from sklearn.preprocessing import StandardScaler
from keras import metrics
from sklearn.metrics import accuracy_score
def decodeCategory(encoded_data):
    l = []
    for i in range(encoded_data.shape[0]):
        decoded_datum = np.argmax(encoded_data[i])
        l.append(decoded_datum)
    return np.asarray(l)
df = pd.read_csv("data.csv", index_col=False, header=None, sep=',')
x = df.iloc[:,:242].values
y = df.iloc[:,242:].values
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=42)
graph = tf.get_default_graph()
p_activation=[{'activation':'relu'}, {'activation':'tanh'}, 
        {'activation':'sigmoid'},{'activation':'hard_sigmoid'},
        {'activation':'linear'},{'activation':'exponential'},
        {'activation':'softsign'},{'activation':'softplus'},
        {'activation':'elu'},{'activation':'softmax'},
        {'activation':'selu'}]
p_optimizer=[{'optimizer':'sgd'},{'optimizer':'RMSprop'},
             {'optimizer':'Adagrad'},{'optimizer':'Adadelta'},
             {'optimizer':'Adam'},{'optimizer':'Adamax'},
             {'optimizer':'Nadam'}]
p_kernel=[{'k_init':'Zeros'},{'k_init':'Ones'},{'k_init':'Constant'},
          {'k_init':'RandomNormal'},{'k_init':'RandomUniform'},{'k_init':'TruncatedNormal'},
          {'k_init':'Orthogonal'},{'k_init':'Identity'},{'k_init':'lecun_uniform'},
          {'k_init':'glorot_normal'},{'k_init':'glorot_uniform'},{'k_init':'he_normal'},
          {'k_init':'lecun_normal'},{'k_init':'he_uniform'}]
best=0
s_durum=['','','']
for i in p_activation:
    for j in p_optimizer:
        for k in p_activation:
            classifier = Sequential()
            classifier.add(Dense(120, 
                                 kernel_initializer="uniform", 
                                 activation = i['activation'] , 
                                 input_dim = 242))
            classifier.add(Dense(122, 
                                 kernel_initializer="uniform", 
                                 activation = i['activation']))
            classifier.add(Dense(len(np.unique(y_train)), 
                                 activation=k['activation']))
            classifier.compile(optimizer=j['optimizer'],
                               loss='categorical_crossentropy', 
                               metrics = ['accuracy'])
            classifier.fit(X_train, to_categorical(y_train), epochs=2)
            sc = StandardScaler()
            #sc_X=sc.fit_transform(data.iloc[:,0:390].values.astype(float))
            #keras_y_pred=classifier.predict(sc_X)
            keras_y_pred=classifier.predict(X_test)
            keras_y_pred=(keras_y_pred>0.5).astype(int)
            keras_y_pred=decodeCategory(keras_y_pred)
            #print(confusion_matrix(keras_y_pred, y_test))
            score=accuracy_score(keras_y_pred, y_test)
            print(score)
            if best<score:
                best=score
                print("En iyi ",i," ",j," ",k)
                s_durum[0]=i
                s_durum[1]=j
                s_durum[2]=k
print(s_durum)
Tarih:Makine Öğrenmesi

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir