Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. KNN Métodos e parametrização
  2.  
  3. O KNN (K-nearest neighbors) é um algoritmo do tipo “instance-based learning” utilizado para classificação e regressão. Este algoritmo utiliza como input os k vizinhos mais próximos para obter o seu resultado. O output dependerá da função para o qual foi utilizado. No caso de ter sido usado para classificação então o output será uma classe definida pela maioria dos vizinhos. Por outro lado, se a função for regressão, então o output será a média dos valores dos seus k vizinhos mais próximos.
  4. Para este dataset foi utilizada a library “KNeighborsClassifier” que faz parte do “scikit-learn”e o método KNeighborsClassifier(n_neighbors=k) para implementar o algoritmo KNN. Neste método o parâmetro utilizado foi o número de vizinhos por ser o elemento fulcral do algoritmo. Para tal foi feita uma experimentação para tentar descobrir qual o melhor valor de K e acabámos por definir os nossos valores como um intervalo entre 1 e 20 dos quais obtivemos melhores resultados.
  5.  
  6. Decision Trees
  7.  
  8. As árvores de decisão são um método de de aprendizagem utilizado para classificação e regressão. Este modelo de aprendizagem prende-se com a criação de um modelo do tipo àrvore que mapeia os possíveis outcomes de uma série de de escolhas relacionadas. Inicialmente a arvore começa com apenas um nó que depois se vai expandido até os possíveis outcomes. As arvores de decisão sao então no fundo um arvore onde cada no representa um atributo, cada branch representa uma regra de de decisão e cada folha representa um outcome.
  9. Neste modelo de todos os algoritmos existentes para decision trees (ID3, c4.5 E CART) foi utilizado o modelo CART (Classification and Regression Trees) que se encontra dentro do pacote do “scikit-learn”. Dentro desta library foi utilizado o método DecisionTreeClassifier(max_depth = iDepth) com o parâmetro max_depth que indica até que profundidade a árvore se poderia expandir. Esta variável é bastante critica para este modelo porque um valor de profundidade demasiado baixo não permite a arvore expandir-se e consequentemente não criar um modelo muito fidedigno (under-fitted). Por outro lado um valor de profundidade muito alto acaba por ser comutacinalemnte prejudicial e a criar um modelo demasiado over-fitted.
  10.  
  11. Random Forest
  12.  
  13. Uma random forest é um estimator que cria várias decision trees que juntas fazem a previsão de um resultado. As random forest são usualmente superiores a decision trees porque no fundo fundamentam a sua resposta num “poll” de respostas de várias decision trees. Mesmo que cada decision tree não complete a sua árvore até ao fim, se todas trouxerem features diferentes então a random forest será mais completa e então o seu modelo será superior.
  14. Para este dataset foi utilizada a library “RandomForestClassifier” que faz parte do “scikit-learn”e o método RandomForestClassifier(n_estimators=k, oob_score=True, random_state=123456, n_jobs = -1) para implementar o algoritmo KNN. O primeiro parâmetro “n_estimators” indica o número máximo de árvores que esta floresta poderá ter. Como nos outros modelos, os valores para este parâmetro foram amplamente estudados tento sido escolhido analisar valores entre 1 e 20. O parametro “oob_score” foi colocado a True para utilizar out-of-bag samples para estimar a accuracy geral. O aprametro “random state” é valor da seed usada pelo random generator e finalmente o “n_jobs” foi colocado a -1 para que o computador fosse mais eficiente e rápido no cálculo dos resultados.
  15.  
  16.  
  17. Cross Validation
  18.  
  19. Como método de validação foi utilizado “Cross Validation”. Este processo consiste em avaliar a capacidade de gerneralizacao de um modelo a partir de um conjuntos de dados. O conceito geral é particionar os datasets em subconjuntos e utilizar uma parte para treino, outra para teste e outra para validacao. Existem vários métodos de implementação desta técnica (Holdout, K-fold, Leave one out ) mas neste trabalho foi implementado apenas o método K-fold. Este método consisten em dividir o conjunto de dados em k subconjuntos do mesmo tamanho. Estes subconjuntos sao depois utilizados para os testes, e os k-1 são utilizados para cálculos de
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement