model.add(LeakyReLU()) model.add(Dropout(.15)) model.add(BatchNormalization()) # model.add(GaussianNoise(1)) model.add(Dense(64)) model.add(LeakyReLU()) model.add(BatchNormalization()) model.add(Dense(6, activation='softmax')) # In[85]: # Let's use a different optimizer this time noisy = add_gradient_noise(RMSprop) model.compile( optimizer="Adamax", # model.compile(optimizer=noisy(), loss='categorical_crossentropy', metrics=['accuracy']) # In[86]: callbacks = [ EarlyStopping(monitor='val_loss', patience=16), ModelCheckpoint(filepath='best_model.h5', monitor='val_loss', save_best_only=True) ] # In[87]: history = model.fit(x_train,
def perform_learning(train_features, test_features, f_output, local, gglobal, deep=False): print(train_features[0]) if (local and gglobal): train = [x[1:-1] for x in train_features] test = [x[1:-1] for x in test_features] elif (local and not gglobal): train = [x[1:5] for x in train_features] test = [x[1:5] for x in test_features] elif (not local and gglobal): train = [x[5:-1] for x in train_features] test = [x[5:-1] for x in test_features] # print train[0] train_tags = [x[-1] for x in train_features] test_tags = [x[-1] for x in test_features] train = z_scoring(train) test = z_scoring(test) print(len(train[0])) print(train[0]) if not deep: algos = ['adaBoost', 'RF', 'L-SVM', 'RBF-SVM', 'SGD'] # algos = ['RBF-SVM'] for algo in algos: print(algo) f_output.writelines(algo + '\n') if algo == 'adaBoost': clf = AdaBoostClassifier(n_estimators=100) if algo == 'RF': clf = RandomForestClassifier(n_estimators=1000, criterion="gini", min_samples_split=15, oob_score=True, class_weight='balanced', max_depth=3) if algo == 'L-SVM': clf = SVC(kernel='linear', class_weight="balanced", C=0.01, probability=True) if algo == 'RBF-SVM': clf = SVC(class_weight="balanced", C=0.01, probability=True) if algo == 'SGD': clf = SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1, eta0=0.0, fit_intercept=True, l1_ratio=0.15, learning_rate='optimal', loss='hinge', n_iter=5, n_jobs=1, penalty='l2', power_t=0.5, random_state=None, shuffle=True, verbose=0, warm_start=False) # print train clf.fit(train, train_tags) if (algo == 'RF'): print(len(clf.feature_importances_)) print(clf.feature_importances_) f_output.writelines(str(clf.feature_importances_) + '\n') evaluate_auc(clf, test, test_tags, train, train_tags, f_output) else: print(train[0]) from keras.models import Sequential from keras.layers import Dense, Dropout from keras.regularizers import l2, l1_l2 clf = Sequential() clf.add( Dense(100, activation="relu", kernel_initializer="he_normal", input_dim=train.shape[1])) # self.classifier.add(Dropout(0.5)) # self.classifier.add(Dense(100, init='he_normal', activation='relu', W_regularizer=l2(0.5))) clf.add(Dropout(0.1)) clf.add( Dense(1, init='uniform', activation='sigmoid', W_regularizer=l1_l2(0.2))) clf.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) clf.fit(train, train_tags, validation_data=[test, test_tags], epochs=100, batch_size=10, verbose=2) evaluate_auc(clf, test, test_tags, train, train_tags, f_output)