def teste_svc(X_train, y_train, X_val, y_val): classification_results = [] kernels = ['rbf', 'poly', 'sigmoid'] gammas = ['auto', 'scale'] shapes = ['ovr', 'ovo'] combinations = product(kernels, gammas, shapes) for k, g, s in combinations: start = time.time() classificador = SVC(kernel=k, gamma=g, decision_function_shape=s) classificador.fit(X_train, y_train) y_pred = classificador.predict(X_val) end = time.time() time_elapsed = end - start new_result = (k, g, s, classification_report(y_val, y_pred), labeled_confusion_matrix(y_val, y_pred), time_elapsed) classification_results.append(new_result) print("SVC:") for k, g, s, cr, cm, t in classification_results: print(f"kernel: {k}, gamma: {g}, decision function shape: {s}") print(f"Tempo para classificação: {t} s") print(cr) print(cm) print('___________________________________________________')
def main_validacao(): """Versão de validação. Treina com arquivos da pasta treinamento e prediz arquivos da pasta validação""" random.seed(SEED) np.random.seed(SEED) #criação dos datasets a partir dos arquivos de áudio X_train, y_train = create_set(PATH_TREINAMENTO) X_val, y_val = create_set(PATH_VALIDACAO) #X_train = normalize(X_train, axis=0, norm='l2') #X_val = normalize(X_val, axis=0, norm='l2') classificador = RandomForestClassifier(n_estimators=75) classificador.fit(X_train, y_train) # classificação final e avaliação dos resultados print("\nAvaliação dos Resultados\n") y_pred = classificador.predict(X_val) print("\nPerformance do Modelo para cada classe de Caractér\n") print(classification_report(y_val, y_pred)) print("\nMatriz de confusão\n") print(labeled_confusion_matrix(y_val, y_pred)) #reorganização dos labels para formar os captchas captcha_test = rearrange(y_val, AUDIOS_POR_ARQUIVO) captcha_pred = rearrange(y_pred, AUDIOS_POR_ARQUIVO) acerto_captchas = accuracy_score(captcha_test, captcha_pred) * 100 print( "\nA acurácia obtida com o modelo para a predição dos captchas no conjunto de validação foi de %2.2f%%.\n" % (acerto_captchas))
def teste_kNeighbors(X_train, y_train, X_val, y_val): classification_results = [] n_neighbors = [i for i in range(5, 7)] for n in n_neighbors: classificador = KNeighborsClassifier(n_neighbors=n) classificador.fit(X_train, y_train) y_pred = classificador.predict(X_val) new_result = (n, classification_report(y_val, y_pred), labeled_confusion_matrix(y_val, y_pred)) classification_results.append(new_result) print("K neighbors:") for n, cr, cm in classification_results: print(f"K = : {n}") print(cr) print(cm) print('___________________________________________________')
def teste_MLP(X_train, y_train, X_val, y_val): classification_results = [] hidden_layer_sizess = [(100, ), (150, ), (200, ), (100, 20), (100, 50), (150, 20), (150, 50), (200, 20), (200, 50)] activation_functions = ['tanh'] #'identity', 'logistic', 'tanh', 'relu' solvers = ['lbfgs'] #'lbfgs','sgd','adam' learning_rates = ['constant', 'invscaling', 'adaptive'] #'constant','invscaling','adaptive' combinations = product(hidden_layer_sizess, activation_functions, solvers, learning_rates) for hls, af, sv, lr in combinations: start = time.time() classificador = MLPClassifier(hidden_layer_sizes=hls, solver=sv, learning_rate=lr, activation=af) classificador.fit(X_train, y_train) y_pred = classificador.predict(X_val) end = time.time() time_elapsed = end - start new_result = (hls, af, sv, lr, classification_report(y_val, y_pred), labeled_confusion_matrix(y_val, y_pred), time_elapsed) classification_results.append(new_result) print("MLP:") for hls, af, sv, lr, cr, cm, t in classification_results: print( f"Função de ativação: {af}, Solver: {sv}, Learning rate: {lr}, Hidden_layer: {hls}" ) print(f"Tempo para classificação: {t} s") print(cr) print(cm) print('___________________________________________________')
def teste_random_forest(X_train, y_train, X_val, y_val): classification_results = [] n_estimators = [i for i in range(10, 100)] for n in n_estimators: start = time.time() classificador = RandomForestClassifier(n_estimators=n) classificador.fit(X_train, y_train) y_pred = classificador.predict(X_val) end = time.time() time_elapsed = end - start new_result = (n, classification_report(y_val, y_pred), labeled_confusion_matrix(y_val, y_pred), time_elapsed) classification_results.append(new_result) print("Random Forest:") for n, cr, cm, t in classification_results: print(f"Num de estimadores: {n}") print(f"Tempo para classificação: {t} s") print(cr) print(cm) print('___________________________________________________')