Descoberta de conhecimento e Aprendizado de Máquina

cientista

Descoberta de conhecimento em bancos de dados

KDD é o processo de várias etapas, não trivial , interativo e iterativo.

  • Interativo porquê existe interações homem e máquina.
  • Iterativo porquê sofre refinamentos sucessívos.
  • Objetivo do processo do KDD é a busca pela forma da representação do conhecimento por meio da identificação de padrões (compreensíveis, válidos ao contexto, novos e úteis)

No KDD devemos manter o foco na descoberta de padrões significativos (não apenas técnico, mas também na tomada de decisão).

A busca por padrões úteis nos dados já recebeu nome de:

  • Descoberta de informação,
  • Data Mining (Mineração de Dados),
  • extração de conhecimento,
  • descoberta de informação,
  • arqueologia de dados e
  • processamento de dados

O KDD pode ser dividido em 9 etapas:

  1. Desenvolver um conhecimento prévio para identificar o objetivo do ponto de vista do cliente e compreender a sua aplicação prática no mundo real.
  2. Selecionar um conjunto de dados de onde pretendemos extrair o conhecimento
  3. Limpeza de dados, pré-processamento, remoção de ruídos. Nesta faze utilizamos o Pandas.
  4. Redução e projeção de dados. Encontrar características úteis que representa a função do objetivo da tarefa.
  5. Corrrespodência dos objetivos do processo KDD (primeiros passos), nesta etapa podemos fazer um resumo, classificação por classes, regressão, agrupamento etc.
  6. Análise exploratória e seleção de modelos e hipóteses: Decidir que modelos e parâmetros serão mais apropriados na extração dos padrões.
  7. Prospecção de dados usando aprendizado de máquina
  8. Interpretação de padrões minerados, regressando possivelmente aos passos anteriores.
  9. Atuar na fronteira do conhecimento descoberto ao utilizar diretamente o conhecimento, classificando o conhecimento em outro sistema para ação futura, ou, simplesmente, documentando e comunicando às partes interessadas. Esse processo inclui também a verificação e a resolução de conflitos potenciais com conhecimentos previamente obtidos.

Técnicas Principais:

  • Classificação, hierarquização dos dados baseada em estágios de decisão (nós) e na separação de classes e subconjuntos. (ex: árvores de decisão)
  • Clusterização, se baseia no método do vizinho mais próximo, combina e compara atributos para estabelecer hierarquia de semelhança. (ex: K-means)
  • Algorítmos genéticos, são métodos gerais de busca e otimização, inspirados na Teoria da Evolução, na qual, a cada nova geração, herda características de seus descendentes possibilitando a evolução e aprimoramento.
  • Associação, estabelece uma correlação estatística entre atributos de dados e conjunto de dados. (ex: regras “se…então”)
  • Redes Neurais Artificiais, são modelos inspirados na fisiologia do cérebro, onde o conhecimento é fruto do mapa das conexões neuronais. As conexões são fruto do somatório de pesos calculados no treinamento de máquina.
  • Detecção de anomalias

 

Pode ser Classificado:

  • Tarefas Preditivas
    • Classificação
    • Regresção
  • Tarefas Descritivas
    • Regras de Associação
    • Clustering
    • Sumarização
    • Outras

Pode usar algoritmos de Aprendizado de Máquina, mas também métodos estatísticos e de banco de dados.

O KDD envolve as disciplinas :

  • estatística,
  • banco de dados,
  • inteligência artificial e
  • aprendizado de máquina.

Aprendizado de Máquina

É uma ferramenta/disciplina que tem crescido e se desenvolvido em conjunto com o KDD possibilitando soluções tecnológicas inovadoras na busca de padrões.

Pirâmide do Conhecimento

DADO INFORMAÇÃO CONHECIMENTO SABEDORIA
Dados no Big Data Dados de Interesse Dados processados Dados formatados Dados com contexto Conhecimento

Fluxo KDD

Coleta de Dados Seleção Pré-Processamento Transformação Mineração de Dados Interpretação ou Avaliação
  • Dado bruto
  • Selecionar um sub-conjunto de dados (data set)
  • Seleçãode dados
  • Limpezade Dados
  • Integração dos Dados
  • Transformação dos Dados
  • Redução dos Dados
  • Normalização
  • Agregação
  • Criação de novos atributos
  • Redução
  • Sintetização dos dados
  • Criar modelos
  • Aplicar técnicas de Mineração de Dados
  • Descobrir novos padrões de forma autonoma
  • (Preditiva ou Descritiva)
  • avaliação estatística
  • avaliação dos profissionais de negócio

CRISP_DM

Dado Entendimento do Negócio Entendimento dos Dados Preparação de Dados Modelagem Avaliação Implantação

Pandas na análise de dados

Panda em floresta de bambús

Biblioteca Pandas 

A biblioteca Pandas nos ajuda a ler diversos tipos de arquivos, trata-los, tirar redundâncias, resumi-los e visualiza-los em disversas formas.

No primeiro momento é possível que os dados do seu dataset venham com incompletos, registros nulos ou registros mal formatados.

  1. Utilize df.info() para entender onde temos valores nulos e valores não válidos. Exemplo de ‘valor não válido’ seria em uma informação na coluna altura de um funcionário onde encontramos o valor de 9.5 metros.  Fica claro neste caso que não temos uma pessoa de 9 metros e meio, portanto temos uma informação incorreta que deve ser descartada ou alterada.
  2. Utilize dropna() quando os valores de linhas com dados ausentes são irrelevantes. Ex.: Não impacta apagarmos 30 linhas de um dataset de 100.000 linhas.
  3. Utilize df.fillna(valor) quando você quer preservar agumas das linhas/colunas que tem valores nulos. Ex:. Vamos dizer que o dataset tenha 1% de registros com valores nulos na coluna salário, poderíamos subistituir por um valor de salário médio a fim de preservar as demais informações nestas linhas (registros). É importante sempre comentar e documentar esses tipos de abordagem.

Sintetizar as informações relevantes

  • Para visualizarmos melhor é importante aplicar filtros e agregar os dados. Exemplo de Filtro: Se o dataset se refere a um histórico de preço de combustível de todo o Brasil e nosso interesse de pesquisa é apenas no Rio de Janeiro podemos filtrar pelo RJ.
  • Quando trabalhamos com dados numéricos em escalas diferentes, é importante aplicar um processo conhecido como normalização. Basicamente é pegar dados que podem ser organizados em uma escala e transforma-los em números. Exemplo: Escala de urgência “urgente”,”media” e “baixa” pode ser normalizado pois existe uma ordem intrínseca, já no caso de cor “branca”, “vermelha” e “azul” não podemos fazer uma normalização pois não existe uma ordem intrínseca .

Os Dados ainda podem ser classificados como:

 

Dados primários

  • São aqueles coletados de primeira mão, ou seja, dados que ainda não foram publicados, autênticos, sem interferência humana.
  • Entre as fontes de dados primários, temos questionários e entrevistas.

Dados secundários

  • São aqueles dados que já foram publicados de alguma forma, ou seja, sofreram alguma interferência humana.
  • Entre as fontes de dados secundários, temos: livros e jornais.

 

Dados qualitativos

  • São dados não numéricos, em sua maioria, normalmente descritivos ou nominais. Apresentam-se, em geral, em formato de textos, sentenças ou rótulos.

Dados quantitativos

  • São os dados numéricos, que podem ser matematicamente computados. Essa categoria de dado mede diferentes escalas que podem ser nominais, ordinais, intervalares e proporcionais. Na maioria dos casos, esses dados resultam da medição de algum aspecto ou fenômeno.

 

Método de coleta dos dados:

  • Podemos coletar dados qualitativos por perguntas abertas e os métodos envolvidos para seu tratamento são grupos de foco, de discussão e entrevistas.
  • Podemos coletar dados quantitativos por surveys (Pesquisas/Questionários), as queries(Consultas a Bancos de Dados), o consumo de relatórios (Reports) e os scrapers (mineração de dados com bibliotecas BeautifulSoup e Scrapy)
  • As categorias de dados não são mutuamente exclusivas, pois é muito comum encontrar relatórios ou fazer entrevistas cujo resultado contenha tanto dados quantitativos e qualitativos.

 

Regulação de dados

Ainda podemos encontrar pontos fora da curva (outliers – muito maiores). Podemos remover os dados destoantes do conjunto ou fazermos uma regularização que é trazer um valor proporcional pela fórmula valor_observado/(valor_maximo – valor_mínimo) chegando a um valor entre 0 e 1.