Skip to content

Instantly share code, notes, and snippets.

@MoisesDuarte
Created October 26, 2019 00:55
Show Gist options
  • Save MoisesDuarte/318a43fe916af68dc97266bf15a45d49 to your computer and use it in GitHub Desktop.
Save MoisesDuarte/318a43fe916af68dc97266bf15a45d49 to your computer and use it in GitHub Desktop.
Conteúdo BigData

Big Data

Mineração de Dados (do Ponto de Vista Comercial)

Peneiramento de dados;

Mercado

  • Clientes: Objeto de pesquisa, fontes de dados;

  • Robôs (Bot do sistema): Testa tendências de compras, interesse (produto comprado = 1 ponto);

  • Feedback: Seletor de dados;

  • Data Mining: Produzir conhecimento novo escondido em grandes bases de dados;

  • KDD: Knowledge Discovery in Databases;

  • Professor (Test the bots) -> Alunos (Bots) -> Seleção dos melhores alunos (Select and dispose of faulty bots)

Padrão

Precisam ser:

  • Úteis: Ponto em que a descoberta ajuda a responder os objetivos inerentes
  • Interpretáveis: Padrões compreensiveis
  • Válidos:
  • Novo, desconhecido

Extração de conhecimento

Manipulação de cluster de dados em busca de padrões satisfatórios referentes ao problema apresentado, com interpretação dependende do analista (não completamente eficaz ou crédivel)

  • Dados: Matéria prima, sem caracter informativo;

  • Informação: Tratamento, seleção e organização dos dados em um determinado contexto;

  • Conhecimento: Formado por informações já tratadas, afim de originar informações novas;

  • Seleção -> Limpeza -> Transformação -> Mineração -> Análise do Resultado;

Tipos de Aprendizagem de Máquina

  • Supervisionada: Problemas de classificação. Necessita de supervisor (professor, seletor, aluno), testes para classificação e seleção de 'alunos' (bots). Utiliza grupos controlados. Tipos de dados semelhantes e conhecidos para o desenvolvedor;

    • Atributo Classe: Resposta (Ultima coluna da grade dados);

    • Linha da grade: Representa cada instância (cada teste efetuado);

  • Não-supervisionada: Problemas de agrupamento (cria grupos homogeneos), sem saída "correta", desempenho é medido pela semelhança entre os dados em cada grupo individual (sem supervisor/professor). Dificilmente há um grupo ideal para testagem, portanto demanda muito experimento.

    • Similaridade entre dados: Medida com base em 'distância' dos dados (diferença da semelhança).
  • Reforço: Utilizado em problemas onde não se sabe qual a saída correta (bonificação, punição), ensina o algoritmo qual ação ele deve priorizar para determinada situação (testando se ação foi positiva ou não e seu contexto).

Etapas de Aprendizagem

  • Treinamento:

    • Exemplos são apresentados ao sistema, para o aprendizado do bot, enquanto o sistema modifica gradualmente os parametros da saida de maneira à se aproximar da sáida desejada que ele quer do bot.
  • Teste/Validação:

    • Exemplos novos são dados, bot verifica e identifica exemplos, taxa de acerto é calculada. Verifica se o bot não está apenas memorizando, ao invés de aprender;

Características dos Dados

  • Corretos;

  • Faltantes;

  • Imprecisos;

  • Incorreto;

Aprendizagem de máquina

  • Aprender = Mudar para fazer melhor quando uma situação similar acontecer, qualidade de se adaptar à mudanças;

  • Aprendizagem != Memorizar. Um computador precisa generalizar um compartamento para uma nova situação;

Características

3 Características principais:

  • A classe das tarefas;

  • A medida de performance a ser melhorada;

  • A fonte de experiência e conhecimento;

  • Exemplo: Aprender a jogar damas

    • Tarefa: Jogar damas;

    • Medida de Performance P: % de jogos ganhos contra oponentes;

    • Experiencia de treinamento E: Jogando contra si mesmo.


25/10/2019

KNN - Nearest Neighbor

  • Holdout para divisão da base
  • Base de treinamento é submetida ao algoritmo
  • Algoritmo é alimentado com amostras
  • Valor k (preferencialmente impar) para definir numeros de amostras mais proximas selecionadas
  • Medida de distância utilizada para definição de proximidade (euclideanea)
    • v(x1 - x2) 2 + (y1 - y2) 2 + ...
  • Algoritmo preguiçoso = Armazena toda a base na memoria, ao inves de criar um modelo com um conjunto de regras. Testa amostra por amostra
  • Seleciona classes presentes e define uma classe dominante (utilizada para saber se acertou ou errou)
  • Verifica classe da amostra com a classe prevista para definir se é correta ou falsa

Árvore de Decisão

  • Inferência Indutiva: Prediz classe com base em treinamento prévio

    • nó da arvore é representado por um atributo
    • ramos são valores possíveis
    • entropia define quais valores são uteis para ramificação
    • no fim dos ramos se define a classe do possivel caminho
    • classe final é comparada com classe de base de treinamento
      • Entrada: conjunto de atributos
      • Saida: Decisão (classe definida após sequencias de testes)
    • não-preguiçoso: ele generaliza, aprende, criando um modelo e o estruturando em uma árvore
  • Atributos da árvore:

    • Primeiro Nó: Raiz, Topo
    • Nó interno: Corresponde a um teste do valor de uma propriedade (ex. atributo clima, humidade, etc)
    • Ramificações: Quando existir mais de uma opção no valor que o atributo possui (sim ou não, etc.), rotulados com os resultados possiveis dos testes
    • Nó terminal/folha: Nó que possui a linha classe (atribuida e comparada com instancia da base de teste)
  • Entropia: Calculo para definir pureza do dado (atributo)

  • Algoritmo ID3:

    • Utiliza medida esatistica para escolha de atributo que melhor divide os exemplos de treinamento, utilizando do conceito de entropia
    • Procura trazer ramos balanceados à árvore
    • Subconjuntos puros: menos exemplos pertences a classes distintas (exemplos com unica classe possivel, sem muitos ramos)

Entropia

  • Caracteriza a homogenidade de um conjunto de exemplos (pertencente a um atributo)
    • L = {p1, p2, p3, ...}
    • Quanto mais distantes as amostras de uma a outra, maior a entropia
    • O ideal para uma árvore de decisão é uma baixa entropia
    • Entropia(s) = (+p) + (log2p+) - (p-) - (log2p-)
      • +p = n° de classes positivas
      • *p = n° de classes negativas
      • Valores:
        • 0: Todos membros tem a mesma classe (não é necessario ramificar)
        • 1: Coleção com mesmo número de + ou - (exemplos bem defininos, necessario ramificar a arvore)
    • Entropia precisa diminuir após cada ramificação, afim de generalizar (quanto mais proximo de uma folha, menor a entropia)

Critério de ganho

  • Melhor atributo é o que tem maior ganho de informação (atributo que devolve os dados mais puros, com entropia menor)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment