Esse é um Curso de Ciência de Dados para que você consiga entender o que é Ciência de Dados e dar seus primeiros passos, seja para aprender mais ou até mudar de carreira!
Esse curso será dividido em 6 aulas para que você passe pelas etapas iniciais de Ciência de Dados e entenda de fato do que se trata, como vai trabalhar com isso, onde pode aplicar e muito mais!
Dá só uma olhada nas aulas que nós vamos ter nesse curso:
Aqui vamos dar início ao nosso curso de Ciência de Dados! É um curso básico, mas você vai aprender muito com esse curso, desde entender o que é isso, onde aplicar e até porque utilizar. Até a resolução de problemas utilizando esses conhecimentos!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Ciência de dados é o processo de exploração, manipulação e análise dos dados para a descoberta e previsão através da criação de hipóteses, testes e validação com o objetivo de responder perguntas do negócio e/ou fazer recomendações capazes de serem diferenciais de negócio.
Todo esse processo precisa ter um forte embasamento estatístico e matemático e ser diretamente ligado ao negócio, além de poder ser feito de forma escalável e replicável.
Isso tudo quer dizer que para você construir um projeto de ciência de dados você vai lidar com as informações do seu cliente, vai ter que tratar, manipular, testar… Todos os dados.
Com isso você vai poder criar um modelo que possa ser replicado para o cliente, assim ele vai poder não só utilizar os dados que você utilizou como teste, mas outros dados para obter resultados satisfatórios.
Um ponto bem importante em um projeto de ciência de dados é o que você quer responder, aonde quer chegar?
Além disso é muito importante alinhar expectativas com o seu cliente para que ambas as partes saibam o que será entregue e o que realmente é possível para o projeto.
Aqui você consegue visualizar as interações entre matemática, tecnologia e negócio. E você vai notar que a intersecção entre todos eles é onde vamos encontrar a ciência de dados.
Podemos verificar alguns problemas dentre essas interações. Um deles é a questão do tamanho da base de dados.
Você deve saber que a quantidade de informações vem aumento absurdamente, então é necessário ter as ferramentas certas para trabalhar.
Já imaginou trabalhar dentro do Excel com uma quantidade gigantesca de informações? O próprio programa não suporta.
É preciso entender os dados, verificar apenas uma métrica pode não ser suficiente para que você consiga indicar qual a melhor solução do problema.
Outro ponto bem importante é verificar se o que está fazendo faz sentido, se realmente é viável.
Então a ciência de dados vai juntar tudo isso para que você consiga entregar um projeto com validade estatística e de forma escalável, e claro, que faça sentido para o seu cliente de acordo com a sua necessidade!
Você pode pensar que tudo isso é algo muito distante e que não faz parte do seu dia a dia! Ai que você se engana, está muito mais perto do que você imagina.
Está no algoritmo do Instagram que faz uma entrega x de uma forma melhor, fazendo com que os influenciadores produzam mais desse conteúdo.
Temos as sugestões de filmes, séries, itens para compra, viagem… Tudo isso é Machine Learning (Aprendizado de Máquina).
Isso quer dizer que tem um algoritmo que estuda o que você assiste, o que consome, quais vídeos se identifica mais… Tudo isso faz com que você tenha uma melhor experiência, seja em uma loja, restaurante, aplicativo…
Então o aprendizado de máquina está sempre presente, até mesmo nos CAPTCHAS que você escreve as palavras, ou marca alguma informação.
Você está ajudando a máquina a entender o que é aquilo e fazer com que carros autônomos se tornem viáveis!
Agora vou te mostrar os principais passo que devemos seguir em um projeto de ciência de dados.
Nós já até temos uma publicação aqui no blog falando sobre a Introdução a Ciência de Dados, falando exatamente desses principais passos que você deve seguir para criar um projeto de ciência de dados.
Não esqueça de conferir esse post para que você entenda ainda mais o que é ciência de dados e como você pode construir um projeto!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Se você já tem conhecimento sobre o pandas essa aula vai ser mais uma revisão, caso contrário vem comigo que eu vou te mostrar alguns comandos e funcionalidades dessa biblioteca.
O pandas possui alta performance, é fácil de utilizar para trabalhar com dados, tem muita semelhança com o Excel, então se já sabe mexer no Excel fica mais fácil entender alguns processos.
O DataFrame é utilizado em várias outras bibliotecas de Ciência de Dados. O pandas vai desde a importação da base de dados, passando por toda a análise exploratória até a exibição de gráficos.
Caso tenha alguma dúvida de como baixar ou como utilizar algum recurso, basta acessar a documentação dessa biblioteca no link abaixo:
Vamos iniciar com a importação dessa biblioteca.
Aqui você pode utilizar apenas o import pandas, só que quando colocamos o “as pd” isso facilita na hora de escrever o seu código.
Pois sempre que for utilizar algum comando dessa biblioteca você vai escrever pandas.comando, e isso não é interessante, então esse “as pd” troca o nome pandas apenas por “pd”.
Então diminui a quantidade de informação que você escreve, então passa a escrever pd.comando, que fica muito mais rápido e fácil.
Depois de importar a base de dados já podemos começar a utilizá-la e o primeiro comando que vamos aprender é o pd.read que é para ler um arquivo, nesse caso estamos utilizando o pd.read_csv, pois a extensão do nosso arquivo é csv.
Além disso já estamos lendo essas informações e armazenando na variável base, com isso podemos utilizar essa base de dados para visualizar os dados e fazer os tratamentos.
Não adianta apenas ler o arquivo se não vamos salvar de alguma maneira para podermos utilizar essas informações.
Aqui temos dois comandos que nos permitem visualizar as 5 primeiras linhas (base.head) e visualizar as últimas 5 linhas (base.tail).
Esses comandos são interessantes para que você consiga visualizar como está a estrutura dos seus dados, como eles estão organizados, sem que tenha que trazer toda a base de dados.
Aqui nós podemos visualizar as informações da nossa base de dados, que é algo muito importante principalmente quando vamos fazer operações com esses dados.
Você pode visualizar qual é o tipo de informação que temos em cada uma das nossas colunas, o que facilita na hora de fazer as operações, pois já vamos saber se é possível ou não fazer essas operações.
É possível que você tenha números em uma coluna, mas o formato pode ser de texto, então você já sabe que se for fazer algum cálculo não vai funcionar, pois não conseguimos fazer cálculos com textos.
Outra verificação bem importante além de visualizar o tipo dos dados é verificar os valores vazios, pois isso pode ser um problema.
Muitas das vezes precisamos tratar esses valores vazios antes de começar com a análise de dados, então é importante verificar que tudo está certo com a base de dados antes de prosseguir.
Para verificar melhor a quantidade de valores vazios nós podemos utilizar o base.isnull().sum(), assim vamos fazer a soma de todos os valores vazios para que possamos tratar da melhor forma.
Agora nós vamos aos principais conceitos estatísticos que vão te ajudar na análise dos seus dados.
Aqui temos a média, contagem, mediana, desvio padrão e o resumo estatístico de uma base de dados que vai de 1 a 11.
Agora nós podemos utilizar esse resumo estatístico dentro da nossa base de dados que tínhamos inicialmente.
Podemos também trazer as informações de uma única coluna para trabalhar somente com esses dados.
Podemos fazer a contagem de cada um dos termos dentro de uma coluna utilizando o value_counts.
Além disso você pode selecionar mais de uma coluna de uma vez, para que possa separá-las e trabalhar apenas com o que precisa.
Então para análises mais detalhadas nós podemos fazer alguns filtros na nossa base de dados.
Aqui estamos filtrando a coluna Fare (que seria um valor de taxa), então no primeiro exemplo estamos filtrando apenas o valores maiores do que 500 e no segundo exemplo valores menores do que 5.
Além de fazer alguns filtros de forma separada, nós vamos poder utilizar E e OU para fazer isso, ou seja, podemos juntar filtros para trazer informações mais detalhadas.
No primeiro exemplo estamos filtrando as informações em que a coluna Parch é maior do que 1 e ao mesmo tempo (aplicando E com o símbolo de &) filtrando as informações onde a coluna SubSp é maior do que 1.
Isso quer dizer que estamos querendo que ambas as colunas só tragam as informações quando as duas condições forem satisfeitas.
Além disso podemos fazer um filtro com o OU que é representado pela barra (|), então nesse caso apenas uma das condições precisa ser satisfeita, ou o Parch ser maior do que 1, ou o SibSp ser maior do que 1.
Nesse primeiro exemplo fizemos o filtro normal e com o comando .loc(), já para o próximo exemplo podemos utilizar o .iloc() onde ele vai utilizar o índice para fazer esse filtro.
O índice é essa primeira coluna que fica em negrito para marcar a linha de cada registro.
Então podemos filtrar apenas por linhas específicas, ou linhas e colunas ao mesmo tempo.
Para finalizar essas análises nada melhor do que um gráfico para representar esses dados de uma forma mais visual não é mesmo?
Aqui temos um histograma e um gráfico de barras representando a coluna de Pclass, então você pode fazer uma análise melhor quando tem gráficos até para verificar se tem algum padrão, se está crescendo…
Aqui temos outro gráfico de barra, só que dessa vez com a soma dos valores, veja que fica muito mais fácil de entender essa visualização.
Nós temos apenas 3 informações nessa coluna (1, 2 e 3) e nesse gráfico estamos vendo a quantidade de cada um deles.
E por fim temos um gráfico mais complexo que é um gráfico de densidade, mas você tem diversos tipos de gráficos que pode criar, até porque pode utilizar outros gráficos para representar melhor seus dados.
Na documentação você vai conseguir visualizar diversos gráficos que consegue criar utilizando o pandas, então sempre que estiver com dúvidas ou dificuldades pode acessar a documentação para ver qual o código ou qual gráfico representa melhor seus dados.
https://pandas.pydata.org/docs/user_guide/visualization.html
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Nessa aula nós vamos abordar a análise exploratória de dados. Esse o principal passo de um projeto de ciência de dados e vem antes de utilizarmos modelos de aprendizado de máquinas!
Então antes de aplicar qualquer modelo nós vamos precisar entender os nossos dados e isso é fundamental para construir o nosso projeto de uma forma correta.
Antes de iniciar com os dados é importante que você saiba o que cada coluna representa, então temos um breve resumo com essas informações.
Agora vamos para importação e visualização da nossa base de dados.
Essa parte nós vimos na aula passada onde falamos sobre os conceitos fundamentais do pandas!
Depois vamos visualizar o resumo das nossas informações. E sim, essa parte é importante, pois nesses passos iniciais você já pode encontrar um padrão das suas informações, ou até mesmo dados que precisa corrigir.
Para finalizar essa primeira parte vamos fazer uma verificação estatística e verificar a quantidade de valores únicos em cada uma das colunas.
Feitas essas análises, visualizando todas as informações e entendo o que cada número quer dizer nós podemos começar uma análise gráfica.
Vamos começar com a biblioteca de gráficos do matplotlib.
A primeira análise é com um histograma na parte de tarifas, então aqui vamos conseguir visualizar a quantidade de cada uma das tarifas da passagem.
Aqui estamos verificando o mesmo gráfico, mas apenas com as tarifas menores do que 100 reais. Você já consegue perceber que temos uma quantidade bem grande de tarifas próximas ao valor de 10 reais.
São essas análises é que vão começar a dar forma ao seu projeto e você começa a perceber certos padrões na sua base de dados.
Esse é um gráfico de bloxplot que é muito interessante para análise de dados, se você ainda não sabe como ele funciona pode acessar nossa aula de Estatítisca para Data Science.
Mas aqui nós temos dois traços horizontais acima e abaixo da caixa que significam o valor máximo e mínimo.
Isso quer dizer que a maioria dos nossos dados deve estar entre esses dois intervalos, mas se você notar temos diversos círculos.
Esses círculos são outliers, ou seja, são valores que estão fora do padrão. E você pode notar isso com o nosso gráfico de histograma que acabamos de ver.
A maior parte do valor das tarifas está entre 0 e 40 reais, só que temos alguns valores que ultrapassam 80 reais, o que já não seria algo comum comparado ao que temos.
Novamente você consegue notar que temos valores de tarifas que estão bem fora do nosso padrão, então já são informações a serem analisadas.
Dependendo do visual, outras bibliotecas já podem ter opções mais prontas para usarmos nas nossas análises, que é o caso do pairplot no Seaborn.
Como cientistas de dados, devemos escolher a ferramenta que melhor resolve o nosso problema, então vamos ao uso do pairplot!
https://seaborn.pydata.org/generated/seaborn.pairplot.html
Dá só uma olhada na quantidade de gráficos que conseguimos obter. E aqui temos a relação entre as informações que temos nas colunas.
Então podemos encontrar padrões e verificar se uma coluna está diretamente relacionada a outra!
Para facilitar um pouco essa análise podemos criar uma matriz de correlação entre variáveis.
Pode ser que com esses números você tenha um pouco de dificuldade de visualizar essas correlações, até porque tem que ficar olhando os números.
Então para facilitar nós podemos utilizar o heatmap, que é um mapa de calor que facilita a visualização dessa correlação.
Aqui fica muito mais fácil saber quem tem uma correlação muito forte positiva e quem tem uma correlação muito forte negativa.
A correlação positiva significa que quando uma variável está crescendo a outra está crescendo na mesma proporção.
A correlação negativa é o oposto, então a medida em que uma variável cresce a outra decresce na mesma proporção.
Aqui você pode sempre ir explorando e verificando essas relações dentro da sua base de dados!
Quando você tem muitas bases de dados acaba que esse processo fica demorado e trabalhoso, mas nós temos aqui no blog uma aula falando sobre o Pandas Profiling.
Ele vai permitir com que você faça uma análise de dados rápida, pois já te dá um resumo de toda a sua base de dados!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Nessa aula nós vamos falar sobre aprendizado de máquina para classificação, então vamos ver alguns modelos de classificação para prever o valor de uma categoria.
Nesse exemplo para o nosso modelo de aprendizado de máquina nós vamos utilizar novamente a nossa base do titanic.
Para essa aula nós vamos utilizar a aprendizagem supervisionada, que é quando nós temos tanto os valores de entrada quanto os valores de saída (valor target).
Essa primeira parte de explicar o que são cada uma das informações e o que temos em cada uma das colunas nós já vimos na aula anterior, então essa parte você pode dar uma olhada lá!
Aqui estamos fazendo uma análise geral das informações que já temos e vamos começar com a retirada da coluna Cabin, que tem muitos valores vazios.
Como nós vamos simplificar esse tratamento nesse exemplo nós vamos eliminar também todas as colunas com o tipo “object”, pois vamos deixar apenas as colunas com o tipo inteiro e ponto flutuante.
Com isso nossa base já está quase pronta para utilizarmos. O próximo passo é onde vamos começar a utilizar alguns dos modelos de classificação.
Mas para isso vamos precisar da biblioteca scikit-learn, que é uma biblioteca para análise preditiva de dados. Você pode acessar o site dela no link abaixo:
https://scikit-learn.org/stable/
Antes de fazer qualquer uso de modelos de dados nós vamos definir o x e y para o treino, onde o x vai ser a nossa base ser a coluna “Survived” que é o que queremos descobrir.
E o y será a coluna survived para que possamos fazer uma comparação com os modelos de classificação.
Para esse exemplo nós vamos utilizar 3 modelos de classificação, o KNN, o modelo árvore de decisão e a regressão logística.
OBS: Não se preocupe, pois todos os links e códigos estão disponíveis para download, então se precisar acessar a documentação de cada biblioteca no arquivo estão todos os links e está tudo separado para que você consiga acompanhar!
Por fim vamos utilizar a regressão logística. Pode ficar calmo que ainda vamos fazer as comparações para que esses valores façam sentido.
Feito isso nós vamos fazer uma avaliação dos modelos de classificação, então agora nós vamos fazer o mesmo tratamento que fizemos anteriormente, só que agora utilizando a base de teste.
Aqui fizemos o mesmo tratamento que foi feito anteriormente, até porque precisamos do mesmo tratamento para que os resultados sejam compatíveis.
Feito isso fizemos a análise com os 3 modelos de classificação. Agora nós vamos utilizar a matriz de confusão para fazer uma análise desses dados para comparar o real com o modelo.
Aqui já temos uma visualização de que o KNN prevê melhor as pessoas que vão sobreviver, enquanto a regressão logística prevê melhor as pessoas que não vão sobreviver.
Além de avaliar essas informações pela matriz de confusão nós podemos utilizar a acurácia, a precisão o recall para definir qual modelo é melhor para esse caso.
Na acurácia nós vamos verificar quantos valores nós acertamos independente se acertamos para o positivo ou negativo. Isso quer dizer que é um cálculo em relação ao total.
Aqui você já nota que os dois últimos modelos acertaram uma mesma quantidade, enquanto o primeiro modelo já teve uma quantidade de acertos menor.
Agora na precisão nós vamos verificar dos valores positivos (falso-positivo e verdadeiro-positivo) quantos nós acertamos.
Aqui o modelo de árvore de decisão teve uma maior precisão, então com esses parâmetros até o momento ele seria o melhor modelo dentre os que testamos.
O recall vai fazer uma relação entre o verdadeiro (positivo) e o falso (negativo). Um bom exemplo é quando estamos tratando de fraude, então queremos encontrar a maior quantidade de fraudes.
E por mais que a precisão seja muito boa, se o recall for muito baixo nós não vamos conseguir encontrar essas fraudes.
Então no nosso modelo essas seriam pessoas que sobreviveram, mas o nosso modelo classificou que essas pessoas não sobreviveram.
OBS: Então você já nota que não basta apenas ter todos os valores mais altos que já um ótimo modelo, isso depende muito da análise que nós estamos fazendo. Isso que dizer que para cada caso você vai ter que analisar quais são as melhores métricas a serem analisadas.
Nesse caso se quiséssemos identificar as pessoas que de fato sobreviveram e o modelo definiu como não sobrevivente poderíamos utilizar o recall, que para o KNN tem o valor mais alto.
Então esse modelo já conseguiria fazer essa verificação com maior facilidade. Assim você consegue começar a entender que não existe um modelo certo ou um modelo perfeito, isso tudo depende da sua análise e do que você precisa.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Sabia que é possível melhorar a acurácia de um modelo fazendo o tratamento de dados?
Na última aula nós vimos como avaliar os modelos de classificação, e agora vamos ver como fazer para melhorar os parâmetros com o tratamento de dados!
Antes de iniciar vou colocar aqui o que fizemos na última aula tanto para a nossa base de treino quanto para a base de teste.
Aqui nós já vamos começar o tratamento de dados. Vamos iniciar retirando colunas com alta cardinalidade e eliminando também a coluna Cabin pela alta cardinalidade e quantidade de valores vazios.
Vamos tirar essas colunas, pois com uma alta cardinalidade o nosso modelo vai estar mais decorando do que de fato aprendendo.
Para o próximo passo você deve lembrar que temos algumas informações onde a idade é vazia, então também precisamos fazer o tratamento.
Antes de excluir as linhas vazias da nossa base de dados vamos calcular a média das idades e atribuir esse valor onde temos as informações de idades vazias.
Isso é interessante, pois dessa forma vamos ter mais informações para trabalhar. Nesse caso a média é uma boa métrica para inserir esses dados, mas é possível quando você tenha dados muito altos pode ser que a mediana seja mais adequada.
Por isso é bom que você entenda bem os conceitos estatísticos para fazer essas substituições de forma que consiga trabalhar bem com esses dados.
Por fim nós vamos apagar as linhas com valores vazios e vamos eliminar as informações do tipo object, como já fizemos em aulas anteriores.
Vamos agora verificar as informações que nós temos e podemos fazer novamente a avaliação do modelo.
Lembrando que todos os códigos para avaliação estão no final do código, então se clicar no link Avaliando o modelo você já vai direto para a parte final.
Você pode até anotar essas informações para ir verificando se o tratamento de dados está ou não melhorando suas métricas.
Dá só uma olhada como esse tratamento de dados melhorou algumas dessas métricas, é claro que não vamos conseguir melhorar tudo, mas podemos continuar fazendo nossas análises e utilizar o melhor modelo de acordo com a necessidade.
Como nos modelos nós só conseguimos analisar informações numéricas nós vamos inserir a informação de gênero na nossa base de dados, só que para isso vamos ter que transformar isso em números.
Então vamos utilizar a estrutura if para verificar se é “male” (masculino) e se for vamos atribuir 1, caso contrário vamos atribuir 0.
Assim conseguimos colocar na nossa base essas informações de gênero para analisarmos.
Feitos isso podemos fazer os mesmos tratamentos da etapa 1 e depois podemos avaliar os modelos com esses dados dessa maneira.
Para a terceira etapa nós vamos inserir a informação do porto de embarque dentro da base de dados, e aqui como não exista uma relação entre os valores vamos utilizar o One Hot Encoding.
OBS: Lembrando que todos os links estão dentro do arquivo, então você pode acessar as documentações caso tenha alguma dúvida!
Com isso vamos gerar 3 colunas, uma para cada porto, onde cada porto vai ser representado por uma dessas colunas, então só vamos ter o valor 1 em uma dessas colunas, nunca mais de um ao mesmo tempo.
Depois podemos novamente avaliar os modelos com esses dados.
Para a última etapa nós vamos retirar algumas colunas da base para fazer nossas análises e verificar os resultados.
Claro que você vai analisar todas as etapas, pode até ir registrando os resultados de acurácia, precisão e recall para cada um dos modelos de classificação.
Com isso nós temos que a etapa 4 levou a uma acurácia de 95%, uma precisão de 93% e um recall de 94%. Então se o cliente queria algo acima de 90% nós já podemos parar por aqui.
Você vai notar que cada etapa vai ter um resultado diferente, então você pode ir fazendo o seu tratamento até chegar nos valores que foram estipulados.
Veja que já tivemos uma precisão de 94% com outro tratamento de dados, por isso que vai depender do que você precisa para o projeto para não ter que ficar fazendo esses tratamentos infinitamente.
Se a precisão de 90% já é suficiente poderíamos já ter parado onde temos 94%, mas é importante que você entenda que pode ir fazendo diferentes tipos de tratamentos para obter diferentes resultados, até chegar no seu objetivo!
Aqui você nota que o nosso modelo inicial era de 58% de acurácia e nós conseguimos chegar em um modelo com 95% de acurácia.
Com isso você nota o quão importante é o tratamento de dados para melhorar o nosso modelo de classificação.
Hoje no Curso de Ciência de Dados Aula6 vamos te mostrar como fazer o deploy do modelo para que outras pessoas possam utilizá-lo!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Agora que já terminamos de construir o nosso modelo de aprendizado de máquina está na hora de fazer o deploy de um projeto, ou seja, vamos disponibilizar esse projeto para que outras pessoas possam utilizar sem ter que rodar o código.
Quer aprender como fazer o deploy de um modelo para finalizar o nosso curso básico de ciência de dados? Então vem comigo!
Nós trabalhamos com modelos de classificação, então estávamos trabalhando com valores nominais. Fraude ou não fraude, é banana ou maçã, é 0 ou 1…
Agora nós vamos trabalhar com modelos de regressão, então ao invés de valores nominais, vamos ter valores contínuos.
Vamos fazer uma previsão em um intervalo de valores, para poder prever o valor de uma casa por exemplo.
É importante que você saiba dessa diferença para que possa aplicar os modelos corretos nos seus projetos!
Essa parte inicial já fizemos algo parecido nas últimas aulas, então fica mais fácil entender, agora é que nós vamos de fato usar o modelo de regressão linear.
OBS: Novamente aqui vamos seguir o passo a passo da documentação, então basta ler com calma e ir seguindo os passos que vai funcionar corretamente.
Aqui vamos importar a regressão linear, depois vamos criar o algoritmo de regressão fazendo o fit. Em seguida vamos avaliar o modelo, aqui vale ressaltar que vamos utilizar o modelo de teste e não o modelo de treino!
Esse score (do reg.score) é o quanto a nossa reta de regressão está conseguindo se ajustar aos dados. Esse score vai de 0 a 1, só que quando temos esse valor igual a 0, quer dizer que não faz diferença usar o modelo que acabamos de criar ou a média.
Já quando temos esse valor igual a 1 quer dizer que o nosso modelo se ajusta perfeitamente aos dados.
Além disso podemos verificar o intercept e o coef. O intercept representa o coeficiente linear da reta, enquanto o coef representa o coeficiente angular da reta.
Agora nós vamos a Persistência do Modelo, mas o que é isso? É garantir que todas as vezes que quisermos usar esse modelo ele já esteja treinado.
Nesse exemplo esse treinamento é feito de forma rápida até por conta da nossa base de dados, mas é possível que isso demore mais, que você faça algo um pouco mais complexo e isso tudo aumenta esse tempo.
Então acaba ficando inviável fazer esse treinamento sempre que formos utilizar o modelo, principalmente se ele demora mais. Além de tornar a previsão mais rápida, até porque se o modelo está pronto basta utilizá-lo!
A ideia aqui é basicamente pegar o nosso modelo e jogar ele para um arquivo, e vamos fazer isso com o dump da biblioteca joblib.
Agora como podemos abrir ou utilizar esse arquivo? Podemos fazer isso dentro do próprio Python utilizando o joblib.
Aqui você já pode notar que os valores do intercept e coef são os mesmos, ou seja, o modelo é exatamente o mesmo modelo que salvamos, então você vai poder utilizá-lo normalmente.
É possível que você não queira ficar dependente do Python, então nós podemos gerar um executável desse arquivo.
Para a criação do executável nós vamos utilizar o PyCharm, mas pode utilizar outro editor de sua preferência.
Então você pode criar um novo projeto, pode até fazer isso em um ambiente virtual para facilitar, e não se esqueça de instalar todas as bibliotecas necessárias.
Feito isso vamos criar um arquivo e colocar apenas os códigos que vamos precisar!
Aqui você pode alterar o caminho do arquivo para o caminho completo caso não esteja na mesma pasta do arquivo.
E lembre-se de instalar as bibliotecas que vai precisar, veja que tanto o pandas quando o joblib estão sublinhados, pois não temos as bibliotecas instaladas. Além disso precisamos do sklearn e openpyxl.
Aqui já temos tudo certo e ao executar o arquivo já vamos ter o arquivo em Excel com todas as informações da forma correta que estávamos esperando.
Para poder criar o executável vamos precisar instalar o pyinstaller, então no terminal vamos escrever: pip install pyinstaller.
Agora para finalizar vamos escrever o seguinte código no terminal: pyinstaller –onefile ModeloML.py
Onde o que fica depois do onefile (único arquivo) é o nome do arquivo que vamos utilizar. Ao finalizar você vai ter uma pasta chamada Dist com o arquivo executável!
Pronto! Agora ao executar o arquivo ele vai pegar o casas_teste.csv e vai gerar o arquivo em Excel sem que a pessoa precise executar isso dentro do Python.
Então essa é uma das formas de fazer o deploy do seu modelo para torná-lo disponível para outras pessoas!
Esse foi um Curso Básico de Ciência de Dados para te mostrar o que é Ciência de Dados e como você pode dar seus primeiros passos com esse novo conhecimento.
Outro ponto muito importante, que você deve ter notado, é em relação ao tratamento de dados. Essa é uma parte fundamental antes de iniciar qualquer projeto, pois informações erradas, vazias ou até desnecessárias podem trazer resultados indesejados.
Vimos também sobre o aprendizado de máquinas para classificação, que é muito útil em diversos projetos, claro, levando em conta o tratamento de dados!
Por mais que seja um curso básico, acho que você conseguiu entender onde pode utilizar Ciência de Dados e deve ter notado, que pode até fazer a sua mudança de carreira para a área de dados!
Mesmo que você não tenha formação nenhuma!
Para acessar outras publicações de Ciência de Dados, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.