ESCOLHENDO O DIRETÓRIO NO R

Esse post bem que poderia ser uma continuação do Primeiros passos no R Studio, pois trataremos de algumas coisas que você vai fazer assim que abrir o R e iniciar seus trabalhos, como escolher o diretório em que você vai salvar as figuras ou carregar os dados, saber as dimensões do arquivo externo que você carregou, etc., é bem útil.  É também um pouco repetitivo, já vimos algumas dessas funções separadamente, mas é bom reforçar para quem não viu outros links.

Primeiro, vamos verificar como escolher o diretório em que iremos trabalhar. Isto é, em qual pasta vamos salvar os arquivos ou onde está localizado o arquivo que gostaríamos de carregar no R.

O mais fácil, no point and click do RStudio é ir no Source -> Set working directory -> Choose Directory e digitar a pasta em que estão / devem estar os arquivos relacionados ao projeto que você está trabalhando, como na figura abaixo:

Outra maneira de fazer isso, que eu acho mais elegante, é inserindo alguns comandos no código:

1
2
diretorio = "C:/Users/Yukio/Desktop/Modelo_1";
setwd(diretorio);

Dessa forma, toda vez que eu quiser importar ou salvar um arquivo neste diretório (ou em alguma subpasta existente), eu posso apenas iniciar o caminho com duas reticências:

1
2
3
4
5
6
7
8
## importar o arquivo txt dados na subpasta DataSet
dados = read.table("../dados.txt", header=TRUE);
## salvar o gráfico 1 na pasta Modelo_1
jpeg("../grafico_1")
## salvar o grafico 2 na subpasta Graficos
jpeg("../Graficos/grafico_2")

Agora que você já importou o arquivo, você provavelmente quer saber a quantidade de linhas e colunas, isso pode ser obtido com a função dim():

1
2
## dimensao dos dados (num de linhas e colunas)
dim(dados);

Você terá como resposta dois valores, sendo o primeiro a quantidade de linhas e o segundo a quantidade de colunas. E como visualizar os dados em uma tabela, como se fosse no Excel? Basta utilizar a função View():

1
2
## visualizar o conjunto de dados
View(dados);

Abrirá uma aba, exatamente como um Excel, contendo os dados.

Uma função bem relevante, que eu inclusive vou colocar em outros posts por conta de sua utilidade é a str(). Ela serve para saber o formato de cada variável da sua tabela:

1
2
3
4
5
## formato das variaveis (numeric, factor)
str(dados);
## nome das colunas
col(dados)

Agora que você já carregou seus dados no lugar ideal, você pode começar a tratá-los. Alguns dos posts que podem te ajudar com essa tarefa estão no link Programação em R.

 

 

Fonte : https://estatsite.com

Escrito por : André Yukio

Entropia, Ganho de informação e Decision trees

Ola pessoas, primeiramente já irei avisando que o post de hoje tem matemática sim, infelizmente em ML caso queiramos entender de fato os algoritmos é crucial termos a capacidade de lidar com alguns cálculos relativamente complexos. O que é chato para alguns mas eu adoro, mas não precisa se desesperar vamos usar um exemplo leve.

O exemplo de hoje foi baseado no livro Machine learning de Tom M. Mitchell claro que fiz algumas modificações para ficar mais leve e ajudar você leitor a entender melhor essas medidas e adaptá-las a seu modelo de aprendizado.

Muito bem para você que leu Introdução a decision tree percebeu que eu usei uma simples histograma para escolher os melhores atributos para os Nodes. Mas para classificarmos um conjunto de dados mais complexos essas medidas talvez não sejam as mais apropriadas.Eu usei os conceitos apresentados aqui hoje no post Decision tree em python.

Para esse exemplo vamos usar um conjunto de dados simples:

A tabela acima consiste em um conjunto de treino com 14 instâncias cada uma com 4 atributos, a primeira coluna é apenas para contar os dias e a última representa as classes de cada instância.

Vamos fazer algumas análises nesse conjunto de treino.

Entropia
entropia = \sum_{i=1}^{n}p(x_{i})log2p(x_{i})

A entropia é normalmente usada na teoria da informação para medir a pureza ou impureza de um determinado conjunto. A pergunta que ela responde é: O quanto diferente/iguais esses elementos são entre si? Claro que as aplicações desse conceito vai muito além da teoria da informação mas vamos manter as coisas humildes.

Vemos ao lado o clássico exemplo da entropia sendo aplicada a um conjunto de dados binários.

No caso, colocando no eixo das abscissas a proporção de exemplos positivos dos conjuntos.Na origem vemos que temos zero exemplos positivos o que implica em uma entropia igual a zero pois temos um conjunto todo negativo.

Quando a proporção de exemplos positivos chega a 0,5 temos o grau mais alto de entropia, pois em um conjunto binário esse é o ápice da mistura, depois ela vem diminuindo outra vez.

Pense sobre a figura acima um pouco e tente captar o conceito.

Abordaremos a fórmula de maneira bem prática o intuito é que você leitor consiga entender e reproduzi-la facilmente em código.

Primeiramente p(x) é a proporção de exemplos em relação a todo conjunto e log_{2}p(x) é o número no qual temos que elevar 2 para chegarmos ao valor em questão temos também nque é o número de classes que estamos usando.

Vamos calcular a entropia de todo o conjunto. Voltando na tabela vemos que temos 5 exemplos positivos e 9 negativos, é muito comum usar a notação [9+,5-], como a entropia é um somatório de todos os p(x)log_{2}p(x) temos que:

entropia = -(\frac{9}{14})*log_{2}(\frac{9}{14})-(\frac{5}{14})*log_{2}(\frac{5}{14})

Antes de fazermos os cálculos mostrarei uma propriedade dos logaritmos muito útil para você que ira utilizar calculadora para realizar os cálculos. Pois geralmente as bases usadas são 10:

log_{b}(a) = \frac{log_{c}(a)}{log_{c}(b)}

Vamos a um exemplo óbvio.

log_{2}(8) = \frac{log_{10}(8)}{log_{10}(2)}

Ou seja 2 elevado a 3 é igual a 4.

Uma importante observação é que quando formos calcular log_{2} de 0 iremos assumir que é 0 ,por motivos que espero esclarecer no futuro, e claro para valores igual 1 teremos também um valor igual a 0. Todo número elevado a 0 é igual a 1.

Voltando ao exemplo anterior temos:

entropia = -(\frac{9}{14})*log_{2}( \frac{9}{14})-(\frac{5}{14})*log_{2}(\frac{5}{14})=> -(0,642*-0,637)-(0,357*-1,485)= 0,939

Então essa é a entropia total do conjunto também representa a entropia de cada coluna/atributo. Esse índice será usado como parâmetro para outros índices um deles é o ganho de informação.

O ganho de informação
Uma vez medida a entropia do conjunto podemos aplicar o ganho de informação para selecionar o melhor atributo para ser o primeiro Node de uma árvore por exemplo.

Gain(S,A)=Entropia(S)- \sum_{v \in valores(A)} p(A_{v})*Entropia(A_{v})

Eu sei que parece chato a primeira vista mas não é nem um bicho de sete cabeças. Vamos interpretar com bastante calma essa fórmula.

Vamos analisar a seguinte notação primeiroGain(S,A) o S representa o conjunto todo e A representa o atributo em questão.

Lembre-se que um atributo é representado por uma coluna logo podemos fazer uma análise de todos os atributos e selecionar aquele que tem o maior ganho de informação.

Quando vemos \sum_{v \in valores(A)} estamos nos referindo a um somatório aplicado a valores de um conjunto, será feito uma iteração para cada valor desse conjunto, no caso os valores do atributo. p(A_{v}) é a proporção da frequência de v em relação ao conjunto todo e depois multiplicamos isso pela entropia do subconjunto que contem esses valores para esse atributo.

O ganho de informação nesse contexto nos permite criar um índice para medir qual o melhor atributo para ser o primeiro Node da árvore.

Vamos aos cálculos:

Consideramos que a entropia do conjunto todo vale 0.939 com isso podemos calcular o ganho de informação do primeiro atributo expectativa. Vamos antes disso criar uma tabela de frequência com os valores da primeira coluna.

tabela-2

Temos quatro colunas com a Frequência relativa de cada valor juntamente com a ocorrência de valores positivos e negativos em cada um.

Com isso podemos calcular o ganho de informação da primeira coluna e saber se ela é um bom atributo para ser a raiz da árvore.

Então teremos:

0,939-(\frac{5}{14}*entropia(sol))-(\frac{4}{14}*entropia(nublado))-(\frac{5}{14}*entropia(chuva))

Como vimos para calcular a entropia do conjunto usamos entropia = \sum_{i=1}^{n}p(x_{i})log2p(x_{i}) fazendo isso para cada subconjunto de Expectativa teremos:

0,939-0,347-0-0,347 = 0,245

Logo:

Gain(S,Expectativa) = 0,245

Fazendo o mesmo processo nos outros conjuntos:

Gain(S,Humidade) = 0,151

Gain(S,Vento) = 0,048

Gain(S,Temperatura) = 0,029

A conclusão que tiramos é que o melhor atributo seria Expectativa para ser a raiz da árvore.

Vamos apenas para exemplificar a situação começar a construir a árvore de duas maneiras diferentes.

A primeira fazendo o Atributo como Node e os Ramos como seus valores ficaria dessa forma:

arvore-1

Usamos o primeiro Atributo para ser a raiz da árvore e cada ramo representa um conjunto de instâncias que por sua vez devem ser reavaliadas para formar novos ramos.

Com exceção do Ramo nublado pois segundo o conjunto de treino quando Expectativa = nublado é certo que é um exemplo positivo.

Poderíamos também fazer uma árvore binária, nesse casso procuraríamos dentro do Atributo com maior ganho de informação o valor com a menor entropia.

tabela-2

Para nossa sorte fica claro que quando Expectativa=Nublado a classe da instância é certamente positiva logo podemos usar este valor para ser o primeiro Node da árvore.

arvore-2

Repare que quando a resposta é não ainda tem várias instâncias a serem classificadas, caso se interesse em continuar fazendo o processo é o mesmo basta supor que esse node é uma nova árvore e continuar o processo de medir o ganho de informação selecionar o melhor atributo no caso do primeiro exemplo ou selecionar ou o melhor atributo e valor no segundo caso.

Muito bem queridos leitores para aqueles que tiveram a paciência de chegar ate aqui muito obrigado primeiramente por ler esse post isso é importante para mim. E que tenha sido útil para você continuar desenvolvendo seus skills nessa área fascinante.

E qualquer duvida,feedback,critica ou erro de calculo não se acanhe deixe nos comentários.

Como instalar Python e Jupyter Notebook usando Anaconda

Como instalar Python e Jupyter Notebook usando Anaconda
Aprenda a utilizar esse pacote de arquivos que contém os itens essenciais de todo Data Scientist

O Anaconda é uma iniciativa que tem como objetivo agregar todas as ferramentas para análise de dados em um único arquivo. Resumidamente, é um arquivo que irá instalar em seu computador todas as bibliotecas e recursos necessários para você começar seus projetos de Data Science e Machine Learning, como o Python em si, Jupyter Notebook, a IDE Spyder, além de famosas bibliotecas, como NumPy, Pandas, Scikit-learn, etc. Se interessou? Aprenda abaixo como baixar e instalar o Anaconda.

Por que usar o Anaconda?
Praticidade. Essa é a resposta. Imagine que, para começar a utilizar as ferramentas para realizar seus projetos e estudos de Data Science você precisasse baixar e instalar o Python e cada uma de suas bibliotecas. A menos que você esteja procurando configurar seu computador especificamente, ou instalar as bibliotecas a medida que progride, utilizar o Anaconda é a forma mais rápida e eficaz para dar o pontapé inicial.

Baixando e instalando o Anaconda

1.Para realizar o download do Anaconda, inicialmente você deve acessar o site oficial da iniciativa. ou neste Site

2. Lá, selecione a versão do seu Sistema Operacional. Tem até pra MacOS. Em nosso exemplo utilizaremos Windows.

3. Feito isso, lhe será mostrado as versões disponíveis do Python para baixar, além das arquiteturas 32 e 64 bits. Eu gosto da versão 3.6 do Python, então, eu preferi baixar esse.

4. Ao clicar sobre o botão, o arquivo será baixado. Concluído o processo, realize a instalação do Anaconda.

5. A instalação é simples, resume-se ao famoso “Next, Next, Next…”. Um ponto interessante a se considerar é a tela acima, onde você decide se instalará os pacotes e arquivos para todos os usuários. Será necessário possuir permissões administrativas para instalar para todo mundo, caso queira. Ao decidir, prossiga com a instalação.

6. Ao final do processo, marque a caixa em que pergunta se você deseja adicionar o Anaconda ao Path do seu Sistema Operacional. Isso será muito útil quando você quiser instalar outras bibliotecas facilmente.

7. Ao clicar em “Install”, Anaconda será instalado em seu computador. Quando terminar, dê aquela reiniciada na máquina pra ter certeza que tudo está certinho. Parabéns, você é o mais novo usuário do Anaconda.

Execute R-online

Ter acesso ao R online pode ser muito útil para os estudantes que estão em fase de aprendizado do R, facilita o uso prático, especialmente naquela hora em que você quer mostrar algo para um amigo que não conhece o R, tirar um dúvida sobre um comando, usá-lo num equipamento que não o tenha instalado, ou ainda está no celular e quer fazer uso rápido do R. Já se viu nesta situação?

Até mesmo para o professor em sala de aula, que deseja que os alunos experimentem algum comando simples do R, especialmente em aulas fora de um laboratório. Muitas vezes o professor quer mostrar uma funcionalidade do R, algo simples como fazer um histograma, calcular probabilidades de uma distribuição normal, gerar números aleatórios, fazer um sorteio com ou sem reposição, enfim, tarefas simples para serem feitas no R em um segundo!

Temos pesquisado como ter acesso ao R online, em setembro de 2015 publicamos sobre o R-Fiddle, porém outras alternativas parecem ser igualmente interessantes, como é o caso do execute_r_online. Está inserido numa plataforma de desenvolvimento integrado (IDE) com uma variedade enorme de ferramentas.

Listamos a seguir um conjunto de opções sobre o R online, incluindo estas descritas acima e outras que encontramos:

1.http://www.r-fiddle.org/

2.https://www.tutorialspoint.com/execute_r_online.php

3.https://www.jdoodle.com/execute-r-online

4.https://rweb.stat.umn.edu/Rweb/Rweb.general.html

5.https://rdrr.io/snippets

6.rextester.com/l/r_online_compiler

7.https://rnotebook.io/

Já utilizou alguma destas? Conhece outras? Compartilhe conosco sua opinião!

Autoria: João Bispo

Big Data

Big Data
O que é e qual sua importância?

Big data é um termo que descreve o grande volume de dados — tanto estruturados quanto não-estruturados — que impactam as empresas diariamente. Mas não é a quantidade de dados disponíveis que importa; é o que as organizações fazem com eles. Big data pode ser analisado para obter insights que levam a decisões melhores e ações estratégicas de negócio.

História e considerações atuais de big data
Embora o termo “big data” seja relativamente novo, o ato de coletar e armazenar grandes quantidades de informações para análises eventuais é muito antiga. O conceito ganhou força no começo dos anos 2000, quando o analista Doug Laney articulou a definição [atualmente mainstream] de big data em três Vs:
Volume. Organizações coletam dados de fontes variadas, incluindo transações financeiras, redes sociais e informações de sensores ou dados transmitidos de máquina para máquina. No passado, armazená-los teria sido um problema — mas novas tecnologias (como o Hadoop) aliviaram esse fardo.
Velocidade. Os dados são transmitidos numa velocidade sem precedentes e devem ser tratados em tempo hábil. Etiquetas RFID, sensores e medições inteligentes estão impulsionando a necessidade de lidar com torrentes de dados praticamente em tempo real.
Variedade. Dados são gerados em inúmeros formatos — desde estruturados (numéricos, em databases tradicionais) a não-estruturados (documentos de texto, e-mail, vídeo, áudio, cotações da bolsa e transações financeiras).
No SAS, nós consideramos duas dimensões adicionais ao falar de big data:
Variabilidade. Além das crescentes velocidade e variedade dos dados, seus fluxos podem ser altamente inconsistentes com picos periódicos. Qual a última tendência nas redes sociais? Todos os dias, picos de dados sazonais ou gerados por eventos particulares podem ser difíceis de gerenciar, ainda mais com dados não-estruturados.
Complexidade. Os dados de hoje vêm de múltiplas fontes, o que torna difícil ligá-los, combiná-los, limpá-los e transformá-los entre sistemas. No entanto, é necessário conectar e correlacionar relações, hierarquias e ligações múltiplas, ou você pode rapidamente perder o controle sobre seus dados.

O grande potencial do big data
A quantidade de dados criados e armazenados globalmente é quase inimaginável e apenas continua a crescer. Isso significa que há ainda mais potencial para extrair insights importantes dessas informações — embora apenas uma pequena porcentagem de dados seja realmente analisada. O que isso significa para as empresas? Como elas podem fazer um uso melhor dessas informações brutas que fluem para dentro de suas paredes todos os dias?