Primeiras aulas do curso Machine Learning: Aprendizado supervisionado

Machine Learning: Aprendizado supervisionado

Regressão linear - Introdução ao curso

Fala, pessoal. Tudo bom? Meu nome é André Barbosa e eu vou acompanhar vocês nesse curso de aprendizado supervisionado de Machine Learning, aprendizado de máquina para aprendizado supervisionado.

A ideia desse curso é darmos uma explorada no que é aprendizado supervisionado, que tipo de problemas que ele resolve. Problemas de regressão. Nós vamos entender o que é regressão no decorrer do curso. O que é classificar alguma coisa. E quais são os diferentes algoritmos que existem nas mais simples formas.

Nós não vamos entrar nas complexidades muito grandes, nós vamos ver algoritmos simples. Entender a ideia por trás deles, e como eles resolvem problemas de aprendizado de máquina. No caso, casos reais até mesmo. No nosso caso, nós vamos entender como eu posso usar o aprendizado de máquina para prever se um usuário vai gostar ou não de determinado filme.

Ou, se eu for distribuir um filme no Brasil, qual é a bilheteria esperada para esse filme, com base em informações anteriores que eu tenho. E como é que funciona esse ramo de aprendizado de máquina em geral. Espero que vocês gostem bastante do curso e vamos lá.

Regressão linear - Entendendo os seus dados

Você pode baixar o arquivo CSV regressao_linear_alura.csv.

O desafio que nosso chefe nos passou foi: o próximo filme que nós vamos receber para fazer a distribuição é o Zootopia. E qual deve ser a bilheteria dele? Você consegue prever mais ou menos quantas pessoas vão assistir ao filme?

Se nós entrarmos aqui no Google, vamos entrar aqui no Google e ver um pouquinho melhor sobre ele. Vamos um pesquisar aqui: Zootopia, que é um filme. Vamos ver se conseguimos algumas informações dele, entrando aqui no IMDB dele. O que nós conseguimos ver?

É uma animação, aventura e comédia. Tem uma hora e pouco de duração, quase duas horas. É um filme da Disney. Isso é interessante, uma informação interessante.

Venceu um Oscar, ganhou vários prêmios. Essas animações da Disney, geralmente tendem a fazer bastante sucesso. Nós temos o indicativo que a chance desse filme fazer sucesso e ter uma qualidade boa, é alta. Mas se nós chegarmos para o nosso chefe e falarmos: vai vir muita gente.

Ele vai falar: mas isso é meio óbvio. É um filme da Disney. Essas coisas geralmente fazem sucesso. Eu preciso de um dado mais concreto. E você pensa: poxa, eu preciso de um pouco mais informação. Explorar um pouco melhor os nossos dados.

Se eu entrar aqui na minha pasta, eu vou ver abria a minha pasta. Estou andando aqui pelos diretórios. Aqui, meu curso. Essas aqui, no caso, essas são as primeiras informações que nós temos. Vou dar um zoom, aproximar duzentos por cento. Aproximei os dados.

Qual é informação que nós temos? A única informação que nós temos para prever a bilheteria é investimento. Como que esses conjuntos de dados ou datasets estão distribuídos? Vamos dar uma explorada neles.

A primeira linha é do filme Toy Story. Nós podemos ver que o investimento de foi de mais ou menos onze milhões de reais. No caso, dólares. Porque é um filme do exterior e trouxe pra cá. Teve uma bilheteria aproximada de 5.7 milhões de pessoas.

Jumanji também foi outro filme famoso, teve mais ou menos 15 milhões e a bilheteria foi 5.8. Grumpier foi um numero maior. Teve 30 milhões e 9.5. Aqui, 5 milhões. Seis.

Conforme nós podemos ver dos filmes, nós podemos ver: poxa, tem uma informação que são de investimentos que ele teve e a bateria associada. Será que esses dados tem alguma ligação? Será que eu consigo correlacionar esses dados?

Primeiro, nós precisamos explorar esses dados de um ponto de vista um pouco melhor. Qual a ideia que nós temos? E se nós pegássemos e considerássemos um gráfico onde um eixo fosse o investimento e o outro eixo, ou seja, o eixo Y, por exemplo, é a bilheteria. Então, eixo X é o investimento e o eixo Y é a bilheteria.

Eu vou ter dois valores e um ponto um ponto X, investimento. Bilheteria, Y. E eu consigo fazer um gráfico de pontos. Se eu pegar esses gráficos de pontos e dispersar, eu vou tem um gráfico de dispersão. Vamos dar uma olhada em como eu faria isso.

Vou entrar aqui no Atom, que é um editor de texto, e eu quero escrever o script. Vou dentro do meu curso eu vou salvar aqui o script. Que nome nós podemos dar para ele? Exploração, ponto, py. Nós queremos que seja aqui dentro. E aí nós vamos salvar em um arquivo python.

Num primeiro momento, nós queremos usar a biblioteca de análise de dados do python. Quer dizer, não é do python, é a biblioteca que nós conseguimos fazer a análise de dados, que é o pandas. Import pandas as pd. Certo. Depois, durante os exercícios, eu vou fazer um vídeo separado como que nós instalamos todos esses módulos essenciais.

Além disso, eu também vou usar a biblioteca para nós podermos plotar os gráficos, nós a conseguimos por meio do matplotlib.pyplot. Aqui eu vou usar um alias para me referir a ela. Além disso, o que nós precisamos também? Nós precisamos agora escrever esses dados. Num primeiro momento, o que eu quero? Eu quero ler esse csv que eu tenho desses dados. Esse csv que eu acabei de abrir.

Como que eu faço isso? O pandas tem um método que é justamente isso, ler csv, read csv. Eu tenho o meu movies, que são os filmes que eu tenho. Eu botei aqui um “pd.read_csv()”. Eu sei que está dentro do meu datasets, certo? Eu posso justamente aqui escrever “datasets/” o nome do arquivo que eu quero, que é “regrassao_linear_alura.csv”. Se formos ver aqui, é exatamente esse nome.

Aqui já apareceu um pouco de informação. Ao invés de eu sair escrevendo o script, vamos entender o que são esses dados e o que está acontecendo aqui até então?

Já vou salvar esse dado, que nós vamos usá-lo. Vamos abrir aqui o terminal. Expandir aqui. Cd, documents. Ls. Cd, André. Ls. Curso, que é o meu curso. Voltei para cá. Vamos entrar aqui no python. Vamos importar as bibliotecas que eu falei. Estamos aqui, felizes e contentes, importando as duas bibliotecas. Importamos as duas bibliotecas.

Eu vou até reescrever para ficar um pouco melhor “pd.read_csv(“datasets/regrassao_linear_alura.csv”)”. O que é isso aqui, pessoal? É basicamente o mesmo csv que nós acabamos de ler aqui, só que numa estrutura dentro do python, que é um data frame.

O data frame é justamente uma estrutura que o pandas tem, onde nós conseguimos fazer essa análise de dados um pouco mais fácil. Se eu limpar aqui, se eu digitar aqui o type movies é um data frame, certo? Qual é a vantagem do data frame? Nós conseguimos manipula-lo muito mais facilmente. Se eu quiser pegar só os cinco primeiros dados, eu consigo pegar só os cinco primeiros dados.

Aqui ficou meio grande, mas vou pegar, por exemplo um pouco melhor, só o primeiro dado “movies.head(1)”. Eu tenho aqui o Toy Story, o investimento que ele teve, as bilheterias e o número de pessoas. E se eu quiser acessar só os meus dados sobre investimentos. Eu não estou interessado no título, eu não estou interessado na bilheteria. Só quero olhar os investimentos.

É só fazer assim: investimento em milhões. Ops, não deu certo por conta desse acento aqui. Vamos limpar aqui. Investimento em milhões. Olha só que legal. Se eu pegar o tamanho, eu quero ver o número de linhas que tem, eu só preciso fazer “len(movies)”. No caso, é o número de linhas que ele tem. Se nós olharmos aqui, coincide totalmente. São nove mil, cento e vinte e cinco filmes. Divididos em quatro colunas, que é justamente o ID do filme, o nome, o investimento e os bilhões de pessoas.

O que nós queremos fazer agora? Nós queremos plotar isso nesse gráfico de pontos que eu tinha falado. Lembra que eu falei que nós queremos um eixo X e nós queremos um eixo Y. O nosso eixo X, nesse gráfico, nós queremos que seja o investimento. É só fazer assim. Eu quero que o X, uma variável X receba o investimento em milhões. E o eixo Y recebe a bilheteria. Bilheteria, pessoas.

Vou printar aqui. X, investimento em milhões, exatamente como nós tínhamos visto. Se eu chegar da mesma forma, eu vou ter um Y. Mesma coisa. O que nós precisamos fazer para plotar esse gráfico de pontos, esse gráfico de dispersão, que do inglês é scatter plot. Quando nós fazemos essa tradução, nós temos um plt scatter. Por que plt? O plt é da biblioteca. É o alias que nós temos. É um método do matplotlib.

Se nós chegarmos aqui e fizermos “plt.scatter(x,y)”. Gerou o nosso gráfico. Eu vou até anotar aqui “plt.scatter(x,y)”. Como é que nós vemos esse gráfico? Nós vemos com o “plt.show()”. Justamente, o show de mostrar. Nós vamos aqui. Voltou pra cá. Printou. Apareceu.

Está legal? Nós tínhamos nove mil, cento e vinte e cinco pontos, certo? E aí ficou quase uma rajada. Nós conseguimos enxergar que os pontos estão andando em uma direção, mas isso está muito poluído. Porque a ideia é que isso é um ponto, isso aqui também é um ponto. Mas está muito sujo. Nós temos uma noção, mas nós queremos ver isso de um ponto de vista um pouco mais claro.

Como nós conseguimos ver isso? Vamos pegar uma amostra desses dados. Uma amostra aleatória, porque ela pode se comportar mais ou menos com base em nosso conjunto total. E nós conseguimos interpretar essa amostra. Eu vou fechar aqui e voltei pra cá. Qual a ideia, então? Nós queremos pegar uma amostragem desses dados. Amostra, do inglês, sample. Vamos mandar aqui um “plt.sample()”. Ele recebe o número de dados igual a duzentos. Vamos pegar duzentos dados da nossa amostra.

E eu vou fazer isso algumas vezes para mostrar que esses dados são totalmente aleatórios. E nós repetimos o processo. Vou aqui, estou copiando o meu sample e vamos lá. Eu limpei aqui, sample. Ele não tem o atributo sample. Na verdade, também não é sample, porque não é do plt, ele é nosso data set. Nós queremos o sample do nosso data set. Na verdade, é um método do nosso data frame, que é o pandas. É o movies, que foi o que nos criamos lá e é ponto, sample mesmo.

Aqui nós temos o sample. Criou duzentos dados, nós podemos ver. Uma forma mais simples de vermos é se pegarmos simplesmente o primeiro cara. E veremos que não é o Toy Story. Life in a Day. Se eu repetir esse processo, eu tenho aqui sample e “sample.head(1)”. Velozes e Furiosos seis. Esse é um caso mais recente. Se eu fizer mais uma vez, Assassins. Três vezes que eu fiz, três dados totalmente diferentes. Ele aleatoriza. Ele pega uns duzentos dados aleatórios para nós podemos fazer isso.

Qual é o processo agora? É repetirmos isso. É fazermos o nosso X e o nosso Y, e repetir. Vou voltar para o meu Atom, na plt novamente. No método do nosso data frame, que no caso é o Movies. E agora, vou reescrever o meu X e o meu Y. Eu vou ter o meu sample. Isso daqui retorna um data frame também. Como pudemos ver, podemos acessar. Para acessarmos as suas colunas, é da mesma forma como acessamos as colunas do primeiro conjunto de dados. É só digitar investimento em milhões e um Y que é sample. Bilheteria. Pessoas.

Se eu chegar aqui e copiar esses dados, e novamente fizer um “plt.scatter()”, ele gerou outro dado “plt.show()”. Olha só que legal. Pronto. Agora está muito mais visível para nós. Nós conseguimos visualizar exatamente aquilo que visualizamos antes, só que de uma forma um pouco mais clara, porque aqui cada ponto é literalmente um filme.

E o que nós conseguimos ver? Que os dados fluem nessa direção, ou seja, eles têm uma associação positiva. Por que associação positiva? Porque quanto mais eu aumento o meu investimento, mais a bilheteria e o número de pessoas tende a aumentar. Ou seja, eu tenho uma associação linear, uma correlação positiva entre esses dados, porque esses dados quase formam uma linha.

O que eu quero dizer com correlação? É que esses dados tem uma relação. Não é que um causa o outro. Nós não podemos chegar para o nosso chefe e falar: se eu aumentar o número de investimento, quanto mais eu aumentar meu investimento, mais pessoas vão ver o filme por uma relação de casualidade. Porque uma coisa não tem necessariamente a ver com a outra.

Esses dados, às vezes, podem estar ligados. E o que nós queremos entender é justamente investigar se de fato essa correlação impacta. Será que nós conseguimos extrair alguma informação útil desses dados? Isso é exatamente o que vamos ver no próximo vídeo.

Regressão linear - A regressão linear

Seguem também os dados do dataset Zootopia:

movieId,Titulo,Investimento,Bilheteria
999999,Zootopia,27.74456356,?????

Oi, pessoal. Tudo bom? Vamos dar uma revisada naquilo que acabamos de fazer. Nós importamos a biblioteca de análise de dados, o pandas. Nós importamos o matplotlib para poder desenhar os gráficos. Nós fizemos a leitura do csv. Separamos os dados nos dados de investimento, uma coluna do nosso data frame e nos dados de bilheteria. E depois desenhamos esse gráfico. Depois nós resolvemos repetir o processo, pegando uma amostra e novamente fazendo as mesmas coisas. Printando o gráfico.

Para nós não esquecermos daquilo que fizemos, vou até entrar aqui de novo. Entrei aqui no terminal, abri o terminal. Eu estou indo lá para minha pasta. André, machine learning, curso. Entrei aqui na minha pasta. Eu posso entrar aqui no python e ficar fazendo as interações aqui dentro do python. Ou eu posso salvar tudo isso daqui num único arquivo e executar ele tudo de uma vez.

O problema de eu fazer isso é porque eu teria que executar todo o processo e depois eu só me preocupo com o resultado final. Mas eu poderia muito bem chegar aqui hoje e falar: “python exploração.py”. Por exemplo, aqui ele está executando todos os negócios e ele gerou o gráfico da primeira vez de todos os dados, executou aqui de novo e executou esses dados para nós da amostra.

Vou voltar aqui, mas na verdade não é isso que nós queremos. Nós queremos fazer um processo um pouco mais interativo nesse curso. Nós importamos aqui de novo os dados. Volto para o terminal e colo as bibliotecas. Ok. E nós vamos fazer novamente a leitura dos arquivos.

Vamos estar interessados, agora, de voltar de onde partimos. Já pegando as amostras e olhando para o gráfico. Estou copiando os gráficos no command + C ou copy. E aqui colando os dados “plt.show()”.

O que nós podemos ver a partir desse gráfico? Relembrando aqui que vimos no último vídeo. Conforme eu aumento o meu investimento, o número de pessoas também tende a aumentar. Esses dados tem uma associação positiva, uma correlação positiva. E aqui nós conseguimos ver que eles têm uma associação linear, eles formam quase uma linha. Estão meio espalhados, mas formam quase uma linha.

E o que nós podemos pensar? Quanto mais eu aumento o meu investimento, mais número de pessoas tende a ir. Então, se eu investir dez reais e vão cinco pessoas. Se eu investir vinte reais, agora vão dez.

E se eu aumentar e investir mil reais? Mil reais, vão umas quinhentas pessoas. Agora, um milhão de reais. Vão umas trezentas mil pessoas. E o que podemos falar para o nosso chefe? Quando mais você investir, mais gente você vai ter. Ele vai falar: legal, mas eu preciso de um dado um pouquinho mais preciso. Uma métrica um pouco mais bacana, um número mais preciso para eu ter uma noção se vale a pena ou não investir.

E nós pensamos: como eu posso fazer isso? Eu vou ter um ponto que é formado por uma combinação de dois elementos. No caso, é um caso mais independente, que nós já temos todas as informações, que é a nossa variável de investimento. E uma resposta para esse cara, que é a nossa variável independente, que é a bilheteria e o número de pessoas que vão.

No caso, vamos supor, de Zootopia. Nós temos a informação do dado que queremos prever. Olhei aqui no curso, estou aqui no meu data set. Eu tenho “zootopia_data”. O que tem aqui? Esses dados estão aqui. O que nós podemos ver? Vou até abrir ele aqui no Atom direto, que ele talvez fique um pouco mais bonito para nós. Eu abri ele aqui, eu tenho o meu data set, zootopia, data. Olha só.

Aqui é o movie ID, o título. O investimento dele. No caso de Zootopia, é aproximadamente trinta milhões, mas a bilheteria nós não sabemos. Como é que conseguimos prever o que nós queremos prever? Nós temos um ponto X do investimento e nós vamos ter uma bilheteria num ponto Y associado.

Qual a primeira ideia que vem? Vamos olhar para esse gráfico, ele forma uma linha. Se nós criarmos uma reta. Para essa reta, teremos um X e um Y associados. A variável resposta que nós queremos, que é a bilheteria e o número de pessoas que vão.

Para ilustrar esse processo, eu vou abrir aqui o Geo Gebra. O que é o Geo Gebra? O Geo Gebra é um software de geometria, para conseguirmos enxergar um pouco melhor esses dados. Vamos entrar no Geo Gebra para explicar um pouco melhor aquilo que eu estou querendo falar.

Eu entrei aqui, inicializei o Geo Gebra. Qual o ponto que nós queremos? Nós temos um filme que está aqui. Lembra daquele gráfico de ponto que acabamos de ver? Lembra desse gráfico aqui? Nós temos vários pontos aqui, e esses pontos estão espalhados. E qual é a ideia? É nós encontrarmos, talvez, uma reta. Se nós lembrarmos do ensino médio, nós queremos encontrar a variável resposta, o nosso Y, que é esse ponto aqui.

Ela é formada por essa equação aqui “mx + b”. Nós queremos encontrar o B e o M para que esse X esteja correspondente àquela reta. Vamos colocar os nomes. Eu tenho aqui um 2x mais sete, não menos sete. Isso aqui é uma reta. Então, vou ter um ponto X e um Y associado. Isso aqui seria uma reta de previsão. Vou ter um X, uma previsão.

Se nós pegarmos, no nosso conjunto de dados, um filme, vamos ter onze milhes. E um valor associado de cinco, ponto, alguma coisa milhões. Mas se nós pensarmos, podemos falar que “2x – 7”. Será que ela é boa? O que acontece? Nós temos esse menos sete. Nós podemos falar que também é menos cinco, é outra reta. Ou um menos dez, é outra reta. Ou até “5x + 10”, é outra reta. Será que ela é boa para mim? Nesse caso, parece que não, porque nossos dados estão nessa reta daqui.

Nós precisamos encontrar a melhor reta para podermos fazer isso. Nós temos um processo que é usado em aprendizado de máquina, em machine learning, que é derivado da estatística, que é a regressão linear. E a regressão linear faz isso para nós. Ela encontra a melhor reta para os nossos pontos, e o nome regressão já vem disso. Eu vou querer prever um dado e eu vou cuspir um número em cima disso.

Como nós fazemos isso? No primeiro momento, nós precisamos nos preocupar em dividir os nossos dados em dados de treino e dados de teste. Porque não adianta nada nós generalizarmos nosso modelo em cima de todos os dados, porque nós nunca vamos saber quando está bom para um dado que nós nunca vimos antes e nós vamos nos atrapalhar. Ou talvez, quando venha de fato um dado que nunca vimos, nós performamos muito mal.

E a ideia é termos um conjunto de dados de teste para validarmos nossa ideia, para ver o quão bom o nosso modelo está. E um conjunto de dados de treino para nós treinarmos em cima desses dados. Como fazemos isso? Em um primeiro momento, nós usamos a biblioteca de machine learning que nós temos no python, que é o scikit-learn. Eu estou abrindo o Atom para justamente nós fazermos isso.

Voltei aqui para as minhas explorações. E a ideia é nós a importarmos. Eu tenho “sklearn.model_selection import train_test_split”. Qual é a ideia? Antes de fazermos isso, lembra que eu estava falando que quando olhamos nosso gráfico, nós temos um conjunto de variáveis dependentes, aquele nosso X, que aí nós encontramos aquele M e aquele B. E vamos ter uma variável resposta, uma variável dependente, uma variável que depende disso.

Como precisamos fazer? Nós precisamos dividir os nossos dados em dados de treino e dados de teste. Mas antes disso, nós precisamos dividir as nossas variáveis em dados independentes e dados dependentes. Como nós podemos fazer isso? Eu vou ter aqui o meu filmes_investimento. Ele vai receber o meu movies investimento em milhões. Eu vou criar esse dado aqui. Eu estou voltando para o terminal para colar. Colei, voltei para cá novamente.

E eu preciso fazer a mesma coisa com o outro cara. Qual é o outro cara? É independente. Filmes, bilheteria. Porque ele recebe movies, bilheteria, pessoas. Copiamos aqui, vamos colar. Se dermos uma olhada, o que temos? Novamente, aqui é o nosso data frame de todos os investimentos, linha a linha. Se fizermos agora o filme, bilheteria, vamos ter a mesma coisa para as bilheterias. Vamos ver se isso é realmente o que acontece?

Agora, nós precisamos dividir os nossos dados em dados de treino e dados de teste, como eu falei inicialmente, e como fazemos isso? Importando primeiramente o método. Vamos aqui, ok. Vamos voltar aqui. Salvo. Está importando. Importamos.

Agora, precisamos dividir nossos dados em dados de treino e dados de teste. O treino é em cima das nossas variáveis independentes e depois os dados de teste em cima das nossas variáveis dependente. E como é essa divisão? Ela é bem simples.

Podemos fazer um “treino, teste, treino_bilheteria, teste_bilheteria”. Esses dados vocês sabem o método treino. Teste Split. O que nós passamos pelo teste Split? Justamente os dados que fizemos. Justamente filmes investimento, que é a nossa variável independente e filmes bilheteria.

Agora, vamos pegar esses dados, copiar e dar uma olhada no que eles fazem. O que eles são, na verdade. Copiei os dados, filmes e investimento não está definido. Copiamos aqui. Vamos dar uma olhada? Tem meus dados de treino. Eles são o investimento. Se olharmos as de teste, eles também são investimento. Mas qual é o tamanho? Qual é a diferença desses caras?

Se eu olhar o lado de treino, 6843. Se eu olhar o lado de teste, 2282. Se eu somar os dois, 9125. Qual é o tamanho do meu data frame inteiro? 9125. Eles separaram.

Quantos por cento é treino? Se eu pegar o tamanho de treino e dividir pelo total, aproximadamente 75%. Setenta e cinco por cento, na verdade. No meu dado de teste, eu tenho 25%. Se eu somar os dois, eu vou ter cem por cento. Vamos ver se é isso que acontece?

Vamos digitar de novo? Eu tenho aqui os meus dados de treino. Ele dividido pelos meus dados de teste. Os meus dados de teste dividido pelos meus dados de totais de filmes. Um. Cem por cento. Fizemos a nossa divisão.

Agora, o que precisamos fazer? Se dermos uma olhada na fórmula desses caras. Vamos em “treino.shape”. Não tem definido aqui o número de colunas. E novamente aqui é um tipo de series, como já vimos naquele erro. Se eu der uma olhada no treino, ele é um panda, ponto, series.

Vamos transformar esses caras em um array, num vetor coluna, para conseguirmos fazer as nossas previsões. Até porque depois fica mais fácil manipular para o machine learn entender.

Como fazemos isso? Usamos a biblioteca de manipulação de dados de matrizes, na verdade, do python, que é o numpy. Nós temos aqui o import numpy as np. O que o numpy faz? Ele vai criar um array. Ele vai transformar esses caras num array. É só fazer “treino = np.array(treino)”. E eu estou reformando esse array para aquilo que queremos.

O que nós queremos? Nós queremos que seja um vetor exatamente como vimos no Excel. É um vetor coluna. Ele tem seis mil e não se quantas linhas e uma única coluna. Vou dar um reshape, passando o próprio tamanho do número de linhas. Treino. E uma única coluna. Para vermos esse dado de uma forma um pouco mais bonita. Estou copiando ele aqui. Depois, vamos aqui e colamos ele aqui.

Np is not defined, não definido, porque nós não importamos a biblioteca. Eu escrevi lá e não importei aqui. Agora, colamos de novo com o command + V. Criamos nossa área de treino. O que acontece agora? Está num formato um pouco melhor para trabalharmos.

Vamos repetir esse processo com todos os outros caras. Eu vou ter um treino aqui, tenho o meu “teste = np.array(teste).reshape(len(teste),1)”. E “treino_bilheteria = np.array(treino_bilheteria).reshape(len(treino_bilheteria),1)”. E “teste_bilheteria = np.array(teste_bilheteria).reshape(len(teste_bilheteria,1)”.

Vamos copiar todos esses caras aqui. Copiamos e vamos colar. Teste. O erro está em algum dos canais. Teste bilheteria. É bilheteria aqui. Os outros três deram certo. Vou só copiar eles de novo para passar. Legal. Copiamos aqui com o command + C e vamos aqui no command + V. Ok, criamos nossos dados.

Se olharmos todos eles, eles vão ser um array. Qual é a ideia, agora que já temos os dados no formato que queremos? Nós vamos criar o nosso modelo, isso é bem simples “LinearRegression()”. Criamos o nosso modelo. E nós vamos encaixar os nossos modelos de acordo com os nossos dados de treino.

Esse encaixe, para fazer ele aprender de fato, é o “modelo.fit(treino, treino_bilheteria)” Se olharmos aqui, vamos aqui. Modelo, ponto, fit is not defined. Por que não está definido? Porque nós não criamos o modelo como eu digitei ali em cima. O problema de criar o script depois ir pra terminal é justamente esse. “modelo = LinearRegression()”. Linear regression not defined também porque eu digitei lá em cima e não importei.

Na verdade, eu não importei. Como nós fazemos a importação dos dados desse cara? Nós jogamos um “from sklearn.linear_model import LinearRegression”. Agora sim. Nós podemos copiar o cara aqui e nós podemos jogar o modelo criado e aplicar. E olha só que legal. Nós criamos o dado.

O que isso fez? Ele basicamente encontrou aquele M e aquele B que eu falei. Novamente, se nós voltarmos aqui para o nosso Geo Gebra, qual a ideia do B? Se nós vermos, eu tenho aqui “2x – 7”, por exemplo, que é essa reta. O que acontece se por menos seis? Menos cinco? Menos quatro, menos três? Olha só. A reta sempre se move para cá ou para cá. Nós encontramos esse B onde ele intercepta o eixo Y, o eixo da bilheteria.

O resultado que ela dá intercepta, interception, intercept. “modelo.intercept_”. Esse é o nosso B, o B que nós encontramos.

E o X, o que ele significa? Novamente, eu vou voltar aqui para o caso inicial. E se o meu X fosse 1.9? 1.8? 1.7? 1.6? 1.5? Um, ponto, quatro? 1.3? Ele está mudando o ângulo que essa reta recebe em função comparado com o meu X. Mudando o ângulo, ele é um coeficiente angular. Coeficiente, coef, de coeficiente. “modelo.coef_”.

A equação da minha reta, nesse caso da reta que nós encontramos, a reta de regressão. A melhor reta nesse caso é vezes um X mais esse valor aqui. Essa é a equação da nossa reta. Vamos ver se é isso que acontece? O modelo, essa variável que acabamos de criar tem um método chamado “modelo.predict()”, que nós fazemos a previsão daquilo que queremos.

Voltando lá para o nosso dado de Zootopia, que eu tinha aberto aqui do lado. Abrir zootopia data. Nós temos essa aqui já pronta para copiar. Quanto seria a bilheteria? Nós vamos aqui e fez a previsão. Seria aproximadamente 7.8 milhões de pessoas.

Vamos ver se batem os valores que nós fizemos? “modelo.coef_*” o valor mais “modelo.intercept_”. “modelo.predict_”. E agora nós queremos o “modelo.coef_”, vezes o valor que queremos mais o “modelo.predict_”. Olha só. É o mesmo valor. Exatamente o mesmo valor. Essa foi a equação da reta que encontramos.

Mas nós chegamos para o nosso chefe e falamos: chefe, se nós investirmos vinte e sete milhões, vamos ter aproximadamente 7.8 milhões de pessoas que vão. Será que nós confiamos nesse dado? Será que esse dado é confiável? Será que nós podemos chegar e reportar para o chefe com toda a segurança do mundo?

Existem métricas, quando você trabalha com o aprendizado de máquinas, estatística mesmo, existem métricas para termos um grau de confiabilidade do nosso modelo. Uma dessas métricas é o índice de erro. Quanto nós erramos entre os valores que previmos e o valor real.

Como nós descobrimos essa métricas? Nós temos os próprios métodos dentro do scikit, mas como nós entendemos o que está acontecendo por trás e se esse valor é confiável ou não, é exatamente o que vamos aprender no próximo vídeo.

Sobre o curso Machine Learning: Aprendizado supervisionado

O curso Machine Learning: Aprendizado supervisionado possui 189 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?

Acesso completo por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas