コード例 #1
0
                                                    test_size=0.20,
                                                    random_state=42)

# Traina um modelo usando regressão logística
svc = KNeighborsClassifier(n_neighbors=3)
svc.fit(X_train, y_train)

# Determina acurácia nos dados de teste
print('Acurácia Área: %f' % svc.score(X_test, y_test))

# Obtém predições para os dados de teste
y_pred = svc.predict(X_test)

# Obtém nomes das áreas ordenado alfabeticamente
data_dir = 'D:\\Users\\camposb\\Projetos\\data'
dados = carrega_dados(data_dir)
labels = sorted(np.unique(dados.Área))

# Determina matriz de confusão
cm = confusion_matrix(y_test, y_pred)

# Imprime e salva matriz de confusão
np.set_printoptions(precision=2, suppress=True)
#print(cm / cm.sum(1))
pd.DataFrame(cm, columns=labels).to_csv('cm.csv')

# Imprime precisão, revocação e f1 por classe
#print(classification_report(y_test, y_pred, target_names=labels))

# Imprime matriz de confusão com porcentagens
#np.set_printoptions(precision=2, suppress=True)
コード例 #2
0
from dados import carrega_dados
from sklearn.naive_bayes import MultinomialNB

x, y = carrega_dados()

treina_dados = x[:70]
treina_marcacoes = y[:70]

testa_dados = x[-29:]
testa_marcacoes = y[-29:]

modelo = MultinomialNB()
modelo.fit(treina_dados, treina_marcacoes)

resultado = modelo.predict(testa_dados)

diferencas = resultado - testa_marcacoes

acertos = [d for d in diferencas if d == 0]

total_acertos = len(acertos)
erros = [d for d in diferencas if d != 0]

total_erros = len(erros)
total_elementos = len(testa_dados)

taxa_de_acerto = 100.0 * total_acertos / total_elementos
taxa_de_erro = 100.0 * total_erros / total_elementos

print("taxa de acerto: ", taxa_de_acerto, "%")
print("taxa de erro: ", taxa_de_erro, "%")