Advertisement
11eimilia11

ML P03

Jan 15th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 18.47 KB | None | 0 0
  1. import pandas as pd
  2. from sklearn.model_selection import KFold
  3. from sklearn.neighbors import KNeighborsClassifier
  4. from sklearn.tree import DecisionTreeClassifier
  5. from sklearn.naive_bayes import GaussianNB
  6. from sklearn.linear_model import LogisticRegression
  7. from sklearn.svm import SVC
  8. from Lista02 import FuncoesML as fun
  9. from scipy import stats
  10. import numpy as np
  11. from random import randint
  12. from sklearn.cluster import KMeans
  13. from Lista03 import pso as pso
  14. import time
  15.  
  16. #Criando a classe receita que irá conter nome, classe e vetor de ingredientes
  17. class Receita:
  18.     Name = None
  19.     Class = 0
  20.     ingredientes = []
  21.     ingredientesnorm = []
  22.  
  23.  
  24. #Método que retorna o vetor de ingredientes
  25.     def getingrednorm(self):
  26.         return self.ingredientesnorm
  27.  
  28. #Construtor da classe receita
  29.     def __init__(self, name, Class, ingredientes):
  30.         self.Name = name
  31.         self.Class = Class
  32.         self.ingredientes = ingredientes
  33.  
  34. #Método que adiciona ingredientes no vetor de ingredientes
  35.     def adicionaringrediente(self, ingrediente):
  36.         self.ingredientes.append(ingrediente)
  37.  
  38. #abrindo o arquivo com a base de dados
  39. reshipe = open("C:/Users/Auricelia/Desktop/DatasetsML/ReshibaseQ.txt", "rt", encoding="utf8")
  40.  
  41. #criando o vetor de receitas
  42. receitas = []
  43.  
  44. # preenchendo o vetor de receitas
  45. for receita in reshipe:
  46.     dividido = receita.split(sep=',')
  47.     dividido[(len(dividido) - 1)] = dividido[(len(dividido) - 1)].replace('\n', '')
  48.     ingredientes = []
  49.  
  50.     for x in range(2, len(dividido)):
  51.         ingredientes.append(dividido[x])
  52.  
  53.     receitas.append(Receita(dividido[1], dividido[0], ingredientes))
  54.  
  55. #vetor que irá receber todos os ingredientes sem repetição para fazer os vetores binários
  56. todosingredientes = []
  57.  
  58. #preenchendo o vetor 'todosingredientes' sem repetição
  59. for rec in receitas:
  60.     for ingrediente in rec.ingredientes:
  61.  
  62.         if todosingredientes.__contains__(ingrediente) == False:
  63.             todosingredientes.append(ingrediente)
  64. #ordenando o vetor
  65. todosingredientes = sorted(todosingredientes)
  66.  
  67. # preenchendo nos objetos receita o vetor binário com 0
  68.  
  69. for rec in receitas:
  70.     norm = []
  71.     for y in range(0, len(todosingredientes)):
  72.         norm.append(0)
  73.     rec.ingredientesnorm = norm
  74.  
  75. # Colocando 1 na posição em que existe o ingrediente
  76.  
  77. for rec in receitas:
  78.     for y in rec.ingredientes:
  79.         pos = todosingredientes.index(y)
  80.         rec.ingredientesnorm[pos] = 1
  81.  
  82. # Vetor que irá receber os vetores binários de ingreientes de cada receita
  83. arrayingredientesnorm = []
  84.  
  85. # Preenchendo o vetor com os ingredientes normalizados
  86.  
  87. for rec in receitas:
  88.     arrayingredientesnorm.append(rec.ingredientesnorm)
  89.  
  90. # Vetor que irá receber as classes de cada receita
  91. arrayclasse = []
  92.  
  93. # preenchendo o vetor com as classes de cada receita
  94. for rec in receitas:
  95.     arrayclasse.append(rec.Class)
  96.  
  97. # criando o dataframe que irá armazenar os ingredientes
  98. df = pd.DataFrame(arrayingredientesnorm)
  99.  
  100. #adicionando a classe ao dataframe
  101. df['Class'] = arrayclasse
  102. lista = df['Class']
  103. del df['Class']
  104. df_final = np.array(df).astype(float)
  105.  
  106. #Salvando a base de dados normalizada
  107. df.to_csv('C:/Users/Auricelia/Desktop/DataSetsML/Receitas_norm.csv')
  108.  
  109. print('TAMANHO DF :',df_final[0].size*4)
  110.  
  111. '''
  112. COMEÇAM OS ALGORITMOS DE AGRUPAMENTO
  113.  
  114. '''
  115. print('COMEÇAM OS ALGORITMOS DE AGRUPAMENTO')
  116. print('------------------------------------------')
  117.  
  118. KCLUSTERS = 4
  119.  
  120. def WCSS(distance):
  121.     retorno = []
  122.     for x in distance:
  123.         soma = 0
  124.         for z in x:
  125.             soma += z ** 2
  126.         retorno.append(soma)
  127.  
  128.     return retorno
  129.  
  130. def break_vectors(vector):
  131.     global KCLUSTERS
  132.     retorno = np.split(vector, KCLUSTERS)
  133.     return retorno
  134.  
  135. def wcssGenetic(centers):
  136.     global KCLUSTERS
  137.     array = break_vectors(centers)
  138.  
  139.     kmeans = KMeans(KCLUSTERS, init=pd.DataFrame(array), max_iter=1, n_init=1)
  140.     kmeans.fit(pd.DataFrame(df_final))
  141.  
  142.     return kmeans.inertia_
  143.  
  144. def generatepopulation(X, numberpopu, K, rng):
  145.     population = []
  146.  
  147.     for x in range(numberpopu):
  148.         first = rng.permutation(X.shape[0])[:K]
  149.         population.append(np.concatenate(X[first]))
  150.  
  151.     return population
  152. print(".....Começa a execução.....")
  153. print()
  154.  
  155.  
  156. # Vetores de acurácia dos algoritmos K-means e K-means híbrido
  157. KmeansAcc = []
  158. KmeansHbAcc = []
  159. GeneticAcc = []
  160.  
  161. #Vetores que irão armazenar o WCSS do K-means e do K-means híbrido
  162. WCSSkmeans = []
  163. WCSShb = []
  164.  
  165.  
  166. for y in range(10):
  167.  
  168.     print("RODADA " + str(y))
  169.     resultparcial = []
  170.     distance = []
  171.     h = randint(1, 10)
  172.     rng = np.random.RandomState(h)
  173.  
  174.     print("-----------------------------------------------")
  175.     for algumacoisa in range(20):                                 # laço que irá executar 20 vezes o Kmeans
  176.         print("VEZ KMEANS " + str(algumacoisa))
  177.         centers, labels, distance = fun.find_clusters(df_final, KCLUSTERS, rng, 100)        # AQUI VOCE PASSA 4 PARAMETROS, O SEU DATAFRAME EM UM NUMPYARRAY, O NUMERO DE CLASSES, O RNG QUE É A SEED E O NUMERO MAX DE ITERAÇÕES
  178.         print(fun.accuracy_majority_vote(df_final,labels,lista,2))  # PRINTA O VOTO MAJORITARIO, QUE RECEBE SEU DATAFRAME EM FORMA DE ARRAY, OS LABELS DO RETORNO DE CIMA, E A LISTA QUE É A COLUNA DE LABELS DO SEU DATAFRAME ANTES DE VIRAR NUMPYARRAY
  179.         KmeansAcc.append(fun.accuracy_majority_vote(df_final,labels,lista,2))
  180.         retorno = WCSS(distance)
  181.         resultparcial.append(retorno[len(retorno) - 1])
  182.  
  183.  
  184.     resultparcial = np.sort(resultparcial)
  185.  
  186.     WCSSkmeans.append(resultparcial[0])
  187.  
  188.     population = generatepopulation(df_final, 20, KCLUSTERS, rng)
  189.  
  190.     p = pso(20, wcssGenetic, 0, 200000, 1608, 100, init=population)
  191.     array = np.array(p.get_Gbest())
  192.     array = np.split(array, 4)
  193.     labelsgenetic, distancegenetic = fun.geneticlabels(df_final,array)
  194.     print(fun.accuracy_majority_vote(df_final,labelsgenetic,lista,4))
  195.     GeneticAcc.append(fun.accuracy_majority_vote(df_final,labelsgenetic,lista,4))
  196.  
  197.     print("Hybrid:")
  198.     cen, lbl, dis = fun.find_clustersgenetic(df_final, KCLUSTERS, 100, array)
  199.     print(fun.accuracy_majority_vote(df_final, lbl, lista, 4))
  200.     KmeansHbAcc.append(fun.accuracy_majority_vote(df_final, lbl, lista, 4))
  201.  
  202.     ret = WCSS(dis)
  203.     WCSShb.append(ret[len(ret) - 1])
  204.  
  205.     # num = retorno[len(retorno) - 1]
  206.     # dictionary[h] = num
  207.  
  208. #
  209. # print("Distancias" ,distance)
  210.  
  211.  
  212.  
  213. print("__________________WCSS___________________")
  214. print()
  215. print(np.mean(WCSSkmeans), 'Acurácia Média Kmeans')
  216. print(np.std(WCSSkmeans), 'Desvio Padrao Kmeans')
  217. print(np.median(WCSSkmeans),'Mediana Kmeans')
  218. print(np.mean(WCSShb), 'Acurácia Média K hibrido')
  219. print(np.std(WCSShb), 'Desvio padrao K hibrido')
  220. print(np.median(WCSShb), 'Mediana K-hibrido')
  221. print("__________________________________________")
  222.  
  223. print("__________________VOTO MAJORITARIO_______________")
  224. print()
  225. print("Kmeans:" ,np.mean(KmeansAcc))
  226. print("KmeansHybrid:" ,np.mean(KmeansHbAcc))
  227. print("Genetic:" ,np.mean(GeneticAcc))
  228.  
  229. print('FIM AGRUPAMENTO')
  230. print('------------------------------------------')
  231.  
  232.  
  233.  
  234. '''
  235.  
  236. FIM DOS ALGORITMOS DE AGRUPMENTO
  237.  
  238. '''
  239. #COMEÇAM OS ALGORITMOS DE CLASSIFICAÇÃO
  240. '''
  241. # criando o dataframe que irá armazenar os ingredientes
  242. df = pd.DataFrame(arrayingredientesnorm)
  243.  
  244.  
  245. #adicionando a classe ao dataframe
  246. df['Class'] = arrayclasse
  247.  
  248. print(df)
  249.  
  250. #print(df)
  251. '''
  252. print('Entrada',fun.quantidade_por_classe(reshipe, 'Class', 1))
  253. print('Prato principal',fun.quantidade_por_classe(reshipe, 'Class', 2))
  254. print('Acompanhamento',fun.quantidade_por_classe(reshipe, 'Class', 3))
  255. print('Sobremesa',fun.quantidade_por_classe(reshipe, 'Class', 4))
  256. '''
  257.  
  258.  
  259. #df.to_csv('C:/Users/Auricelia/Desktop/DataSetsML/df_norm.csv')
  260.  
  261. #instanciando o kfold com k = 10
  262. kfold = KFold(10, True, 1)
  263.  
  264. #instanciando os aloritmos usados
  265.  
  266. #KNN K = 3, K = 5, K = 7
  267.  
  268. K_3 = KNeighborsClassifier(n_neighbors=3, metric='euclidean')
  269. acertoK_3 = [] # vetor que irá conter as acuráricas do algoritmo em cada um dos testes
  270. k_3time = [] # vetor que irá conter os tempos de duração de cada algoritmo em cada um dos testes
  271.  
  272. K_5 = KNeighborsClassifier(n_neighbors=5, metric='euclidean')
  273. acertoK_5 = []
  274. k_5time = []
  275.  
  276. K_7 = KNeighborsClassifier(n_neighbors=7, metric='euclidean')
  277. acertoK_7 = []
  278. k_7time = []
  279.  
  280. # KNN Ponderado K = 3, K = 5, K = 7
  281.  
  282. KP_3 = KNeighborsClassifier(n_neighbors=3, weights='distance',metric='euclidean')
  283. acertoKP_3 = []
  284. kp3time = []
  285.  
  286. KP_5 = KNeighborsClassifier(n_neighbors=5, weights='distance', metric='euclidean')
  287. acertoKP_5 = []
  288. kp5time = []
  289.  
  290. KP_7 = KNeighborsClassifier(n_neighbors=7, weights='distance', metric='euclidean')
  291. acertoKP_7 = []
  292. kp7time = []
  293.  
  294. #Naive Bayes
  295.  
  296. naiveBayes = GaussianNB()
  297. acertonaiveBayes = []
  298. naiveBayestime = []
  299.  
  300. #Árvore de decisão
  301.  
  302. ArvoreDecisao = DecisionTreeClassifier()
  303. acertoArvoreDecisao= []
  304. arvoreDecisaotime = []
  305.  
  306. #SVM linear
  307.  
  308. SVMlinear = SVC(kernel='linear')
  309. acertoSVMLinear = []
  310. svmlineartime = []
  311.  
  312.  
  313. #SVM RBF
  314.  
  315. SVMrbf = SVC(kernel='rbf', gamma='scale')
  316. acertoSVMrbf= []
  317. svmrbftime = []
  318.  
  319. #Regressão Logística
  320.  
  321. logisticRegr = LogisticRegression()
  322. logisticRarray = []
  323. logistictime = []
  324.  
  325. # Multilayer Perceptron
  326. MLP = MLPClassifier()
  327. MLP_acerto = []
  328. MLP_tempo = []
  329.  
  330. # variável que irá servir para calcular o tempo total de execução dos algoritmos
  331. tempoinicial = time.time()
  332.  
  333.  
  334. for x in range(0, 5):
  335.  
  336.    tempo1 = time.time()
  337.    cols = list(df.columns)
  338.    cols.remove('Class')
  339.  
  340.    # separando os dataframes um com classe outro sem classe
  341.    df_noclass = df[cols]
  342.    df_class = df['Class']
  343.  
  344.    # início do kfold
  345.    c = kfold.split(df)
  346.  
  347.    for train_index, test_index in c:
  348.  
  349.        noclass_train, noclass_test = df_noclass.iloc[train_index], df_noclass.iloc[test_index]
  350.        class_train, class_test = df_class.iloc[train_index], df_class.iloc[test_index]
  351.  
  352.        K_3start = time.time()
  353.        K_3.fit(noclass_train, class_train)
  354.        acertoK_3.append(K_3.score(noclass_test, class_test))
  355.        K_3end = time.time()
  356.        k_3time.append(K_3end - K_3start)
  357.  
  358.        K_5start = time.time()
  359.        K_5.fit(noclass_train, class_train)
  360.        acertoK_5.append(K_5.score(noclass_test, class_test))
  361.        K_5end = time.time()
  362.        k_5time.append(K_5end - K_5start)
  363.  
  364.        K_7start = time.time()
  365.        K_7.fit(noclass_train, class_train)
  366.        acertoK_7.append(K_7.score(noclass_test, class_test))
  367.        K_7end = time.time()
  368.        k_7time.append(K_7end - K_7start)
  369.  
  370.        naivestart = time.time()
  371.        naiveBayes.fit(noclass_train, class_train)
  372.        acertonaiveBayes.append(naiveBayes.score(noclass_test, class_test))
  373.        naiveend = time.time()
  374.        naiveBayestime.append(naiveend - naivestart)
  375.  
  376.        arvorestart = time.time()
  377.        ArvoreDecisao.fit(noclass_train, class_train)
  378.        acertoArvoreDecisao.append(ArvoreDecisao.score(noclass_test, class_test))
  379.        treeend = time.time()
  380.        arvoreDecisaotime.append(treeend - arvorestart)
  381.  
  382.        kp3start = time.time()
  383.        KP_3.fit(noclass_train, class_train)
  384.        acertoKP_3.append(KP_3.score(noclass_test, class_test))
  385.        kp3end = time.time()
  386.        kp3time.append(kp3end - kp3start)
  387.  
  388.        kp7start = time.time()
  389.        KP_7.fit(noclass_train, class_train)
  390.        acertoKP_7.append(KP_7.score(noclass_test, class_test))
  391.        kp7end = time.time()
  392.        kp7time.append(kp7end - kp7start)
  393.  
  394.        kp5start = time.time()
  395.        KP_5.fit(noclass_train, class_train)
  396.        acertoKP_5.append(KP_5.score(noclass_test, class_test))
  397.        kp5end = time.time()
  398.        kp5time.append(kp5end - kp5start)
  399.  
  400.        svmlinearstart = time.time()
  401.        SVMlinear.fit(noclass_train, class_train)
  402.        acertoSVMLinear.append(SVMlinear.score(noclass_test, class_test))
  403.        svmlinearend = time.time()
  404.        svmlineartime.append(svmlinearend - svmlinearstart)
  405.  
  406.        svmrbfstart = time.time()
  407.        SVMrbf.fit(noclass_train, class_train)
  408.        acertoSVMrbf.append(SVMrbf.score(noclass_test, class_test))
  409.        svmrbfend = time.time()
  410.        svmrbftime.append(svmrbfend - svmrbfstart)
  411.  
  412.        logisticstart = time.time()
  413.        logisticRegr.fit(noclass_train, class_train)
  414.        logisticRarray.append(logisticRegr.score(noclass_test, class_test))
  415.        logisticend = time.time()
  416.        logistictime.append(logisticend - logisticstart)
  417.  
  418.        MLP_inicio = time.time()
  419.        MLP.fit(noclass_train, class_train)
  420.        MLP_acerto.append(MLP.score(noclass_test, class_test))
  421.        MLP_fim = time.time()
  422.        MLP_tempo.append(MLP_fim - MLP_inicio)
  423.  
  424.  
  425.    df = df.sample(frac=1)
  426.    print("Terminou a ", x)
  427.    tempo2 = time.time()
  428.    print("Tempo da rodada ", x, (tempo2 - tempo1) / 60)
  429.  
  430. tempofinal = time.time()
  431.  
  432. mediaknn3 = np.mean(acertoK_3)
  433. medianaknn3 = np.median(acertoK_3)
  434. stdknn3 = np.std(acertoK_3)
  435. timeknn3 = np.mean(k_3time)
  436.  
  437. mediaknn5 = np.mean(acertoK_5)
  438. medianaknn5 = np.median(acertoK_5)
  439. stdknn5 = np.std(acertoK_5)
  440. timeknn5 = np.mean(k_5time)
  441.  
  442. mediaknn7 = np.mean(acertoK_7)
  443. medianaknn7 = np.median(acertoK_7)
  444. stdknn7 = np.std(acertoK_7)
  445. timeknn7 = np.mean(k_7time)
  446.  
  447. mediaMLP = np.mean(MLP_acerto)
  448. medianaMLP = np.median(MLP_acerto)
  449. stdMLP = np.std(MLP_acerto)
  450. timeMLP = np.median(MLP_tempo)
  451.  
  452.  
  453. print("_______________________________________________")
  454. print("Multi Layer Perceptron")
  455. print("Media: ", mediaMLP)
  456. print("Mediana: ", medianaMLP)
  457. print("Desvio padrão: ", stdMLP)
  458. print("Tempo médio: ", timeMLP)
  459. print("_______________________________________________")
  460.  
  461.  
  462.  
  463. print('________________________________________________\n')
  464. print("KNN")
  465. print("Media:\nK = 3: ", mediaknn3, " K = 5: ", mediaknn5, " K = 7: ", mediaknn7)
  466. print("Mediana:\nK = 3: ", medianaknn3, " K = 5: ", medianaknn5, " K = 7: ", medianaknn7)
  467. print("Desvio Padrão:\nK = 3: ", stdknn3, " K = 5: ", stdknn5, " K = 7: ", stdknn7)
  468. print("Tempo médio:\nK = 3: ", timeknn3, " K = 5: ", timeknn5, " K = 7: ", timeknn7)
  469. print("_______________________________________________")
  470.  
  471. mediaknnpounded3 = np.mean(acertoKP_3)
  472. medianaknnpounded3 = np.median(acertoKP_3)
  473. stdknnpounded3 = np.std(acertoKP_3)
  474. timewknn3 = np.mean(kp3time)
  475.  
  476. mediaknnpounded5 = np.mean(acertoKP_5)
  477. medianaknnpounded5 = np.median(acertoKP_5)
  478. stdknnpounded5 = np.std(acertoKP_5)
  479. timewknn5 = np.mean(kp5time)
  480.  
  481. mediaknnpounded7 = np.mean(acertoKP_7)
  482. medianaknnpounded7 = np.median(acertoKP_7)
  483. stdknnpounded7 = np.std(acertoKP_7)
  484. timewknn7 = np.mean(kp7time)
  485.  
  486. print("_______________________________________________")
  487. print("KNN Ponderado ")
  488. print("Media:\nk = 3: ", mediaknnpounded3, " k = 5: ", mediaknnpounded5, " k = 7: ", mediaknnpounded7)
  489. print("Mediana:\nk = 3: ", medianaknnpounded3, " k = 5: ", medianaknnpounded5, " k = 7: ", medianaknnpounded7)
  490. print("Desvio padrão:\nk = 3: ", stdknnpounded3, " k = 5: ", stdknnpounded5, " k = 7: ", stdknnpounded7)
  491. print("Tempo médio:\nk = 3: ", timewknn3, " k = 5: ", timewknn5, " k = 5: ", timewknn7)
  492. print("_______________________________________________")
  493.  
  494. medianaive = np.mean(acertonaiveBayes)
  495. mediananaive = np.median(acertonaiveBayes)
  496. stdnaive = np.std(acertonaiveBayes)
  497. timenaive = np.mean(naiveBayestime)
  498.  
  499. print("_______________________________________________")
  500. print("Naïve Bayes")
  501. print("Media: ", medianaive)
  502. print("Mediana: ", mediananaive)
  503. print("Desvio padrão: ", stdnaive)
  504. print("Tempo médio: ", timenaive)
  505. print("_______________________________________________")
  506.  
  507. mediatree = np.mean(acertoArvoreDecisao)
  508. medianatree = np.median(acertoArvoreDecisao)
  509. stdtree = np.std(acertoArvoreDecisao)
  510. timetree = np.mean(arvoreDecisaotime)
  511.  
  512. print("_______________________________________________")
  513. print("Árvore de decisão")
  514. print("Media: ", mediatree)
  515. print("Mediana: ", medianatree)
  516. print("Desvio padrão: ", stdtree)
  517. print("Tempo médio: ", timetree)
  518. print("_______________________________________________")
  519.  
  520. mediasvmlinear = np.mean(acertoSVMLinear)
  521. medianasvmlinear = np.median(acertoSVMLinear)
  522. stdsvmlinear = np.std(acertoSVMLinear)
  523. timesvmlinear = np.mean(svmlineartime)
  524.  
  525. print("_______________________________________________")
  526. print("SVM kernel linear")
  527. print("Media: ", mediasvmlinear)
  528. print("Mediana: ", medianasvmlinear)
  529. print("Desvio padrão: ", stdsvmlinear)
  530. print("Tempo médio: ", timesvmlinear)
  531. print("_______________________________________________")
  532.  
  533. mediasvmrbf = np.mean(acertoSVMrbf)
  534. medianasvmrbf = np.median(acertoSVMrbf)
  535. stdsvmrbf = np.std(acertoSVMrbf)
  536. timesvmrbf = np.mean(svmrbftime)
  537.  
  538. print("_______________________________________________")
  539. print("SVM kernel rbf")
  540. print("Media: ", mediasvmrbf)
  541. print("Mediana: ", medianasvmrbf)
  542. print("Desvio padrão: ", stdsvmrbf)
  543. print("Tempo médio: ", timesvmrbf)
  544. print("_______________________________________________")
  545.  
  546. medialogistic = np.mean(logisticRarray)
  547. medianalogistic = np.median(logisticRarray)
  548. stdslogistic = np.std(logisticRarray)
  549. timelogistic = np.mean(logistictime)
  550.  
  551. print("_______________________________________________")
  552. print("Regressao Logistica")
  553. print("Media: ", medialogistic)
  554. print("Mediana: ", medianalogistic)
  555. print("Desvio padrão: ", stdslogistic)
  556. print("Tempo médio: ", timelogistic)
  557. print("_______________________________________________")
  558.  
  559.  
  560. print("Tempo total: ", (tempofinal - tempoinicial) / 60)
  561.  
  562.  
  563. resultadocsv = []
  564. for x in range(len(acertoKP_3)):
  565.    aux = []
  566.    aux.append(acertoK_3[x])
  567.    aux.append(acertoK_5[x])
  568.    aux.append(acertoK_7[x])
  569.    aux.append(acertoKP_3[x])
  570.    aux.append(acertoKP_5[x])
  571.    aux.append(acertoKP_7[x])
  572.    aux.append(acertonaiveBayes[x])
  573.    aux.append(acertoArvoreDecisao[x])
  574.    aux.append(acertoSVMLinear[x])
  575.    aux.append(acertoSVMrbf[x])
  576.    aux.append(logisticRarray[x])
  577.    aux.append(MLP_acerto[x])
  578.    resultadocsv.append(aux)
  579.  
  580.  
  581. resultadocsv = pd.DataFrame(resultadocsv,columns=['KNN3','KNN5','KNN7','KNNP3','KNNP5','KNNP7','NAIVE','TREE','SVMLINEAR','SVMRBF','REGLOG','MLP'])
  582. print(resultadocsv)
  583. resultadocsv.to_csv("C:/Users/Auricelia/Desktop/ResultadosReshipe/RESULTCSV.csv")
  584.  
  585.  
  586. # implementando o teste de Friedman para todos os algoritmos usados
  587. n, p = stats.friedmanchisquare(acertoK_3,acertoK_5,acertoK_7,acertoKP_3,acertoKP_5,acertoKP_7,acertonaiveBayes,acertoArvoreDecisao,acertoSVMrbf,acertoSVMLinear,logisticRarray,MLP_acerto)
  588. resultadocsv.boxplot(figsize=(12,8))
  589. plt.title("P-value: " + str(p))
  590. plt.xlabel("Algorithms")
  591. plt.ylabel("Accuracy")
  592. plt.savefig("C:/Users/Auricelia/Desktop/ResultadosReshipe/BOXPLOTRESULTADO")
  593. plt.show()
  594.  
  595. # Terminam os algoritmos de classificação
  596. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement