<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos linguagem R - Diego Nogare</title>
	<atom:link href="https://diegonogare.net/tags/linguagem-r/feed/" rel="self" type="application/rss+xml" />
	<link>https://diegonogare.net/tags/linguagem-r/</link>
	<description>Consultor Executivo de IA &#38; ML</description>
	<lastBuildDate>Tue, 15 Apr 2025 13:50:53 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/diegonogare.net/wp-content/uploads/2025/06/cropped-cropped-DN-Black-300x300-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Arquivos linguagem R - Diego Nogare</title>
	<link>https://diegonogare.net/tags/linguagem-r/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">247556142</site>	<item>
		<title>Primeiros passos em Machine Learning</title>
		<link>https://diegonogare.net/2020/04/primeiros-passos-em-machine-learning/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Wed, 01 Apr 2020 12:00:56 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Estatistica]]></category>
		<category><![CDATA[Linguagem de programação]]></category>
		<category><![CDATA[linguagem R]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=3269</guid>

					<description><![CDATA[<p>Para aprender Machine Learning é interessante saber uma linguagem de programação Pensando em alternativas na construção de soluções envolvendo aprendizagem de máquina, é interessante dar os primeiros passos em Machine Learning. Pode-se fazer isso escolhendo uma linguagem de programação estatística, como o R ou Python, ou então seguindo com serviços cognitivos. Mas afinal, se for...</p>
<p>O post <a href="https://diegonogare.net/2020/04/primeiros-passos-em-machine-learning/">Primeiros passos em Machine Learning</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Para aprender Machine Learning</h1>
<h2>é interessante saber uma linguagem de programação</h2>
<p>Pensando em alternativas na construção de soluções envolvendo aprendizagem de máquina, é interessante dar os primeiros passos em Machine Learning. Pode-se fazer isso escolhendo uma linguagem de programação estatística, como o R ou Python, ou então seguindo com <a href="https://diegonogare.net/2020/03/como-adicionar-inteligencia-artificial-ao-seu-projeto/" target="_blank" rel="noopener noreferrer">serviços cognitivos</a>. Mas afinal, se for para o caminho da linguagem de programação, qual das duas devo investir meu tempo? Seguindo o <a href="https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019" target="_blank" rel="noopener noreferrer">ranking de linguagens de programação da IEEE</a>, em 2019, o Python aparece em primeiro lugar e o R em quinto. Contudo, isso não significa que você deve escolher o Python apenas por isso. Ambas linguagens são ótimas para trabalhar com Machine Learning!</p>
<blockquote><p>Você poderia desenvolver soluções de Machine Learning com qualquer linguagem como Java ou C#, porque no final das contas, os algoritmos são representações matemáticas. Porém, isso não é recomendado, porque estas linguagens são poderosas para alguns tipos de desenvolvimentos mas não possuem módulos específicos para cálculos matriciais complexos.</p></blockquote>
<p>O R é uma das linguagens de programação estatística mais utilizadas para este fim, assim como o Python. Por outro lado, o Python é bastante versátil permitindo inclusive desenvolvimento de aplicações web.</p>
<h2>IDE &#8211; Integrated Development Environment</h2>
<p>As duas linguagens são gratuitas, isso significa que não precisa pagar para desenvolver soluções com elas. Por outro lado as IDEs, que são os software utilizados para escrever os códigos, podem ser cobradas. É muito comum usar o <a href="https://rstudio.com/" target="_blank" rel="noopener noreferrer">RStudio</a> para desenvolver com linguagem R e o <a href="https://www.jetbrains.com/pycharm/" target="_blank" rel="noopener noreferrer">PyCharm</a> para Python. Estas duas IDEs possuem a versão gratuita e a paga. Em ambas a versão gratuita é utilizada principalmente para estudos, e a paga é para quando você terá algum tipo de rentabilidade com a sua solução desenvolvida.</p>
<p>Existem alternativas. Uma é o <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VSCode</a> que tem o Python nativo mas o R precisa ser adicionado como extensão. Ou o <a href="https://jupyter.org/" target="_blank" rel="noopener noreferrer">Jupyter Notebook</a>, que é uma IDE web-based que permite nativamente escolher o Kernel de interpretação do código com Python ou R.</p>
<h2>Comunidade</h2>
<p>Para as duas linguagens existe uma comunidade muito ativa. Esta comunidade publica diariamente vários pacotes de funcionalidades, que resolvem problemas específicos. No R a comunidade se centraliza no <a href="https://cran.r-project.org/" target="_blank" rel="noopener noreferrer">CRAN &#8211; The Comprehensive R Archive Network</a> enquanto a comunidade Python utiliza o <a href="https://pypi.org/" target="_blank" rel="noopener noreferrer">PyPi &#8211; Python Package Index</a>.  Estes pacotes ajudam a acelerar o desenvolvimento, facilitando a execução de tarefas complexas de forma simples. Imagine que você esteja fazendo uma análise exploratória descritiva e necessita gerar diversos gráficos sobre os dados. No R existe o GGPLOT2 que é um dos pacotes mais usados para geração de gráficos, e no Python o MatPlotLib. Mas repare que você não precisará criar do zero, você poderá utilizar algo já pronto que resolve o seu problema de forma específica.</p>
<p>A mesma coisa acontece para os principais pacotes de Machine Learning. Existem pacotes preparados em cada uma das comunidades, que facilitam o desenvolvimento dos seus modelos de aprendizagem de máquina.</p>
<h2>Para aprender</h2>
<p>Sendo totalmente imparcial, para você dar seus primeiros passos em Machine Learning, escolha uma das duas linguagens de programação e se arrisque. Existem diversos cursos gratuitos de R e de Python na internet. O Kaggle possui diversas bases de dados com muitos desafios, assim como o repositório de dataset da UCI. Os fóruns de discussão são ótimos pontos de encontro para tirar duvidas sobre a linguagem. E o principal benefício de escolher entre uma ou outra linguagem, é que a migração entre elas é bastante rápida. Ao aprender uma linguagem, migrar para a outra é questão praticamente de sintaxe. A forma de pensar, e de resolver problemas, é muito similar. Se não se adaptou com R, mude para o Python com muita fluidez.</p>
<p>Ah, outro ponto importante. Não se preocupe em aprender a matemática complexa por trás de cada modelo agora. Sugiro que aprenda uma das linguagens, estude alguns algoritmos que resolvem os principais problemas (classificação binária, classificação multi-classes, regressão linear bivariada, regressão linear multivariada, regressão logística, clustering e regras de associação). Depois que já estiver fluido em resolver problemas com estes algoritmos, ai sim comece a estudar o que eles fazem e como funcionam. Assim poderá entender o que está fazendo, e até melhorar a performance quando for preciso.</p>
<p>O post <a href="https://diegonogare.net/2020/04/primeiros-passos-em-machine-learning/">Primeiros passos em Machine Learning</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3269</post-id>	</item>
		<item>
		<title>Integrando o R com o seu Facebook</title>
		<link>https://diegonogare.net/2017/07/integrando-o-r-com-o-seu-facebook/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Sun, 23 Jul 2017 22:01:37 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integração]]></category>
		<category><![CDATA[linguagem R]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1545</guid>

					<description><![CDATA[<p>Fala galera! A ideia deste post é mostrar como interagir com o Facebook através do R usando o pacote RFacebook. O pacote permite a interação do R com o Facebook usando uma chave de autenticação, chamada Token, que é fornecida ao criar um aplicativo do Facebook. Esta chave tem duração de 2 horas e pode...</p>
<p>O post <a href="https://diegonogare.net/2017/07/integrando-o-r-com-o-seu-facebook/">Integrando o R com o seu Facebook</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera! A ideia deste post é mostrar como interagir com o Facebook através do R usando o pacote RFacebook.</p>
<p>O pacote permite a interação do R com o Facebook usando uma chave de autenticação, chamada Token, que é fornecida ao criar um aplicativo do Facebook. Esta chave tem duração de 2 horas e pode ser renovada sempre que precisar. É importante lembrar que este Token é para usar em tempo de desenvolvimento, quando quiser colocar o aplicativo para produção, você deve buscar outra forma de autenticação do seu aplicativo no Facebook, uma que não expire em 2 horas. Neste post, como tem o objetivo de mostrar a integração, o Token de desenvolvimento é suficiente.</p>
<h2>Criando o aplicativo no Facebook</h2>
<p>Você precisa de uma conta válida no Facebook. Ao se conectar ao Facebook, vá até o link: <a href="https://developers.facebook.com/apps" target="_blank" rel="noopener noreferrer">https://developers.facebook.com/apps</a></p>
<p>Ao acessar o link de desenvolvimento do Facebook, clique no botão para adicionar um novo aplicativo.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo1-1.png?w=640" alt="" /></p>
<p>Vai abrir uma tela perguntando o nome do App, informe um nome do seu app.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo2-2.png?w=640" alt="" /></p>
<p>Após, clique no botão para gerar o ID do aplicativo. Para questões de segurança você deve informar o captcha e pronto.</p>
<p>Algumas vezes é necessário que a extensão de login do facebook seja habilitada.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo3-2.png?w=640" alt="" /></p>
<p>Para garantir, habilite esta extensão. Neste nosso exemplo, informe que será um login por WWW. Ao abrir a soliticação de qual endereço do site, informe: <a href="http://localhost:1410/" target="_blank" rel="noopener noreferrer">http://localhost:1410/</a>. Para este nosso exemplo muitas vezes não pede esta autenticação, mas já deixe habilitado para caso precise. Pode salvar esta alteração.</p>
<p>Em seguida, acesse a URL: <a href="https://developers.facebook.com/tools/explorer/" target="_blank" rel="noopener noreferrer">https://developers.facebook.com/tools/explorer/</a> para pegar o Token temporário (aquele de 2h de duração).</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo4-2.png?w=640" alt="" /></p>
<p>Caso você mantenha esta tela aberta por mais de 2hs, uma mensagem informando que o Token expirou é apresentada.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo5-2.png?w=640" alt="" /></p>
<p>Pronto, com isso, seu aplicativo do Facebook está disponível.</p>
<h2>Começando o desenvolvimento com o R</h2>
<p>Para integrar, será usado o pacote RFacebook criado por <strong>Pablo Barbera</strong> (<a href="mailto:pablo.barbera@nyu.edu?subject=Thanks%20for%20the%20package%20RFacebook" target="_blank" rel="noopener noreferrer">pablo.barbera@nyu.edu</a>).</p>
<p>Instale e inicie o pacote, para isso, pode usar os códigos abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">#Instalação do pacote

install.packages("Rfacebook")

#Carregamento do pacote

library(Rfacebook)</pre>
<p>Também faça o armazenamento do token de acesso em uma variável. Volte até o aplicativo que você criou, vá até a URL que gera o Token, e copie o valor. Para colocar em uma variável, faça a atribuição como a linha de código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">appToken &lt;- 'SEU_TOKEN_DE_ACESSO'</pre>
<p>Para garantir que o acesso está funcionando, pode-se testar o retorno de alguma função. Neste caso, usaremos a função GetUsers que retorna os dados de perfil de um usuário específico. Praticamente todas funções exige que seja passado o token de acesso. Esta função não é diferente, veja abaixo como retornar os dados de um usuário.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">eu &lt;- getUsers("me", token = appToken)

eu$name</pre>
<p>O resultado desta execução retorna o perfil de quem foi solicitado. O termo &#8220;me&#8221; retorna o perfil de quem está definido como criador do App no Facebook. Você pode passar outro ID de usuário e então os dados do perfil será retornado. Dentre a lista de atributos que retornaram, é possível retornar o nome utilizando o código $name.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo6-1.png?w=640" alt="" /></p>
<p>Também é possível retornar a lista de páginas que foi curtida por um usuário. A função GetLikes permite isso. O código abaixo apresenta a lista de nomes das páginas que o perfil &#8220;me&#8221; curtiu.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">meuslikes &lt;- getLikes("me", token=appToken)

meuslikes$names</pre>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo7-1.png?w=640" alt="" /></p>
<p>Uma forma de retornar as interações de uma página específica é usar a função GetPage. Esta função recebe alguns parâmetros para retornar os dados necessários, no exemplo passaremos três paramentos, sendo o nome da página que já foi armazenado na variável nomePagina; a quantidade de elementos a serem retornados, mantido na variável Quantidade e por fim o já utilizado token de acesso.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">nomePagina &lt;- "NGRSolutions"

Quantidade &lt;- 10

pagina &lt;- getPage(page = nomePagina, token = appToken, n = Quantidade)</pre>
<p>Se observar a estrutura do objeto pagina, que armazena o retorno da função GetPage, é possível encontrar diversos atributos da página retornada. Para acessar esta estrutura, uma forma é chamar a função str() passando o objeto que quer consultar como parâmetro. Veja o código abaixo.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">str(pagina)</pre>
<p>Repare os atributos marcados em amarelo na imagem abaixo, cada um deles retorna uma lista de valores sobre aquela pagina retornada.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo8-1.png?w=640" alt="" /></p>
<p>Para seguir com o experimento que estamos propondo, vamos retornar um valor do atributo id, que é responsável pelo id do post. Neste exato momento, o elemento número 5 do retorno é específico de um post que publicamos há alguns dias sobre uma promoção e gerou algumas interações. A escolha dele é justamente para podermos coletar retornos desta postagem. Para reutilizar o código desta publicação, ela será armazenada na variável codigoPost, como segue o código abaixo.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">codigoPost &lt;- pagina$id[5]</pre>
<p>Um novo elemento que pode-se usar para interagir com o Facebook é o retorno de detalhes de um post, utilizando a função GetPost. Esta função recebe os parâmetros como o código do post que está interessado em ter os detalhes e também o token. O resultado será armazenado na variável postagem, e esta variável possui uma estrutura, seguindo a mesma linha que fizemos com o objeto pagina.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">postagem &lt;- getPost(post = codigoPost, token = appToken)</pre>
<p>Inclusive é possível, também, saber a quantidade das reações de interação com o post. Para isso, use a função GetReactions, como o código abaixo.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">reacoes &lt;- getReactions(post = codigoPost, token = appToken)</pre>
<p>Seguindo com o propósito inicial, vamos retornar o nome de todos as pessoas que curtiram o post. Assim pode-se pegar o nome e o id de todos os que curtiram. A partir do ID, pode-se retornar à primeira função que vimos lá em cima, e retornar os detalhes daquele perfil&#8230; Ao retornar o atributo likes do objeto postagem, todos os elementos que curtiram a postagem são retornados. Neste caso, para trabalhar em forma mais tranquila, converte-se a estrutura de likes em um dataframe. Para facilitar ainda mais, vamos atribuir os nomes das colunas do dataframe em Nome e ID, para ter o objeto todosNomes com duas colunas internas, sendo a Nome e a Id. Veja o código abaixo.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">todosNomes &lt;- as.data.frame(postagem$likes)

colnames(todosNomes) &lt;- c('Nome','Id')</pre>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/072317_2159_Integrandoo9-2.png?w=640" alt="" /></p>
<p>A função RunIF retorna valores aleatórios entre um intervalo mínimo e máximo, e utilizando esta função, é possível retornar um valor qualquer entre 1 e o número de pessoas que comentaram o post. Como também quero retornar apenas 1 nome deste retorno, vou usar a função head() que retorna os primeiros registros de um dataframe. Ao passar por parâmetro os dados para &#8220;sortear&#8221; e a quantidade de retorno sendo 1, a função head() devolve um único número aleatório válido. Ao buscar este número dentro do dataframe todosNomes criados no passo anterior, é possível saber o nome de quem foi escolhido. Para retornar o ID do sorteado, pode-se pesquisas pelo nome diretamente no dataframe. Veja o código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">nomeAleatorio &lt;- todosNomes[head(as.integer(runif(todosNomes$Nome, 1, nrow(todosNomes))), 1), 'Nome']

idAleatorio &lt;- todosNomes[(todosNomes$Nome == nomeAleatorio),'Id']</pre>
<p>Para encerrar o experimento deste artigo, vamos usar o método updateStatus, que faz a postagem no Facebook. Este método recebe os parâmetros text, token e link. Sendo o text a mensagem a ser publicada, o token como já vimos e por fim, o link, como sendo uma URL para compartilhar junto ao post. Veja o código abaixo esta atualização no Facebook.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">updateStatus(text = 'Postagem no Facebook através do R. Li em um post no blog Think Think SQL.', token = appToken, link = 'https://diegonogare.net/2017/07/integrando-o-r-com-o-seu-facebook/')

</pre>
<p>Agora abra o facebook e veja esta publicação em seu perfil. Parabéns e obrigado por compartilhar!</p>
<p>Hah, porque mostrei como retornar os nomes de quem curtiu e acabei não usando no post?? Usei o nome para fazer o sorteio, também usei para postar no facebook o nome do vencedor. Faça seus experimentos, inclusive subi no github o código com esta utilização. Caso queira, o código em <a href="https://github.com/diegonogare/Scripts-R">R funcionando, e você pode ver aqui</a>!</p>
<p>Por fim, caso não tenha visto o Github ainda, <a href="https://diegonogare.net/2014/11/usando-git-e-github-pra-versionamento-e-colaboracao-de-codigo-t-sql/">neste post falei como usar o Github</a>.</p>
<p>O post <a href="https://diegonogare.net/2017/07/integrando-o-r-com-o-seu-facebook/">Integrando o R com o seu Facebook</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1545</post-id>	</item>
		<item>
		<title>Desenvolvendo seus projetos em R no Visual Studio 2017</title>
		<link>https://diegonogare.net/2017/07/desenvolvendo-seus-projetos-em-r-no-visual-studio-2017/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 10 Jul 2017 00:22:46 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[business analytics]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[linguagem R]]></category>
		<category><![CDATA[visual studio]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1503</guid>

					<description><![CDATA[<p>Fala galera! Depois de mais 1 ano e meio sem escrever para cá por causa do projeto do livro Análise Preditiva com Azure Machine Learning e R e o foco no crescimento da NGR, hoje volto a escrever para o blog. O direcionamento da escrita será o mesmo de sempre, olhar para tecnologias focadas em...</p>
<p>O post <a href="https://diegonogare.net/2017/07/desenvolvendo-seus-projetos-em-r-no-visual-studio-2017/">Desenvolvendo seus projetos em R no Visual Studio 2017</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera! Depois de mais 1 ano e meio sem escrever para cá por causa do projeto do livro <a href="http://www.livrosdonogare.com.br/produto/analise-preditiva-com-azure-machine-learning-e-r/" target="_blank" rel="noopener noreferrer">Análise Preditiva com Azure Machine Learning e R</a> e o foco no crescimento da <a href="http://www.ngrsolutions.com.br/" target="_blank" rel="noopener noreferrer">NGR</a>, hoje volto a escrever para o blog.</p>
<p>O direcionamento da escrita será o mesmo de sempre, olhar para tecnologias focadas em dados!</p>
<p>Para voltar, escolhi contar como pode-se desenvolver scripts e projetos usando Linguagem R dentro do Visual Studio, tanto 2015 quanto 2017. E o melhor, pode-se usar a versão Community do Visual Studio, que é gratuita. Esta pode ser uma alternativa ao RStudio (que também é gratuito se não for usado para fins lucrativos), caso tenha o ambiente de desenvolvimento baseado em Microsoft já configurado.</p>
<p>Vamos lá, a primeira coisa a se fazer é baixar os softwares necessários. Caso já tenha o .Net Framework instalado, pode pular o download. Se estiver na dúvida, baixe.</p>
<ol>
<li><a href="https://www.microsoft.com/download/details.aspx?id=42642">.Net Framework 4.5.2</a> (+ &#8211; 70MB)</li>
<li><a href="http://aka.ms/rclient/">Microsoft R Client</a> (+ &#8211; 300 MB)</li>
<li><a href="https://www.visualstudio.com/pt-br/downloads/">Visual Studio Community 2017</a> (+ &#8211; 4.7Gb)</li>
</ol>
<p>Todos os links acima são de distribuições gratuitas. Lembrando que o terceiro link, o do Visual Studio, você pode manter uma versão paga caso tenha a licença do produto.</p>
<p>Para começar o processo, faça a instalação do .Net Framework. Provavelmente se você mantém seu Windows atualizado, você não precisará instalar o .Net Framework e terá uma mensagem de alerta como a seguir. Caso precise instalar, é só avançar até concluir.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven1-2.png?w=640" alt="" /></p>
<p>Seguindo o processo, entendendo que o .Net Framework já está instalado e rodando no seu ambiente, é o momento de instalar o Microsoft R Client. Faça a instalação agora, já tiver o Visual Studio em seu ambiente ou não. Ao iniciar a instalação, uma imagem como a seguir é apresentada, e solicita quais são os elementos que gostaria de instalar no ambiente. Eu desmarquei o Pre-Trained Models, mas se quiser estudar por eles, pode marcar a seguir a instalação.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven2-1.png?w=640" alt="" /></p>
<p>Ao final da instalação, a tela avisa que finalizou e é só clicar em Finish.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven3-1.png?w=640" alt="" /></p>
<p>O passo seguinte é iniciar a instalação do Visual Studio.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven4-1.png?w=640" alt="" /></p>
<p>Ao iniciar o instalador atual do Visual Studio, existem vários <em>presets</em> de ambiente configurado. Cada uma destas pré configurações agiliza o processo de setup do ambiente para aquele Workload que pretende trabalhar.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven5-1.png?w=640" alt="" /></p>
<p>Assegure-se de marcar a opção &#8220;Data Science and Analytical applications&#8221; e, nas opções da lateral direita, verifique se está marcado o R Language Support e Microsoft R Client dentro das opções de Individual Components. Repare que neste momento o setup faz a instalação do Microsoft R Client, que foi instalado manualmente no passo anterior. A instalação manual é justamente para deixar a ultima versão da publicação no ambiente. Manualmente foi instalado o Microsoft R Client 3.3.3 e a instalação de agora coloca a versão 3.3.2</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven6-1.png?w=640" alt="" /></p>
<p>Ao avançar, a instalação do ambiente começa a trabalhar. No final,</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven7-1.png?w=640" alt="" /></p>
<p>Após alguns instantes, a instalação termina e é possível abrir o Visual Studio. Para abrir, clique em Launch.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven8-1.png?w=640" alt="" /></p>
<p>Se for a primeira execução do Visual Studio, poderá ser solicitado o seu e-mail de conta Microsoft. É só informar e avançar.</p>
<p>Neste momento, se tudo ocorrer bem, você terá uma versão funcional e totalmente gratuita do Visual Studio 2017 em seu ambiente.</p>
<p>Ao criar um novo projeto (File &gt;&gt; New &gt;&gt; Project)) e informar que será um projeto em R. Você será lançado ao editor do R no Visual Studio.</p>
<p>Escrevi o código abaixo há alguns anos (para outros exemplos). O resultado é criar um gráfico com 10 barras, indo em um dégradé de cores entre vermelho e verde, passando por amarelo.</p>
<p style="background: #bfbfbf;"><em>color &lt;- colorRampPalette(c(&#8220;red&#8221;, &#8220;yellow&#8221;, &#8220;green&#8221;)) </em></p>
<p style="background: #bfbfbf;"><em style="font-size: 1.5rem;">color(10)</em></p>
<p style="background: #bfbfbf;"><em>a &lt;- c(1:10)<br />
</em></p>
<p style="background: #bfbfbf;"><em>barplot(a, col = color(10), main = &#8220;R no Visual Studio 2017 &#8211; Diego Nogare&#8221;)<br />
</em></p>
<p>Ao executar o script, o resultado deverá ser como o da imagem abaixo.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2017/07/071017_0026_Desenvolven9-2.png?w=640" alt="" /></p>
<p>Simples assim você tem um ambiente funcional (e gratuito) para escrever códigos em R no seu Visual Studio.</p>
<p>O post <a href="https://diegonogare.net/2017/07/desenvolvendo-seus-projetos-em-r-no-visual-studio-2017/">Desenvolvendo seus projetos em R no Visual Studio 2017</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1503</post-id>	</item>
		<item>
		<title>Open Data Science Conference – São Francisco/2015</title>
		<link>https://diegonogare.net/2015/11/open-data-science-conference-sao-francisco2015/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 16 Nov 2015 02:43:15 +0000</pubDate>
				<category><![CDATA[Negócios e Tecnologia]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[cortana analytics]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[linguagem R]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Palestra]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sql server]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1407</guid>

					<description><![CDATA[<p>Fala galera, no fim de semana dos dias 14 e 15/Novembro estive em São Francisco para acompanhar o evento Open Data Science Conference. Este evento já aconteceu em Boston também em 2015 e a agenda pra 2016 é que aconteça em mais alguns lugares aqui dos Estados Unidos e também vá para Inglaterra e Japão....</p>
<p>O post <a href="https://diegonogare.net/2015/11/open-data-science-conference-sao-francisco2015/">Open Data Science Conference – São Francisco/2015</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera, no fim de semana dos dias 14 e 15/Novembro estive em São Francisco para acompanhar o evento <a href="opendatascicon.com" target="_blank" rel="noopener noreferrer">Open Data Science Conference</a>. Este evento já aconteceu em Boston também em 2015 e a agenda pra 2016 é que aconteça em mais alguns lugares aqui dos Estados Unidos e também vá para Inglaterra e Japão. A localização do evento é ótima, ao lado do aeroporto de São Francisco, isso facilitou demais a logistica pra quem veio de fora.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/111615_0243_OpenDataSci1-1.png?w=640" alt="" /></p>
<p>O evento foi MUITO superior ao que esperava, a estrutura do evento foi impecável. As salas comportaram todos os participantes, workshops e palestras relevantes, interação com os patrocinadores ocorreu naturalmente por serem patrocinadores com importância pro evento e pra nós, participantes. No fim do primeiro dia tivemos um momento pra fazer network (com cerveja na faixa!) no hotel mesmo, e foi interessante conversar com alguns cientistas de dados aqui dos Estados Unidos.</p>
<p>Fiz algumas anotações das palestras/workshops que achei mais interessantes durante o evento, veja abaixo:</p>
<h2>Dia 1 &#8211; Sábado</h2>
<h4><strong>Keynote<br />
</strong></h4>
<p><strong>Brian Granger</strong> &#8211; Criador do IPython e Project Jupyter</p>
<p>O Jupyter é um compilador/interpretador online para Python (e mais 40 outras linguagens) que permite trabalhar em soluções narrativas com outros profissionais. Parecido com o Knirt (para R), mas ao invés de só renderizar na tela no formato escolhido, ele permite que o script que é escrito seja processador pelo server através do navegador. Jupyter é uma plataforma aberta, desenvolvida pela comunidade e com um time de estrelas por trás, a facilidade do crescimento se dá pelo uso do GitHub como repositório. Empresas como Microsoft, Google, IBM e varias outras estão desenvolvendo soluções para o Jupyter Notebook ou Kernel. JupyterHub permite empresas usar o Jupyter em suas organizações (pelo que entendi, como um repositório privado do github). Num futuro próximo pode ser que mude o nome para Jupyter Workbench, e também estão trabalhando para entregar Real-Time Colaboration, e na tentativa de permitir em uma única janela do navegador ter um console, graficos interativos, e várias outras coisas de UX para os desenvolvedores ficarem só em uma janela e aumentar a produtividade.</p>
<p>O Brian deu um exemplo de dois jornalistas que escrevem sobre ciência no BuzzFeed, que entregam seus experimentos no github e permite que nós possamos reproduzir as pesquisas. Caso queiram ver, este é o link: <a href="https://github.com/BuzzFeedNews/everything" target="_blank" rel="noopener noreferrer">https://github.com/BuzzFeedNews/everything</a></p>
<p>&nbsp;</p>
<h4><strong>Palestras<br />
</strong></h4>
<p><strong>Claudia Perlich</strong> &#8211; Big Data matou o click | heróis de métricas não celebrados</p>
<p>40% dos clicks são acidentais ou fraudes! Fraudes são fáceis de gerar através de robos (bots) em eventos de conversão, principalmente nos retargets para aumentar o CTR e o contratante pagar mais pelo serviço. O comportamento de robos são mais fáceis de prever do que humanos, nosso comportamento é quase impossível de prever. Em uma análise focada, quando se analisa um dataset atrás de padrão de comportamento, deve-se conhecer o que procura para eliminar problemas gerados por randomização. Quando se tem uma precisão/acurácia de aproximadamente 50%, isso significa uma randomização. O objetivo é conseguir um valor de limiar acima de 70 ou 80%. Uma técnica que pode ajudar, é coletar para análise alguns registros randomicamente dos 1 ou 2% mais importantes do universo que tem, e analisar o comportamento desta amostra. A chance desta técnica apresentar um padrão de comportamento diferente do comportamento geral é muito grande, e diversos estudos mostram que este comportamento pode ser mais próximo do real do que se imagina.</p>
<p>&nbsp;</p>
<p><strong>Richard Socher</strong>, PhD &#8211; Metamind.io &#8211; Deep Learning for Enterprise</p>
<p>Esta foi a palestra mais foda e que eu mais me impressionei. Richard apresentou diversos problemas do mundo e as soluções que sua empresa criou utilizando Deep Learning. Esta palestra me fez mudar a agenda e participar de um Workshop de Deep Learning no segundo dia do evento ao invés de assistir às palestras que tinha me planejado. Não sei como descrever as técnicas que ele apresentou, e não teve quase nenhuma teoria, só que o reconhecimento de voz e de imagem são complexos para se executar com algoritmos convencionais de Data Science. O uso de técnicas de Deep Learning ajuda muito nestas tarefas. Processar isso é muito custos e usa-se o CPU pra procesamento de texto e a GPU pra processar imagens.</p>
<p>&nbsp;</p>
<h4><strong>Workshop<br />
</strong></h4>
<p><strong>John Mount / Nina Zumel</strong> &#8211; Preparando dados para análise usando R: Técnicas avançadas através das básicas</p>
<p>Workshop de 2 horas com diversas técnicas para se trabalhar com dados, limpar e processar as análises. Foi disponibilizado um repositório no github pra gente configurar a máquina antes e acompanhar o workshop com tudo o que foi discutido (<em>repo garfado</em>): <a href="https://github.com/diegonogare/PreparingDataWorkshop" target="_blank" rel="noopener noreferrer">https://github.com/diegonogare/PreparingDataWorkshop</a></p>
<p>&nbsp;</p>
<h2>Dia 2 &#8211; Domingo</h2>
<h4><strong>Workshop<br />
</strong></h4>
<p><strong>Markus Beissinger</strong> – Intro to Deep Learning with Theano and OpenDeep</p>
<p>Deep Learning segmenta a análise em hierarquia, encontrando item a item treinado separadamente para encontrar o objeto que quer depois. Por exemplo, imagine o reconhecimento de um rosto: em Deep Learning a tecnica começa com uma camada reconhecimento elementos separados, como nariz, orelha, olho, boca, etc; na sequencia a proxima camada reconhece um pouco mais de coisas, como as posições de olhos próximos ao nariz. Boca próximo ao nariz. Orelhas ao lado dos olhos, e assim por diante. Por fim, neste exemplo, ele consegue reconhecer um rosto completo em uma terceira camada de classificação.</p>
<p>O processo interno usa algebra linear, porque tudo dentro de Deep Learning é calculado com matrizes e vetores. Um dos calculos mais básicos ainda é a Regressão Logistica para analisar as probabilidades.</p>
<p>Mesmo a Regressão Logistica sendo a estrutura mais básica, uma das mais usadas é a Rede Neural, que possibilita executar muitas Regressões Logisticas em paralelo e encontrar uma melhor solução para a análise que está fazendo com Deep Learning. Muitas outras técnicas, como Convolutional Nets, por exemplo, devem combinar com as redes neurais artificiais para conseguir fazer o reconhecimento de imagem.</p>
<p>Códigos usados para os exemplos, estão disponíveis nestes dois repositórios garfados <a href="https://github.com/diegonogare/odsc" target="_blank" rel="noopener noreferrer">https://github.com/diegonogare/odsc</a> e <a href="https://github.com/diegonogare/OpenDeep" target="_blank" rel="noopener noreferrer">https://github.com/diegonogare/OpenDeep</a></p>
<p>&nbsp;</p>
<p><strong>Fidan Boylu / Muxi Li</strong> &#8211; How to build and operationalize data science solutions with Cortana Analytics</p>
<p>Fidan apresentou um overview interessante de AzureML utilizando alguns modelos nativos de algoritmos existentes dentro do AzureML, avançou expandindo as possibilidades utilizando R. Um tour guiado para analisar dados que fizemos upload, com certeza todos conseguiram acompanhar. Na sequência Mixu mostrou integração entre AzureML e scripts em Python, analisando tudo nos Workbooks do Jupyter que possui integração com o AzureML. Esta segunda parte eu não acompanhei, e pelo visto, a galera que estava acompanhando também se perdeu.</p>
<p>PS. Não falaram nada de Cortana Analytics! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Dá pra acompanhar depois, passo a passo, com os dados que foram disponibilizados neste repositório garfado: <a href="https://github.com/diegonogare/Azure-Machine-Learning-Lab" target="_blank" rel="noopener noreferrer">https://github.com/diegonogare/Azure-Machine-Learning-Lab</a></p>
<p>&nbsp;</p>
<p><strong>Ted Kwartler</strong> &#8211; Introduction to text mining using R</p>
<p>Existem muitos problemas na interpretação de texto: O dado não é estruturado, expressões são individualistas, implicações culturais, e vários outros fatores. É possível trabalhar com Text Mining de duas formas, uma é usando validação sintatica e outra é usando &#8220;bag of words&#8221;. O foco desta sessão é trabalhar com o bag of words. A análise de sentimentos é sempre lembrada quando se fala de mineração de texto, o Ted ainda está estudando esta disciplina e mostrou algumas coisas utilizando técnicas de Score baseada em dicionários. Em resumo, várias técnicas foram apresentadas, e podem ser acompanhadas no repositório do Github que garfei, não do github do Ted, e sim de uma pasta no Amazon Drive dele: <a href="https://github.com/diegonogare/DataScience/tree/master/Text%20Mining" target="_blank" rel="noopener noreferrer">https://github.com/diegonogare/DataScience/tree/master/Text%20Mining</a></p>
<p>O post <a href="https://diegonogare.net/2015/11/open-data-science-conference-sao-francisco2015/">Open Data Science Conference – São Francisco/2015</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1407</post-id>	</item>
		<item>
		<title>Introdução ao SQL Server R Services 2016</title>
		<link>https://diegonogare.net/2015/11/introducao-ao-sql-server-r-services-2016/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Fri, 06 Nov 2015 19:48:50 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[lançamento]]></category>
		<category><![CDATA[linguagem R]]></category>
		<category><![CDATA[mvp summit]]></category>
		<category><![CDATA[pass summit]]></category>
		<category><![CDATA[sql server]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1400</guid>

					<description><![CDATA[<p>Fala galera, uma das novidades do SQL Server 2016 é a possibilidade de executar scripts da linguagem R internamente na plataforma de dados da Microsoft. Isso avança mais um passo dentro da abordagem deles para a área de Big Data e Data Science, que já possui coisas como o HDInsight, PowerBI, Datazen, Data Lake e...</p>
<p>O post <a href="https://diegonogare.net/2015/11/introducao-ao-sql-server-r-services-2016/">Introdução ao SQL Server R Services 2016</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera, uma das novidades do SQL Server 2016 é a possibilidade de executar scripts da linguagem R internamente na plataforma de dados da Microsoft. Isso avança mais um passo dentro da abordagem deles para a área de Big Data e Data Science, que já possui coisas como o HDInsight, PowerBI, Datazen, Data Lake e outros. Aqui vou mostrar como instalar os pré-requisitos e configurar o R dentro do CTP3 – <em>Community Technology</em><br />
<em>Preview</em> – do SQL Server 2016. Pode ser que isso mude até a versão final, mas até lançarem, dá pra brincar com o R seguindo estes passos&#8230;</p>
<p>&nbsp;</p>
<h2>Pré-Requisitos</h2>
<p><a href="http://blogs.technet.com/b/dataplatforminsider/archive/2015/10/28/sql-server-2016-community-technology-preview-3-0-is-available.aspx" target="_blank" rel="noopener noreferrer">SQL Server 2016 CTP 3</a> (2.7GB)</p>
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=49525" target="_blank" rel="noopener noreferrer">Revolution R Open 3.2.2 for Revolution R Enterprise 7.5.0</a> (60MB)</p>
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=49505" target="_blank" rel="noopener noreferrer">Revolution R Enterprise 7.5.0 (RRE-7.5.0)</a> (470MB)</p>
<h2>Instalação</h2>
<p>O primeiro passo é instalar o <strong>SQL Server 2016 CTP 3</strong>, lembrando de habilitar o recurso de <strong>Advanced Analytics Extensions</strong>.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS1-1.jpg?w=640" alt="" /></p>
<p>Depois de concluir a instalação, é necessário instalar o <strong>Revolution R Open 3.2.2 for Revolution R Enterprise 7.5.0</strong> e em seguida <strong>Revolution R Enterprise 7.5</strong>. Estas ferramentas são, respectivamente, a distribuição do R com o runtime e algumas bibliotecas, e, um grupo de melhorias nos pacotes que oferece suporte de alta performance á diversas origens de dados.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS2-1.png?w=640" alt="" /><br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS3-1.png?w=640" alt="" /></p>
<p>Da parte de instalação é só isso, agora faltam só mais alguns passos de configuração e o R começará a responder de dentro do SQL Server.</p>
<h2>Configuração</h2>
<p>Pode parecer complexo pra quem vê a primeira vez, mas é bem simples. A primeira coisa é habilitar a execução de scripts externos no SQL Server que por padrão, vem desabilitado. Você pode verificar isso chamando o código <strong>SP_CONFIGURE</strong>.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS4-1.png?w=640" alt="" /></p>
<p>Para habilitar, execute o código abaixo:</p>
<pre><code>Exec sp_configure 'external scripts enabled', 1;
</code><code>reconfigure;
</code></pre>
<p>O resultado deve ter mudado a linha do <strong>External Scripts Enabled</strong>, que agora está habilitado.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS5-1.png?w=640" alt="" /></p>
<p>Depois de habilitar a execução de scripts externos no SQL Server, é necessário registrar um daqueles serviços externos que foram instalados, é o serviço do <strong>Revolution R Open</strong>. Para isso, abra um prompt de comando com privilégios de admin e vé até o caminho que fez a instalação do RRO. No meu caso foi neste caminho (provavelmente você precisará editar isso para que funcione no seu servidor).</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS6-2.png?w=640" alt="" /></p>
<pre><code>c:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\
library\RevoScaleR\rxLibs\x64&gt;
</code></pre>
<p>Procure um executável chamado registerRext.exe e passe a instrução de instalar. Como eu renomeei a minha instância para SQL2016, eu também precisei passar o nome da instância para o executavel. Ficou assim:</p>
<pre><code>c:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\
library\RevoScaleR\rxLibs\x64&gt;registerRext.exe /install /instance:SQL2016
</code></pre>
<p>&nbsp;</p>
<p>Ele executa um monte de instalações e registros internos, olha o resultado do prompt de comando depois dos registros:</p>
<p style="background: #f2f2f2;">Source directory to pick the RExtension binaries determined to be &#8220;c:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\library\RevoScaleR\rxLibs\x64\&#8221;.</p>
<p style="background: #f2f2f2;">Connecting to SQL server&#8230;</p>
<p style="background: #f2f2f2;">Sql server binn directory is &#8220;C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn&#8221;.</p>
<p style="background: #f2f2f2;">Sql server log directory is &#8220;C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Log&#8221;.</p>
<p style="background: #f2f2f2;">Creating user account pool&#8230;</p>
<p style="background: #f2f2f2;">Creating user accounts.</p>
<p style="background: #f2f2f2;">Processing 20/20</p>
<p style="background: #f2f2f2;">Adding firewall rule for user account pool.</p>
<p style="background: #f2f2f2;">***WARNING: For security reasons, it is recommended to block network access for</p>
<p style="background: #f2f2f2;">R processes executing under local user accounts. It appears that Windows Firewall is currently disabled for the Network Profiles DOMAIN, PRIVATE. Please enable Windows Firewall or use another firewall to block network access</p>
<p style="background: #f2f2f2;">Creating working directory for user accounts.</p>
<p style="background: #f2f2f2;">Saving user account configuration.</p>
<p style="background: #f2f2f2;">User account pool with 20 users created.</p>
<p style="background: #f2f2f2;">R installation found at C:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2.MPI installation found at C:\Program Files\Microsoft MPI.</p>
<p style="background: #f2f2f2;">Settings file C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\rlauncher.config created.</p>
<p style="background: #f2f2f2;">Stopping service MSSQLLaunchpad$SQL2016&#8230;</p>
<p style="background: #f2f2f2;">Stopping service MSSQL$SQL2016&#8230;</p>
<p style="background: #f2f2f2;">Copied xp_callrre.dll from c:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\library\RevoScaleR\rxLibs\x64\ to C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn.</p>
<p style="background: #f2f2f2;">Copied RLauncher.dll from c:\Program Files\RRO\RRO-3.2.2-for-RRE-7.5.0\R-3.2.2\library\RevoScaleR\rxLibs\x64\ to C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn.</p>
<p style="background: #f2f2f2;">Starting service MSSQLLaunchpad$SQL2016&#8230;</p>
<p style="background: #f2f2f2;">Connecting to SQL server&#8230;</p>
<p style="background: #f2f2f2;">Created role db_rrerole</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_init_job.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_init_job to db_rrerole.</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_queue_job.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_queue_job to db_rrerole.</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_retrieve_results.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_retrieve_results to db_rrerole.</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_query_status.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_query_status to db_rrerole.</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_cancel_job.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_cancel_job to db_rrerole.</p>
<p style="background: #f2f2f2;">Added extended stored procedure xp_ScaleR_cleanup.</p>
<p style="background: #f2f2f2;">Granted Execute for extended stored procedure xp_ScaleR_cleanup to db_rrerole.</p>
<p style="background: #f2f2f2;">R extensibility installed successfully.</p>
<p>Agora só falta reiniciar o serviço do SQL Server.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS7-1.png?w=640" alt="" /></p>
<h2>Primeira execução!</h2>
<p>Agora é momento de abrir o <strong>SQL Server 2016</strong> e executar o seu código em R. Peguei um código já criado aqui no blog anteriormente (<a href="https://diegonogare.net/2015/09/trabalhando-com-cores-no-r/">Trabalhando com cores no R</a>), e reaproveitei. Execute o código abaixo:</p>
<pre><code>EXECUTE   sp_execute_external_script
</code><span style="line-height: 1.5;"> @language = N'R' </span><code>              , @script = N'OutputDataSet &lt;- InputDataSet
</code><span style="line-height: 1.5;">             color &lt;- colorRampPalette(c("red","yellow", "green")) </span><code>              color(10)
</code><span style="line-height: 1.5;">             a &lt;- c(1:10) </span><code>              jpeg("C:/TEMP/Barras.jpg")
</code><span style="line-height: 1.5;">             barplot(a, col=color(10), main="R no SQL Server 2016") </span><code>              dev.off()'
</code><span style="line-height: 1.5;"> , @input_data_1 = N'SELECT ''R no SQL Server 2016'' as Col' </span><code>              WITH RESULT SETS ((col varchar(30) not null));
</code><span style="line-height: 1.5;">go</span></pre>
<p>&nbsp;</p>
<p>E vá até sua pasta <strong>C:\Temp</strong> e pocure o arquivo <strong>Barras.jpg</strong>. Se tudo deu certo, você terá um gráfico como este abaixo gerado pelo R diretamente do seu SQL Server 2016.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/11/110615_1948_IntroduodoS8-1.jpg?w=640" alt="" /></p>
<p>Agora é explorar as funcionalidades e possibilidades do R, e integrar isso ao seu ambiente. Fique atento que mais posts sobre R dentro do SQL Server serão publicados em breve!</p>
<h2>Links de Referência</h2>
<p>Todas estas configurações acima foram consolidadas e tiradas destes links de referências abaixo.</p>
<p><a href="https://msdn.microsoft.com/library/mt604883(SQL.130).aspx">Installing SQL Server R Services</a></p>
<p><a href="https://msdn.microsoft.com/pt-br/library/mt590808.aspx">Install Advanced Analytics Extensions</a></p>
<p><a href="https://msdn.microsoft.com/pt-br/library/mt590809.aspx">Install R Packages and Providers for SQL Server R Services</a></p>
<p><a href="https://msdn.microsoft.com/pt-br/library/mt590869.aspx">Configure and Manage Advanced Analytics Extensions</a></p>
<p>O post <a href="https://diegonogare.net/2015/11/introducao-ao-sql-server-r-services-2016/">Introdução ao SQL Server R Services 2016</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1400</post-id>	</item>
		<item>
		<title>Trabalhar com cores no R</title>
		<link>https://diegonogare.net/2015/09/trabalhar-com-cores-no-r/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 19:40:47 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[graficos]]></category>
		<category><![CDATA[linguagem R]]></category>
		<category><![CDATA[paleta de cores]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1357</guid>

					<description><![CDATA[<p>Trabalhando com cores no R Flexibilidade na análise de dados Fala galera, uma coisa interessante de se trabalhar com ferramentas de análise de dados é a possibilidade de customizar ao máximo os elementos visuais que você apresenta em relatórios e gráficos. Estas análises te ajudam a entender o cenário que se está trabalhando. Entre várias...</p>
<p>O post <a href="https://diegonogare.net/2015/09/trabalhar-com-cores-no-r/">Trabalhar com cores no R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Trabalhando com cores no R</h1>
<h2>Flexibilidade na análise de dados</h2>
<p>Fala galera, uma coisa interessante de se trabalhar com ferramentas de análise de dados é a possibilidade de customizar ao máximo os elementos visuais que você apresenta em relatórios e gráficos. Estas análises te ajudam a entender o cenário que se está trabalhando. Entre várias possibilidades, uma delas diz respeito à cores, e é por isso que explico rapidamente como trabalhar com cores no R.</p>
<h2>Trabalhar com cores no R</h2>
<p>Para fugir das cores iniciais de todos os gráficos e relatórios feitos em R, existem várias saídas. Você pode usar padrão RGB e definir os valores de <strong>R</strong> – <em>red</em> (vermelho), <strong>G</strong> – <em>green</em> (verde) e <strong>B</strong> – <em>blue</em> (azul) e então formar a cor que tem interesse. Você pode usar uma paleta de cores já existente. Também pode usar um pacote de cores criado por outros desenvolvedores da linguagem R e expandir seus horizontes.</p>
<h2>Cores padrão</h2>
<p>Para começar, o padrão inicial de cores do R é expresso nestas cores: <strong>Black</strong> (preto), <strong>red</strong> (vermelho), <strong>green</strong> (verde), <strong>blue</strong> (azul), <strong>cyan</strong>, (ciano), <strong>magenta</strong> (magenta), <strong>yellow</strong> (amarelo) e <strong>gray</strong> (cinza). Que podem ser vistas chamando a função <em>palette()</em> e encontrando seu resultado. Estes valores também podem ser visualizados em um gráfico, usando a posição (em ordem) crescente destes valores. Veja o exemplo abaixo sobre isso:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">coresBasicas &lt;- c(1:8)
barplot(coresBasicas, col=coresBasicas)</pre>
<p>&nbsp;</p>
<p>Esta geração de cores apresentadas no gráfico de barras, significa que a cor do elemento 1 é a representada por preto, a cor do elemento 2 é representada por vermelho, e assim por diante seguindo os valores apresentados pela função <em>palette().</em></p>
<p><img data-recalc-dims="1" fetchpriority="high" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando1-1.png?resize=638%2C436&#038;ssl=1" alt="gráfico de barras colorido" width="638" height="436" /></p>
<p>Se usar um pacote de funções para criar interpolação de cores, como um degradê simples, passando um nome de cor para iniciar o degradê e um para terminar, é possível montar gráficos com cores mais interessantes, como este exemplo abaixo:</p>
<h2>Degradê</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">a &lt;- c(1:10)
corDegrade &lt;- colorRampPalette(c("red","yellow")) # Degradê de vermelho para amarelo
corDegrade(10)
barplot(a, col=corDegrade(10))</pre>
<p>&nbsp;</p>
<p>No qual a variável <em>corDegrade</em> recebe os elementos interpolados partindo da cor vermelho (red) para a cor amarelo (yellow). Quando chamado o resultado de corDegrade(10), a linguagem R apresenta 10 elementos de interpolação, no padrão RGB, saindo do vermelho em direção ao amarelo.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">corDegrade(10)
[1] "#FF0000" "#FF1C00" "#FF3800" "#FF5500" "#FF7100" "#FF8D00" "#FFAA00" "#FFC600" [9] "#FFE200" "#FFFF00"</pre>
<p>&nbsp;</p>
<p>Este mesmo processo pode ser usado para informar o gráfico que deve usar estes valores para plotar cada barra do gráfico através do parâmetro <em>col=corDegrade(10)</em>.</p>
<p><img data-recalc-dims="1" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando2-2.png?resize=638%2C436&#038;ssl=1" alt="gráfico de barras colorido" width="638" height="436" /></p>
<h2>Com pacote <em><strong>colorRampPalette</strong></em></h2>
<p>As cores informadas para o pacote <em><strong>colorRampPalette</strong></em> ficam a seu critério, podendo, por exemplo, ser de azul escuro (<strong><em>darkblue</em></strong>) para azul claro (<strong><em>lightblue</em></strong>). Veja como fica no exemplo abaixo:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">color &lt;- colorRampPalette(c("darkblue","lightblue"))
color(10)
barplot(a, col=color(10))</pre>
<p><img data-recalc-dims="1" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando3-2.png?resize=638%2C436&#038;ssl=1" alt="gráfico de barras colorido" width="638" height="436" /></p>
<p>Esta variação de cores não precisa ser necessariamente entre apenas duas cores, você pode colocar algumas a mais, como no exemplo abaixo, que é pra variar entre as cores de Vermelho, Amarelo e Verde:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">color &lt;- colorRampPalette(c("red","yellow", "green"))
color(10)
barplot(a, col=color(10))</pre>
<p>&nbsp;</p>
<p>Neste caso, quando você olhar os 10 elementos gerados por color(10), encontrará as variações de vemelho passando para amarelo e então para verde.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">color(10)
[1] "#FF0000" "#FF3800" "#FF7100" "#FFAA00" "#FFE200" "#E2FF00" "#AAFF00" "#71FF00" [9] "#38FF00" "#00FF00"</pre>
<p>E o gráfico fica assim:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando4-2.png?resize=638%2C436&#038;ssl=1" alt="gráfico de barras colorido" width="638" height="436" /></p>
<h2>Com pacote <em>RColorBrewer</em></h2>
<p>Uma terceira forma de se trabalhar com cores é através de pacotes existentes no CRAN, como por exemplo o RcolorBrewer. O pacote foi criado por Cynthia Brewer para usar, principalmente, em cartografia como descrito em <a href="http://colorbrewer2.org">http://colorbrewer2.org</a>.</p>
<p>Ou seja, para usar este pacote, é só fazer a instalação e carregá-lo. Em seguida informa qual é a paleta de cores já pré-configuradas pelo pacote e então faz a plotagem dos dados. Veja como usar isso no código a seguir:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">install.packages("RColorBrewer")
library(RColorBrewer)</pre>
<p>Após carregar o pacote, chame o gráfico passando as cores que serão plotadas.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">cores &lt;- brewer.pal(10, "Dark2")
barplot(a, col=cores)</pre>
<p>O resultado é o gráfico com estes padrões de cores:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando5-2.png?resize=605%2C353&#038;ssl=1" alt="gráfico de barras colorido" width="605" height="353" /></p>
<p>Neste pacote <em>RcolorBrewer</em> existe uma quantidade interessante de paleta de cores disponíveis. Caso queira visualizar todas as opções, chame a função abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">display.brewer.all()</pre>
<p>Este código chama uma renderização de tela com as variações de cores em casa paleta.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando6-2.png?resize=567%2C388&#038;ssl=1" alt="paleta de cores" width="567" height="388" /></p>
<p>Para usar uma destas combinações, basta informar o nome no parâmetro que será consumido na hora de plotar o gráfico. Por exemplo, para ver o gráfico usando as cores configuradas como <em>Set2</em>, use o código a seguir:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">cores &lt;- brewer.pal(10, "Set2")
barplot(a, col=cores)</pre>
<p>&nbsp;</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando7-2.png?resize=605%2C353&#038;ssl=1" alt="gráfico de barras colorido" width="605" height="353" /></p>
<h2>Outros exemplos&#8230;</h2>
<p>Todos estes tipos de cores apresentados funcionam com outros gráficos também. Como exemplo apresentado no post <a href="https://diegonogare.net/2015/08/plotando-graficos-de-caixas-com-dados-sumarizados-de-media-mediana-e-quartis-com-r/" target="_blank" rel="noopener noreferrer">Plotando gráficos de caixas com dados sumarizados de média, mediana e quartis com R</a> você pode mudar o conjunto de cores apresentados, apenas mudando o parâmetro <em>Col </em>que informa as cores a serem utilizadas. Veja abaixo o código e o resultado:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">cores &lt;- brewer.pal(3, "Dark2")

boxplot(IdadeEsposa~MetodoContraceptivo, data=data, col=(cores),
   ylab="Idade Mulher", xlab="Método Contraceptivo",
   main="Boxplot de uso de métodos contraceptivos" )
</pre>
<p>&nbsp;</p>
<p>Onde usamos a paleta Dark2 e conseguimos o resultado:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando8-2.png?resize=605%2C353&#038;ssl=1" alt="gráfico de caixa colorido" width="605" height="353" /></p>
<p>Ou então com a paleta Paired</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">cores &lt;- brewer.pal(3, "Paired")

boxplot(IdadeEsposa~MetodoContraceptivo, data=data, col=(cores),
   ylab="Idade Mulher", xlab="Método Contraceptivo",
   main="Boxplot de uso de métodos contraceptivos" )
</pre>
<p>Para criar o gráfico abaixo:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/09/090815_1940_Trabalhando9-2.png?resize=605%2C353&#038;ssl=1" alt="gráfico de caixa colorido" width="605" height="353" /></p>
<p>Estes padrões de cores de se trabalhar com R podem facilitar muito o entendimento de um gráfico, onde por exemplo, os menores valores podem ser intensidades mais claras e os maiores valores podem ser representados com intensidade mais escura. A mudança de cores é legal, mas acima de tudo, isso facilita a nossa visão do que é importante e o que é menos relevante na hora de analisar um gráfico e tomar uma decisão. Espero que seja útil pra vocês <span style="font-family: Wingdings;">J</span></p>
<p>O post <a href="https://diegonogare.net/2015/09/trabalhar-com-cores-no-r/">Trabalhar com cores no R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1357</post-id>	</item>
		<item>
		<title>Plotando gráficos de caixas com Linguagem R</title>
		<link>https://diegonogare.net/2015/08/plotando-graficos-de-caixas-com-linguagem-r/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 24 Aug 2015 19:27:12 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Boxplot]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Estatistica]]></category>
		<category><![CDATA[linguagem R]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1316</guid>

					<description><![CDATA[<p>Plotando gráficos de caixas dados sumarizados de média, mediana e quartis com R Dentro da área de estudo da Estatística Descritiva tem um conjunto de valores sumarizados que são utilizados com bastante frequência por analistas dos mais diversos ramos. Por exemplo os cálculos de média móvel como Média Aritmética, Mediana, 1º Quartil, 3º Quartil, menor...</p>
<p>O post <a href="https://diegonogare.net/2015/08/plotando-graficos-de-caixas-com-linguagem-r/">Plotando gráficos de caixas com Linguagem R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Plotando gráficos de caixas</h1>
<h2>dados sumarizados de média, mediana e quartis com R</h2>
<p>Dentro da área de estudo da Estatística Descritiva tem um conjunto de valores sumarizados que são utilizados com bastante frequência por analistas dos mais diversos ramos. Por exemplo os cálculos de média móvel como Média Aritmética, Mediana, 1º Quartil, 3º Quartil, menor valor, maior valor, são alguns destes dados sumarizados que podem ser facilmente calculados e analisados nos nossos experimentos. Com estes dados em mãos é possível sair plotando gráficos de caixas com Linguagem R.</p>
<p>Quando estamos estudando R, aprendemos em primeiro lugar a usar o método SUMMARY para olhar estes dados estatísticos na nossa amostragem. Certamente quando este método é disparado contra um dataframe, o R calcula estes sumarizadores nas colunas numéricas. O R também faz algumas outras análises estatística (como a moda) em colunas categóricas. Vamos focar na coluna numérica e então ver estes valores tanto no resultado do método summary quanto em um gráfico de caixas.</p>
<p>Para este estudo, contudo, vamos usar a base de dados pública da Universidade da Califórnia. Você pode ver mais detalhes desta base de dados no link: <a href="http://archive.ics.uci.edu/ml/datasets/Contraceptive+Method+Choice" target="_blank" rel="noopener noreferrer"><span style="color: #0068cf; font-size: 11pt; background-color: white;">http://archive.ics.uci.edu/ml/datasets/Contraceptive+Method+Choice</span></a>. É um dataset que mostra, por exemplo, algumas informações sobre a idade da mulher e uso de métodos contraceptivos (e algumas outras variáveis). O objetivo não é entrar em detalhes sobre o resultado do estudo, mas sim, entender estes dados estatísticos e como fazer gráficos com eles em R.</p>
<h2>Carregar os dados no dataframe</h2>
<p>Primeira coisa é informar de qual URL vamos baixar os dados, e em seguida, armazenar isso num Dataframe.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">url &lt;- "http://archive.ics.uci.edu/ml/machine-learning-databases/cmc/cmc.data"

data &lt;- read.csv(url, sep=",")

summary(data)</pre>
<p>O método summary apresenta o seguinte resultado:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/08/082415_1947_Plotandogrf1-1.png?resize=567%2C184" alt="dadosSummary" width="567" height="184" /></p>
<p>Reparem que os dados são sumarizados através dos métodos:</p>
<ul>
<li>Min (Mínimo valor)</li>
<li>1st qu. (1º Quartil)</li>
<li>Median (Mediana)</li>
<li>Mean (Média)</li>
<li>3rd Qu. (3º Quartil)</li>
<li>Max (Máximo valor)</li>
</ul>
<p>Estes valores são calculados automaticamente com base em cada valor numérico da coluna. Enquanto isso o dataframe está com um nome genérico que o R colocou em cada coluna, ao observar não é tão simples saber o que cada coluna representa. Voltando ao site da UCI e lendo os dados relativos à pesquisa, temos as colunas na seguinte ordem:</p>
<ul>
<li>Wife&#8217;s age (numerical)</li>
<li>Wife&#8217;s education (categorical) 1=low, 2, 3, 4=high</li>
<li>Husband&#8217;s education (categorical) 1=low, 2, 3, 4=high</li>
<li>Number of children ever born (numerical)</li>
<li>Wife&#8217;s religion (binary) 0=Non-Islam, 1=Islam</li>
<li>Wife&#8217;s now working? (binary) 0=Yes, 1=No</li>
<li>Husband&#8217;s occupation (categorical) 1, 2, 3, 4</li>
<li>Standard-of-living index (categorical) 1=low, 2, 3, 4=high</li>
<li>Media exposure (binary) 0=Good, 1=Not good</li>
<li>Contraceptive method used (class attribute) 1=No-use, 2=Long-term, 3=Short-term</li>
</ul>
<p>Então vamos colocar estes nomes traduzidos no dataframe e facilitar nossa manipulação. Para isso, veja o código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">colunas &lt;- c("IdadeEsposa","EducacaoEsposa","EducacaoMarido","Filhos","ReligiaoEsposa","EsposaTrabalha","OcupacaoMarido","PadraoDeVida","ExposicaoMidia","MetodoContraceptivo")

colnames(data) &lt;- colunas

summary(data)</pre>
<p>Analisando novamente o método summary, mas agora temos cara coluna com um nome apropriado.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/08/082415_1947_Plotandogrf2-2.png?resize=638%2C318" alt="resultadoSummary" width="638" height="318" /></p>
<h2>Plotando gráficos de caixas com Linguagem R</h2>
<p>Para plotar estes dados em um gráfico, é possível usar o Gráfico de Caixa, que representa todos estes valores em uma única representação gráfica visual. Em R o método chamado é o Boxplot, e pode ser acompanhado no código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">boxplot(IdadeEsposa~MetodoContraceptivo, data=data,
  col=unique(data$MetodoContraceptivo)+1,
  ylab="Idade Mulher", xlab="Método Contraceptivo",
  main="Boxplot de uso de métodos contraceptivos" )</pre>
<p>O resultado desta plotagem é esse gráfico abaixo:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/08/082415_1947_Plotandogrf3-1.png?resize=567%2C332" alt="Boxplot1" width="567" height="332" /></p>
<p>O gráfico foi dividido no eixo X pelos métodos contraceptivos 1 (Não Usa), 2 (Uso de Longo Tempo) e 3 (Uso de Curto Tempo). Todos eles analisando a idade da mulher (no eixo Y) que o consumiu. Porém, quando olhamos o método summary ele fez isso com os dados de todo o dataframe e não separado por tipo de método contracpetivo, igual foi plotado no gráfico.</p>
<p>Para fazer esta separação, vamos criar outros três dataframes cada um baseado em um tipo de método contraceptivo, e então olhar os dados sumarizados destes novos dataframes. Para isso, veja o código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">data1 &lt;- subset(data, MetodoContraceptivo==1)
data2 &lt;- subset(data, MetodoContraceptivo==2)
data3 &lt;- subset(data, MetodoContraceptivo==3)

summary(data1$IdadeEsposa)

summary(data2$IdadeEsposa)

summary(data3$IdadeEsposa)</pre>
<p>&nbsp;</p>
<p>O resultado destes dataframes só para a coluna <em>IdadeEsposa</em> são os seguintes:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/08/082415_1947_Plotandogrf4-2.png?resize=373%2C138" alt="resultadoSummary" width="373" height="138" /></p>
<h2>Próximos passos</h2>
<p>Comparando estes valores do método Summary com o apresentado no gráfico de caixas, verão que os dados são os mesmos do <a href="https://delmercado.es/electronico/accesorios/el-mejor-proyector-de-video/">proyector de vídeo</a>! Caso queira saber um pouco <a href="https://pt.wikipedia.org/wiki/Estat%C3%ADstica_descritiva" target="_blank" rel="noopener noreferrer">mais sobre a Estatística Descritiva</a>. E também se quiser saber <a href="https://pt.wikipedia.org/wiki/Diagrama_de_caixa" target="_blank" rel="noopener noreferrer">mais sobre o Gráfico de Caixa</a>.</p>
<p>Por fim, deixo o desafio de você evoluir suas análises <a href="https://diegonogare.net/2015/09/trabalhar-com-cores-no-r/" target="_blank" rel="noopener noreferrer">trabalhando com cores no R</a>.</p>
<p>O post <a href="https://diegonogare.net/2015/08/plotando-graficos-de-caixas-com-linguagem-r/">Plotando gráficos de caixas com Linguagem R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1316</post-id>	</item>
		<item>
		<title>Aprendizado de Máquinas com Azure Machine Learning e R</title>
		<link>https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 06 Jul 2015 18:21:15 +0000</pubDate>
				<category><![CDATA[Negócios e Tecnologia]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[AzureML]]></category>
		<category><![CDATA[Classificação Binária]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[inteligencia artificial]]></category>
		<category><![CDATA[linguagem R]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1176</guid>

					<description><![CDATA[<p>Fala galera, na última sexta-feira (03/07) fiz uma apresentação de mais de 1h30 sobre Aprendizado de Máquinas com Azure Machine Learning e R. Nesta apresentação explico sobre o conceito de aprendizado supervisionado e não supervisionado, e também falo um pouco sobre a importancia de entender a matriz de confusão e seus elementos. Acompanhe abaixo o...</p>
<p>O post <a href="https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/">Aprendizado de Máquinas com Azure Machine Learning e R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera, na última sexta-feira (03/07) fiz uma apresentação de mais de 1h30 sobre Aprendizado de Máquinas com Azure Machine Learning e R. Nesta apresentação explico sobre o conceito de aprendizado supervisionado e não supervisionado, e também falo um pouco sobre a importancia de entender a matriz de confusão e seus elementos. Acompanhe abaixo o vídeo e os slides da apresentação.</p>
<p>Vídeo:</p>
<p><a href="https://www.youtube.com/watch?v=AHlrSwiCzUg"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/07/070615_1818_Aprendizado1-1.jpg?w=640" alt="" border="0" /></a></p>
<p>Slides:</p>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//pt.slideshare.net/slideshow/embed_code/key/3JFEeKPG4ZoE8B" width="525" height="435" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>Espero que esta pequena introdução ao Machine Learning abra a mente de todos para os benefícios do uso de inteligência artificial no desenvolvimento de software&#8230;</p>
<p>O post <a href="https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/">Aprendizado de Máquinas com Azure Machine Learning e R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1176</post-id>	</item>
	</channel>
</rss>
