0:00:00: Boa noite!

0:00:07: Como vocês estão hoje? Quem que já está aí?

0:00:31: Boa noite! Estão conseguindo me ouvir? O som, a imagem está tudo funcionando aí?

0:00:59: Se não estiver funcionando, por favor me avisem. Ah, beleza, Matheus. E aí, Matheus, boa noite!

0:01:06: Tudo certo?

0:01:14: Como sempre, a gente começa às 20h05. Hoje eu estava fazendo algumas anotações aqui do tema da live, para lembrar de conversar.

0:01:27: Parece que o atraso está um pouco maior hoje dessa transmissão. Eu não sei exatamente porquê, porque a configuração está exatamente igual era antes.

0:01:48: Quem está chegando aí, vai dando seu boa noite falando de onde vocês estão assistindo.

0:02:02: Hoje a gente vai falar sobre essa previsão de compra.

0:02:10: Boa noite, Francisco! Boa noite, Mr. Claudio!

0:02:23: Boa noite, João Invilie! Francisco de Salvador, boa noite! Douglas Martins, boa noite! Você é o mesmo Douglas Martins que eu conheci no evento do Pai Deita na quinta-feira?

0:02:40: Boa noite, Paulo Consultoria! Boa noite, Thais! Renato do Telegram, também está por aí. Legal!

0:02:51: Francisco de Terezina! Temos dois Francisco, um de Salvador e um de Terezina. Legal!

0:02:59: Chenai de Flávio, boa noite, melhor amigo! Saudades, S2! Coraçãozinho!

0:03:07: Legal, Douglas! Foi um prazer te conhecer aí. Bom ver você aí na live!

0:03:15: Boa noite, Marcos Linares! Algum de vocês que está aqui lembrou da live por causa de um post patrocinado no Facebook?

0:03:27: Ou vocês já estavam planejando vir para a live? Essa aqui vai ser a nossa última live do ano, na verdade, porque depois tem Natal e Ano Novo.

0:03:36: Provavelmente algumas pessoas vão estar de ressaca do álcool, outras de ressaca de aturar a família. Então realmente não tem live.

0:03:48: Marcos do ABC, legal! Está aqui pertinho, pertinho entre aspas. Em São Paulo a gente acostuma a estar tudo, tudo que é aqui perto, Osasco, o ABC, está tudo junto.

0:04:05: Legal, notificação legal! É porque da última vez teve um pessoal, teve um rapaz que falou que o YouTube não avisou.

0:04:15: Falei, caramba, YouTube! Pô, né? Avisa o pessoal que está tendo live. Quem está na lista do email eu mando pelo email.

0:04:25: Paulo Raimundi pela thread do Slack, legal! Boa! Hoje o plano aqui é fazer uma coisa um pouco diferente.

0:04:35: Como vocês veem, tem o browser aberto, o navegador aberto. E a ideia vai ser, eu vou falar primeiro a ideia, a estratégia que a gente tem quando a gente quer prever se um cliente vai comprar.

0:04:48: E depois eu vou mostrar um notebook que eu estava pesquisando alguns notebooks para recomendar para você aqui na live.

0:04:57: Mas aí lá no Slack do DataHackers o pessoal estava falando que seria legal ter algum conteúdo em que eu vou explicando um notebook do Kaggle normalmente.

0:05:14: E aí eu falei, bom, então vamos testar esse formato. Então vai ter a parte da estratégia para se prever compra e a parte de olhar o código aí.

0:05:23: Depois, logicamente, eu vou colocar os links disponíveis para você poder olhar.

0:05:29: Legal, então vamos começar aqui a nossa live. Não é o Spotify que eu quero abrir, é outro negócio aqui.

0:05:39: Então vamos lá. Por que esse tema para essa live? Porque na segunda-feira eu abri uma caixinha de perguntas no Stories no Instagram.

0:05:48: Se você não segue no Instagram, siga lá no Instagram.

0:05:53: Toda segunda eu tento abrir uma caixinha de perguntas lá no Mario Filho ML.

0:05:59: E o que acontece? Uma das perguntas do Lucas Kenji foi sobre Instagram.

0:06:09: Uma das perguntas foi justamente sobre como prever a probabilidade de compra.

0:06:16: E essa é uma aplicação super comum. Pode se considerar, dependendo de como você formular o problema, pode se considerar como um problema de recomendação.

0:06:28: Mas não necessariamente precisa ser aquela recomendação de matriz que normalmente é a mais tradicional.

0:06:35: Então eu falei, esse é um bom tema para a live. E aí eu respondi lá no Stories a pergunta com quatro passos que normalmente a gente faz nesse tipo de modelagem.

0:06:45: E eu vi que um monte de gente salvou, compartilhou, fez um monte de coisa e falei, o pessoal está interessado realmente em saber sobre isso.

0:06:53: Então eu preciso fazer uma live falando sobre esse assunto. Então a sua pergunta no Stories, no Slack, no e-mail, aonde for, no evento, pode virar uma live.

0:07:04: Então não tenham vergonha de mandar perguntas. Não sejam tímidos. Eu normalmente falo, no Data Science, seja sem vergonha.

0:07:13: Então não tenham essa timidez, essa vergonha, porque realmente eu estou sempre procurando temas interessantes para tratar aqui na live.

0:07:20: E hoje, efetivamente, foi a pergunta do Lucas Kenji que ele fez lá no Instagram.

0:07:27: Deixa eu dar boa noite aqui. Sergio Vidal, boa noite. Cris Lani Macedo, boa noite. Zé Humberto. Anselmo Pontes, Lucas.

0:07:36: Legal. Vamos lá então. Então, primeiro, qual que é a estratégia quando a gente quer modelar a compra?

0:07:42: A gente tem normalmente quatro passinhos que a gente faz. Primeiro, a gente precisa pegar os dados do perfil do cliente.

0:07:50: Que dados? Localização, por exemplo, onde é que esse cliente mora? Eu imagino que no Rio de Janeiro deva se consumir mais sorvete do que em São Paulo.

0:08:01: Não em números, mas assim, proporcionalmente, porque lá faz mais calor do que aqui em São Paulo.

0:08:07: E certamente em Minas Gerais se consome mais pão de queijo do que aqui em São Paulo, porque onde eu fui tinha pão de queijo.

0:08:17: Então, tem… São… O lugar onde está o seu cliente pode ser uma variável interessante de você usar na sua previsão.

0:08:26: Essa é uma das variáveis. Diga aí no chat que outras variáveis de perfil de cliente que a gente pode usar.

0:08:33: Porque a gente tem que ter cuidado para não enviesar o nosso modelo. Então, a gente não pode usar, por exemplo, características muito pessoais, por exemplo, religião.

0:08:43: Essas coisas não faz sentido a gente colocar no modelo, porque aí você vai estar separando o pessoal por características que não tem que separar.

0:08:51: Mas que variáveis vocês acham que o perfil de um cliente tem, vamos dizer, num e-commerce, numa indústria, que a gente poderia colocar num modelo?

0:09:02: Então, vou colocar uma aqui, por exemplo, é cidade do cliente, idade. Idade é uma… Dependendo do caso ela funciona.

0:09:12: Isso, faixa etária, exatamente. Eu vou pensando aqui também enquanto vocês colocam aí.

0:09:20: Uma coisa que às vezes o pessoal usa é o dispositivo de acesso. Então, você está acessando o quê? De um computador, você está acessando de um celular, o teu celular tem Android, você está acessando pelo que navegador você está usando.

0:09:40: Renda mensal. Renda mensal pode ser uma variável, dependendo do que você já vende, ela pode ser importante também.

0:09:46: Sexo também é importante. Tempo online no site a gente vai falar também, José, só que ele vai entrar no terceiro passo.

0:10:01: Que aí vai ser uma variável de comportamento do cliente. Histórico de compras também vai entrar no próximo passo.

0:10:09: Então, eu estou pensando assim, informações que em geral não mudam muito. Eu não mudo de navegador toda semana, eu não mudo de cidade toda semana também.

0:10:19: Então, quais são as características de perfil mesmo? Aquelas que quando você se cadastra no site você preenche elas e não muda por um bom tempo.

0:10:30: Uma coisa que eu já vi o pessoal usar é o servidor de e-mail. Por exemplo, a pessoa se cadastrou com o e-mail do Gmail ou se cadastrou com o e-mail da empresa.

0:10:39: Faz diferença, dependendo do que você está modelando. Origen do cadastro, sim, mídia. Então, a pessoa veio pelo Facebook, veio pelo YouTube,

0:10:49: veio, digitou direto o site para entrar, para comprar alguma coisa, foi um vendedor que entrou em contato. Também pode ser importante, sim, Edson.

0:11:02: Outra característica que pode ter, vamos ver, escolaridade. Sim, escolaridade. Quando eu trabalhava no Upwork, a gente precisava ter informações de qual era a formação,

0:11:15: em que universidade o freelancer se formou, porque tinham clientes que queriam só pessoas de uma certa universidade, então pessoas que têm mestrado.

0:11:25: Isso aí também conta, principalmente em casos onde você está modelando emprego, se a pessoa é adequada para um determinado emprego.

0:11:36: Então, acho que deu para entender exatamente o que são dados do perfil do cliente. Então, aqui nós temos o cliente é uma parte do nosso modelo, certo?

0:11:52: Formato da tela ou dispositivo também pode ser, Edson, muito legal, muito boas as ideias do chat.

0:11:59: O segundo passo é você pegar dados do produto, barra serviço que você está tentando modelar. Então, vamos pensar nos produtos que existem.

0:12:11: Lá no Upwork, a gente trabalhava com propostas de trabalho. Então, por exemplo, qual é a categoria de um produto? Geralmente serviço e produto têm categorias.

0:12:22: Vendas em geral, José, pode pensar que a gente está misturando tudo, não está num caso específico.

0:12:30: Justamente para a gente entender como isso é aplicado em vários tipos diferentes de mercados e tudo mais.

0:12:40: Então, categoria, tem alguns produtos, por exemplo, quando eu modelei preço de obra de arte, o tamanho da obra de arte, o tamanho do produto conta.

0:12:53: O SKU, sim, no caso, eu esqueci o que significa, Edson, você pode escrever, por favor, o que significa SKU, mas sei que é tipo de um ID do produto.

0:13:09: Então, o que mais peso do produto, as características físicas em geral do produto.

0:13:18: Físicas, o produto, o que mais que a gente pode usar? Vamos pensar um produto virtual.

0:13:30: Por exemplo, se for um curso, a gente pode ter a duração do curso, se é um filme, por exemplo, tem aquele filme, o Irlandês, na Netflix, que tem três horas e meia.

0:13:48: Então, imagine só, se ele estivesse sendo vendido, ele estava sendo vendido em algum cinema, alguma coisa.

0:13:54: A gente tem que recomendar para quem tem muita paciência. Durabilidade do produto, durabilidade do produto.

0:14:04: Também não sabe, Edson, legal. Eu sei que é o ID, mas eu não lembro exatamente o que significa.

0:14:13: Preço, estava esquecendo disso, Chris Lanny, muito bom. Preço, Service Tag, eu não sei exatamente o que é isso, mas vou colocar aqui.

0:14:24: Service Tag, Ticket Médio por pedido e por cliente, sim, vocês estão se adiantando, vamos com calma, aqui a gente está no perfil do produto ainda, as características do produto.

0:14:36: O que a gente pode pegar também, talvez, aí é um híbrido também, mas talvez avaliações que os clientes deixaram deste produto, entendeu?

0:14:50: Quem mais? Que pode ser… deixa eu pensar aqui, estou olhando, pisca, pisca, pisca, cor, cor do produto. Stock Keeping Unit, muito obrigado, Giovanni.

0:15:08: Unidade de Manutenção de Stock, lembrem-se disso, muito obrigado, Giovanni. Hating do produto baseado nas compras dos outros clientes, exatamente, as avaliações ali no caso.

0:15:20: Legal, temos um monte de coisas aqui de dados do produto, então se a gente fosse criar o nosso modelo somente com isso, a gente já teria aqui linha 1, dados do cliente, mais dados do produto, beleza?

0:15:42: Então esse seria passo 1 e 2, a nossa linha teria isso aqui e relacionado a um determinado Y que a gente ainda vai ver como é que a gente cria.

0:15:54: Agora, o grande segredo quando você está fazendo esse tipo de sistema é você pegar essas informações que o José já falou, quem mais falou aqui? O Marcos falou que são as interações cliente-produto,

0:16:13: ou também dados, vamos dizer assim, de comportamento tanto do cliente quanto do produto. Então vamos colocar aqui, histórico do cliente barra produto e interação.

0:16:27: Por exemplo, o que o José sugeriu aqui, tempo online no site, então do cliente, tempo online no site, quem mais que a gente pode usar? A gente pode usar o valor de compras nessa categoria, quem mais?

0:16:47: O valor de compras desse produto mesmo, às vezes o cara está recomprando o produto. Quem mais que a gente pode usar do cliente?

0:17:02: Do cliente, entremos histórico de compras, histórico de interações no nosso site, quer saber uma coisa que é importante? Frete, quanto custa para eu mandar esse produto para o cliente?

0:17:17: Tem cliente que deixa de comprar porque o frete sai mais caro que o produto, então é importante também a gente levar em conta frete, por exemplo,

0:17:27: tempo do cliente na página do produto, sim, tempo na página do produto, quem mais? Vamos lá, olha só, as ideias surgindo aí, muito bom.

0:17:40: Deixa eu pensar, qual mais característica que a gente pode ver, quanto é o tempo desde que o cliente comprou da última vez?

0:17:58: Seja esse produto, pode ser específico do produto, pode ser que ele comprou em geral no nosso site, produtos visualizados, exatamente, a gente pode extrair variáveis isso, deixa eu jogar aqui mais para cima que eu estou vendo que a minha câmera está na frente ali do passo 3.

0:18:19: Promoção, muito importante, vamos colocar aqui, aí seria uma característica aqui do perfil, é um híbrido também, mas vamos colocar produto em promoção, vamos pegar aqui algumas coisas históricas do produto,

0:18:35: a primeira coisa legal é que a gente pode pegar várias das mesmas características do cliente, só que para o produto, entendeu? Então, quanto tempo médio que os usuários passam, hoje está difícil de digitar,

0:18:55: na página do produto, tempo médio, ou seja, essa mesma coisa aqui, para apenas compradores, versus todo mundo, frequência de compras também para o cliente e para o produto, exatamente,

0:19:21: tempo desde a última promoção,

0:19:34: tempo desde a última venda, número de vendas ontem, quais produtos são comprados junto com esse,

0:20:03: página de saída, nesse caso pode ser do produto também, quero que vocês vejam aqui que é o seguinte, as características do cliente e do produto em termos de histórico e interação,

0:20:17: são muito parecidas, se basicamente considerando o cliente como uma peça, uma entidade dos seus dados, e o produto como outra entidade, você pode pegar o histórico dos dois, você pode praticamente computar as mesmas estatísticas de tempo,

0:20:34: de histórico de compras e tudo mais, para os dois, isso é muito interessante, margem do produto, exatamente, também pode ser, margem do produto, aqui eu acho que vou colocar no dados do produto aqui, do perfil do produto,

0:20:53: vendas em feriados, exatamente, muito bom Andrei, vendas em feriados, teve uma competição do Kegel que tinha que prever vendas, que eu acho que o terceiro lugar, o cara que pegou o terceiro lugar, uma das variáveis dele era o seguinte,

0:21:11: a loja estava em reforma, aí foi o primeiro dia, quantos dias depois que a loja tinha reaberto, aí isso influenciava no número de vendas, então logo que a loja reabriu, teve inauguração e tudo mais, teve mais vendas, então é outra coisa muito importante,

0:21:27: vou colocar aqui tanto para cliente quanto para produto, sazonalidade, eita moto, o pessoal gosta de passar com umas motos barulhentas aqui, sazonalidade então, Natal, Ano Novo, criatividade pra caramba, né, nessa sazonalidade, Páscoa,

0:21:51: dia da semana, exatamente, são todas coisas de sazonalidade, tem cliente também, por exemplo, hoje vende-se muita coisa de mercado, compra de mercado por aplicativo, e comida também, toda sexta-feira, quase toda sexta-feira eu como pizza, eu peço pizza, então

0:22:09: os aplicativos talvez já tenham aprendido que eles não precisam nem me mandar cupom na sexta porque eu vou comprar de qualquer jeito, né, por isso que a gente tem que saber de machine learning para a gente enganar o modelo, fazer o modelo pensar que a gente não vai mais comprar para a gente ganhar cupom,

0:22:23: aliás, isso não é recomendação, tá, é só estou falando, Black Friday, exatamente, muito bom, período do ano, faz sentido sim Giovane, faz sentido sim, tudo isso que vocês estão falando faz sentido sim pessoal, é exatamente a coisa mais importante

0:22:45: que eu falo aqui é isso, é vocês desenvolverem, você desenvolver esse raciocínio de entender como pegar esse problema e jogar ele para uma forma de machine learning, porque você tende essa lista de informações,

0:22:58: você vai lá e computa, e a gente vai ver como é que o pessoal fez isso nos notebooks que tem aqui, mas essa parte estratégica é muito importante, porque aí a execução fica muito fácil, tá,

0:23:09: quantidade de pedidos, quantidade de produtos comprados, exatamente, quantidade de pedidos, quantidade de produtos comprados em geral pelo cliente, o tamanho da sexta de compras e produtos comprados,

0:23:25: se o cliente adicionou o carrinho, beleza, a gente já tem bastante coisas, a gente já tem bastante coisa aqui, eu acho que deu para entender já como é que funciona essa parte,

0:23:38: e o quarto passo é o seguinte, índices financeiros Andrei, faz sentido, depende do que você está prevendo, o problema do índice financeiro às vezes é que ele sai por exemplo a cada trimestre,

0:23:50: e aí outras variáveis acabam compensando por ele, às vezes as vendas do produto na semana passada, nas vendas do produto nessa mesma época do ano, só que no ano passado,

0:24:02: acaba capturando esse tipo de informação e aí parece que essa informação acaba não sendo afetada, o teu modelo acaba não sendo afetado por essa informação, mas na verdade é que como tem outras variáveis mais frequentes,

0:24:15: esses índices macro econômicos acabam sendo absorvidos, mas sim, dependendo do produto pode ser interessante, por exemplo taxa de juros, se você estiver trabalhando em termos de recomendar empréstimo em banco,

0:24:31: quem sabe pode ser interessante, é legal, outra coisa que a gente está esquecendo aqui marca, marca do produto também é muito importante, isso faz uma diferença brava para alguns produtos,

0:24:45: quarto passo, a gente já tem features para caramba, provavelmente se a gente pegar isso aqui e fizer várias combinações, a gente cria milhares de features para a gente testar no nosso modelo, muito bom,

0:24:58: quarto passo, mas o que a gente vai prever, qual que vai ser o Y, qual que vai ser o alvo, e o alvo tem que ser uma parte do processo de compra, quem assistiu o vídeo que eu aliás esqueci de tirar do ar,

0:25:12: mas eu vou tirar do ar depois dessa live, o vídeo lá das cinco etapas que garantem o sucesso de um projeto de data science que entrou a semana passada aqui no canal,

0:25:24: vê que eu falo o seguinte, no exemplo que eu dou lá eu falo que às vezes você modelar diretamente a compra não é possível porque você tem poucos dados,

0:25:34: o pessoal assim 99,8% sei lá o que das pessoas que entraram no seu site não compram nada, entendeu, então você acaba, o modelo de machine learning acaba não aprendendo tão bem com uma proporção muito, muito, muito pequenas de exemplos positivos,

0:25:50: principalmente se você tiver poucos exemplos, se tiver ali 20 mil exemplos, imagina, 20 mil exemplos, se tiver 1% de positivo são só 200 exemplos, certo, 20 mil, 2 mil, 200, exatamente,

0:26:04: então é pouquíssimo exemplo para o modelo aprender e em alguns casos em pequenos negócios quanto mais o machine learning for se espalhando mais a gente vai ver isso em casos de negócios pequenos, em casos que a gente não tem tantos dados, então é importante a gente entender o seguinte,

0:26:22: parte do processo de compra precisa ser o alvo, então o que acontece, logicamente o Y mais óbvio seria colocar a compra, então quer dizer,

0:26:42: com todos esses dados aí, produto, cliente, históricos e tudo mais, cliente comprou ou não, seria o mais óbvio, mas como a gente tem esse problema de nem sempre ter a compra a gente pode pegar outros passos do processo de compra, então uma coisa que vocês citaram como variável mas que poderia também ser o nosso alvo é justamente tempo na página,

0:27:11: é o seguinte, se você pensar, se você conseguir prever o tempo que alguém ficaria numa página, se a pessoa fosse exposta a essa página, você pode usar isso como um indicador de interesse, um indicador de vontade de comprar aquele produto, porque quando a gente quer comprar o produto a gente lê a página, a gente vê as opiniões e tal,

0:27:34: então eu estava até conversando esses dias com o pessoal que eu ouvi, tem gente que não clica em anúncio, então se você tem um anúncio lá no Facebook da tua loja, a pessoa não clica, ela vê o anúncio e vai procurar no Google aquele produto que ela viu o anúncio,

0:27:50: então as vezes você tentar modelar diretamente um clique, uma compra por exemplo vindo do anúncio, você vai cair num problema que você não vai ter, a pessoa pode clicar e sair logo depois que ela clicar no anúncio, só que depois ela vai no Google e procura e passa mais tempo na página,

0:28:12: então pode ser outro indicador de compra, coloquem aí que indicadores de compra é que a gente pode usar, outro indicador óbvio, não vou deixar coisas óbvias para você falar aí no chat, tem que pensar coisas complicadinhas, então cliques,

0:28:28: a pessoa clicou ou não clicou, esse perfil de cliente clicou ou não clicou nesse perfil de produto, só que o problema é que geralmente isso aqui é um indicador fraco de compra, fraco de compra, então geralmente você tem muito clique mas o pessoal clica em tudo,

0:28:47: eu também clico em tudo que eu vejo por aí, tá? Ô José, você assistiu 4 vezes que legal, José Romare, porque na verdade aquele vídeo não ia para o canal pelo menos antes de 2020, ele faz parte de uma outra estratégia de conteúdo que eu tenho aqui para o canal,

0:29:08: então eu coloquei mesmo para não ficar uma quarta-feira sem live, sem conteúdo, sem nada, para vocês terem algum conteúdo legal para ver, por isso que eu vou tirar, porque na verdade ele nem deveria estar lá, mas para vocês não ficarem sem conteúdo eu coloquei ele lá.

0:29:25: Eu trabalhei num processo de previsão numa universidade, e vimos que poucos cancelavam, mas muitos deixavam de estudar, acessar, aí temos que prever essa desistência e sucesso no período, exatamente isso que a gente está falando aqui, inclusive as features que a gente decidiu,

0:29:41: podem ser usadas justamente para o contrário desse problema, em vez de você prever quem vai comprar, você pode prever quem vai deixar de comprar, ou seja, quem vai cancelar a sua inscrição, quem não vai mais fazer o seu curso, quem…

0:29:55: Geralmente em faculdade você vê muito esse tipo de previsão, que é quem vai sair do curso, quem vai cancelar a assinatura do seu aplicativo, por exemplo, é muito interessante isso, então o Edson sugeriu número de sessões,

0:30:12: sim, pode ser, dependendo do produto que você tenha, o número de sessões, pode ser um alvo também, adicionou ao carrinho, pode ser um alvo também, vamos lá, o que mais que a gente pode…

0:30:28: Sabe como é que o YouTube recomenda vídeo para a gente? Ele modela o tempo que você vai passar assistindo o vídeo, a porcentagem, não a porcentagem, mas quantos minutos você assistiu em média de um vídeo, para ele te recomendar,

0:30:42: eu estava vendo o paper, até uma coisa que eu quero trazer aqui para live, para a gente conversar sobre como é que funciona o algoritmo de recomendação que o YouTube usa, que é bem interessante,

0:30:54: que mais, vamos lá, que a gente pode usar como Y, se o cliente comprou, cliques, quanto se ele entrou em contato, então se ele fez uma ligação, tem clientes que…

0:31:13: Tem lojas que usam esse tipo, tem negócios que usam esse tipo de coisa, que querem que o cliente entre em contato, ou então, o que mais que a gente pode usar aqui como alvo,

0:31:30: em jogos online, por exemplo, você pode ver o cliente renovou a assinatura, que aí é um tipo de compra também, né?

0:31:44: Ou então o cliente fez alguns comportamentos de cumprir alguma coisa para ganhar pontos dentro do jogo, né?

0:31:57: Cartão cadastrado na loja, sim, pode ser também, cadastrou cartão, número de novos cadastros, sim, sim, fez cadastro, né?

0:32:11: Legal, vocês veem aqui, só nesse tempinho, isso aqui, a gente está gerando do que a gente lembra, de negócios e tudo mais,

0:32:20: se a gente for olhar a literatura, papers, blogs, solução de competição e tudo mais, você vê que tem mais um monte de coisas que dá para você modelar.

0:32:31: Então nessa primeira parte, nessa parte estratégica, o que eu quero que você entenda daqui é o seguinte, primeiro, lembre-se sempre de usar como X, como features,

0:32:44: então parte do teu X vão ser os dados do perfil do cliente, outra parte do teu X, dados do produto ou do serviço, vou até apagar isso aqui para não ficar confuso,

0:33:00: outros dados para você colocar no X histórico do cliente, produto, interação entre cliente e produto e aqui é o Y, já tem um Y ali, mas vamos colocar outro aqui.

0:33:19: Então o que acontece, no fim das contas, você vai ter um modelo supervisionado que vai ser perfil do cliente mais, vou colocar vírgula aqui porque a gente gosta de Python,

0:33:33: Python tem esse tipo de estrutura, então perfil do produto e histórico do cliente, esse aqui é o X, histórico do produto, produto na lista de desejos é um outro alvo bom,

0:33:53: quem mais, interação, cliente, produto, essa seria uma linha e para prever, por exemplo, vamos colocar aqui tempo na página,

0:34:09: aqui ficou ruim minha tentativa de fazer um X e um Y, mas acho que assim dá para entender, então, o que eu apertei aqui?

0:34:23: Apertei alguma coisa errada, pera aí que eu vou tentar consertar, vou copiar tudo e abrir o site de novo, aqui, beleza, então é isso, essa é a parte estratégica,

0:34:42: e para quem quiser saber mais, ainda bem que eu desci aqui, tem um livro que eu vou deixar o link, que é um livro grátis, o melhor livro de marketing com machine learning que existe,

0:34:53: e é grátis, olha que coisa maravilhosa, e ele fala tanto desse caso de previsão de propensão de compra, quanto de casos muito mais complicados,

0:35:02: tudo que é modelo que existe relacionado a marketing tem nesse livro, então é muito interessante, vou até já colocar aqui no chat o link para quem quiser já baixar,

0:35:15: não larga a live não, não larga a live não, depois você baixa, e depois vocês…

0:35:24: Pergunta da Thais, como os concorrentes entram no modelo? Eles podem entrar também como feature, normalmente eu não me lembro de ter feito um modelo que a gente usou com correntes,

0:35:36: mas geralmente o comportamento do cliente e dos seus clientes com esse produto acaba sendo mais importante do que necessariamente o concorrente,

0:35:47: logicamente existem casos em que esse tipo de informação pode ser interessante, entram como features, então a gente poderia colocar aqui também info do produto na concorrência,

0:36:04: então eu estou vendendo móveis, o cara da loja da esquina está vendendo móveis, então eu tenho um posto de gasolina, e o posto da esquina está com gasolina a x reais, eu vou lá e coloco também como uma feature,

0:36:19: como uma variável, logicamente variáveis de tempo a gente pode colocar também, porque isso aqui é uma coisa claramente dependente do tempo, mas aí entra também questão de perfil do cliente e do produto, mas sim Thais,

0:36:34: você colocaria isso como feature, como o teu x também. Legal, vamos dar uma olhada então no notebook aqui que o pessoal usou para fazer isso, boa noite Wallison, que legal, bem vindo aí a sua primeira live,

0:36:53: live ao vivo aliás, o que acontece, tem esse site firm.ai que tem vários casos de machine learning em geral para negócios, eu vou colocar o link aqui, mais uma vez guardo esse link para depois, não sai da live para olhar o link não,

0:37:09: e o que acontece, eu peguei aqui o exemplo que eles tem, que eles dão de prever a próxima compra, nesse caso esse notebook está usando uma ferramenta chamada feature tools,

0:37:23: que que é o feature tools, é uma ferramenta que cria uma porrada de features automaticamente, então eu acho um pouco complicadinho de usar, eu nunca usei, eu sei que ela existe, mas ela vai ser, se você tiver interesse em machine learning mais automatizado

0:37:41: para criação de features, você pode dar uma olhada nesse feature tools, e o que que é esse notebook, pelo que eu entendi aqui, eles estão usando os dados da Stacart, que é uma empresa que faz compras por você,

0:38:00: então você vai lá no aplicativo, lá nos Estados Unidos, você seleciona os produtos que você quer, alguém vai lá no mercado, compra para você e te entrega, tem alguns aplicativos que já estão fazendo isso aqui no Brasil,

0:38:12: e essa competição da Stacart, eles queriam na verdade que a gente previsse o que a pessoa vai recomprar, então dos produtos que ela já comprou, o que ela deve recomprar na próxima compra,

0:38:25: só que aqui eles pegaram esse mesmo banco de dados e fizeram a previsão de um produto, então prevendo se a pessoa vai comprar um produto específico, nesse caso só para a gente ver aqui, quais são os dados que a gente tem,

0:38:41: a gente tem dados das compras, orders, então dos pedidos, das compras que a pessoa fez, então a gente tem o ID do usuário, o ID do pedido e o momento em que foi feito, a gente tem quais produtos faziam parte dessa compra,

0:38:56: então a gente tem o nome do produto, departamento e tal, e uma variável dizendo, esse produto foi recomprado ou a pessoa nunca tinha comprado esse produto,

0:39:07: e a gente tem dos usuários só o ID do usuário e a parte, o momento em que ele fez a primeira compra dele, nesse caso o que o pessoal fez, aqui no passo 2, o Y deles foi o seguinte,

0:39:22: eles queriam prever se a pessoa ia comprar banana, então eu até sei banana porque eu participei dessa competição, não tive muito tempo para participar, mas eu lembro que banana era o item mais comprado que tinha nesse data set,

0:39:35: então logicamente eles pegaram a banana, então basicamente eles criaram aqui uma funçãozinha para dizer se a pessoa ia comprar em 4 semanas, então nas próximas 4 semanas essa pessoa vai querer comprar ou não uma banana,

0:39:50: ou mais de uma banana, provavelmente se tivesse prevendo o meu usuário ia ser positivo, e aí eles criaram aqui um data set pequenininho, porque é um exemplo em que tem 128 exemplos de pessoas que compraram banana,

0:40:08: e 654 exemplos de pessoas que não compraram banana, o que acontece, eles usaram esse feature tools para criar as features, então eles basicamente passaram o nome dos usuários,

0:40:22: e aí ele criou um monte de features que são, algumas delas são aquelas que a gente falou também, então aqui tem quantas compras esse usuário fez, quantas order products, eu imagino que isso aqui seja a suma dos produtos que a pessoa comprou a vida inteira no site,

0:40:44: vamos ver o que mais, número de produtos únicos que a pessoa comprou, então essa pessoa a vida inteira dela no Instacart comprou 26 produtos diferentes, esse aqui é de 76, esse aqui é só 18, esse aqui é só 10,

0:40:59: e criou um monte de features, um monte justamente, vamos aqui para baixo para a gente ver quais foram as features mais importantes, porque apesar do modelo ser importante, as features são o que vai definir se o teu modelo vai funcionar ou não,

0:41:16: teve um caso lá no Slack do Data Hacker dessa semana que o pessoal postou um GitHub de um cara que fez um modelo de rede neural todo complicado, tal para prever mercado financeiro, só que pelo menos pelo que eu vi, o modelo só aprendeu o seguinte,

0:41:35: a prever é o seguinte, o retorno de amanhã da ação vai ser igual ao retorno que ela teve hoje, então aquele baita modelo complicado não conseguiu achar um padrão, por que?

0:41:46: Porque você precisa ter as features certas, se as suas features não forem preditivas do alvo que você quer, não adianta você ter modelo complexo, não adianta você ter modelo, se não adianta você ter modelo nenhum, não vai resolver, entendeu?

0:42:03: É a mesma coisa de usar, sei lá, a temperatura em São Paulo para prever as vendas, como o pessoal citou aí no chat, prever as vendas de sorvete no Rio Grande do Norte, não tem a ver, porque não influencia, aproveitando eu estou vendo aqui,

0:42:18: momento Youtube, deixe seu like aí na live já para o Youtube gostar de nós, o que acontece?

0:42:26: Chegou aqui a parte do Machine Learning, eles escolheram fazer um random forest simples, vocês sabem que eu gosto muito do random forest, a métrica foi a UC, teve uma UC de 0.84,

0:42:37: a UC é uma métrica que qualquer coisa acima de 0.5 quer dizer que ele não está prevendo aleatoriamente, então se você está a baseline do UC é 0.5, se você tiver 0.5 ou menos que, eu não sei exatamente, não lembro exatamente como é que acontece menos de 0.5, mas às vezes acontece,

0:42:57: e quer dizer que você não está prevendo nada, está tudo aleatório, então aqui realmente não é aleatório, ele achou padrões que prevêm com o comportamento da pessoa, com o perfil da pessoa, se a pessoa vai querer comprar uma banana ou não,

0:43:12: o que acontece? Fit, top features, essa parte interessante para a gente, então eles pegaram as importâncias aqui, para quem não sabe, o random forest, boa parte dos modelos do scikit-learn, você consegue saber quais foram as features mais importantes,

0:43:28: existem várias maneiras de você computar isso, talvez em outra live eu possa explicar melhor como é que isso é feito, mas só saiba o seguinte, quanto maior esse número quer dizer que mais importante, mais vezes, vamos dizer assim, mais influência essa feature teve nas previsões,

0:43:45: mais o random forest achou que essa feature é legal para prever se a pessoa vai comprar banana ou não, o que acontece? A feature mais importante aqui é o seguinte, quantas vezes, quantas compras a pessoa fez em que ela comprou banana,

0:44:03: então veja só, a moto de novo está passando aqui, veja só, vamos dizer que eu tenha feito 9 compras no site, em quantas delas eu comprei banana, é uma feature que parece extremamente simples e olha só, é de longe a mais preditiva,

0:44:25: é uma surpresa, logicamente, que se você quer prever se a pessoa vai comprar uma banana, se a pessoa comprou banana no passado, quanto mais vezes ela comprou banana, maior a chance dela comprar de novo, não é surpresa depois que a gente vê, mas é importante ter isso no teu modelo, porque o teu modelo não sabe dessas coisas, por si só se você não colocar como feature,

0:44:49: aqui é a moda, se eu não me engano, aulas de estatística básica, ela é o valor mais frequente, então se o produto mais frequente que foi comprado foi banana, também é importante, vocês veem que as três variáveis mais importantes tem a ver com a banana,

0:45:13: e aí tem umas features mais complicadinhas aqui, mas vamos olhar as outras, então quantas vezes essa pessoa comprou produtos do departamento de produce, produce é a feira, mercado que faz promoção, feira de quarta-feira as frutas são mais baratas, então agrícola é produce, pra quem está com inglês meio ferrujado,

0:45:34: então quer dizer, a pessoa que em várias compras acaba comprando frutas, verduras, tudo mais, tem maior chance de comprar banana, quem mais, vamos olhar outra aqui, quem gosta de comprar ovo, também gosta de comprar banana,

0:45:52: aqui pessoas que count order products, então o número de produtos que a pessoa compra em cada compra deve ser isso aqui, enfim, isso aqui serve pra vocês verem o seguinte,

0:46:08: aquelas features, features parecidas, vamos dizer assim, histórico do cliente com banana nesse caso, histórico do cliente produto, histórico do próprio cliente sozinho, como por exemplo quantas compras ele fez e tudo mais,

0:46:24: podem ajudar a gente a prever sim se ele vai comprar um produto ou não, nesse caso a gente tem um modelo por produto, mas a gente poderia ter aquele formato que eu falei que é cliente produto em cada linha,

0:46:40: nesse caso provavelmente eles fizeram desse jeito pra ficar um exemplo mais simples, rodar mais rápido, como é um tutorial desse module feature tools provavelmente só pra rodar mais rápido, mas poderia ter mais de um produto aqui,

0:46:55: eles salvaram as features, aqui já é coisa do notebook que é sobre essa feature tools especificamente, teve um outro, tem esse outro notebook aqui que eu achei no kernel do Kegel,

0:47:12: de light gbm dessa mesma competição, deixa eu dar uma olhada aqui no chat, boa noite pessoal, boa noite mestre Mario ou muito boa noite fulvio, José Romare, métricas estão causando confusão, alguma dica pra escolher métricas, valor escolhido,

0:47:29: vai depender do caso em que você está resolvendo, José, lógico, primeiro classificação e regressão, mas faz o seguinte, no finalzinho da live eu respondo só pra gente finalizar essa parte aqui da previsão de compra,

0:47:47: Rogério, boa noite, boa noite Rogério, muito bom ver você por aqui, o que acontece, esse notebook aqui direto do Kegel, ele vai ter mais ou menos a mesma ideia daquele que a gente viu, só que nesse caso ele tem aquele formato cliente, produto em cada linha, tá, e no caso a label, o whithstone, o alvo que ele usou é, esse produto vai ser recompra do ou não,

0:48:11: aliás esse dataset ainda deve estar disponível no Kegel, eu vou, depois eu coloco aqui o endereço pra vocês poderem acessar lá e baixar quem quiser ver mais, tá, e olha que coisa interessante, olha essa feature que o pessoal criou aqui, reorder rate, quer dizer,

0:48:30: em geral essa pessoa costuma comprar os mesmos produtos, ou ela, sei lá, tem gente que se você olhar esse dataset tem gente que compra produto diferente toda vez, e tem gente que sempre compra quase exatamente igual, quase exatamente a mesma compra, quase sempre repete o pedido, é outra feature interessante,

0:48:50: é por isso que eu falo, olhar competição é importante pra gente entender coisas que a gente pode usar fora da competição, e aqui ele colocou, userf, quer dizer, são as features do usuário, então ele colocou número de compras, número de order no caso,

0:49:08: que mais ele colocou aqui, aqui ele está só juntando todos os produtos em uma listinha, em um set aqui, quantos itens a pessoa comprou em geral, quantos itens diferentes a pessoa comprou,

0:49:26: o número, olha que interessante isso aqui, número de itens dividido pelo número de compras, então mais ou menos quantos produtos a pessoa compra cada vez que ela compra pelo aplicativo, outra variável muito interessante, vamos lá.

0:49:43: Aqui tem um monte de coisa que ele faz pra reduzir a memória, porque pra rodar no Kaggle, na própria plataforma do Kaggle, você precisa ter um limite de memória e tal, e aqui começam outras features, eu não sei porque que esse negócio fica aparecendo aqui em cima,

0:49:58: é, o que acontece, features do usuário, então número de itens, número de itens distintos, itens diferentes, ó, média de dias entre compras, olha que feature legal essa aqui, que o pessoal criou também, então quantos dias entre compras, a pessoa comprou toda semana, ou às vezes ela fica um mês sem comprar nada,

0:50:19: que mais, hora do dia em que a pessoa fez a compra, dias desde a última compra, isso aqui eu lembro que era uma feature muito interessante, quantos dias faz, olha essa feature interessante, quantos dias faz desde a última compra dividido pelo número médio que a pessoa fica sem comprar,

0:50:41: então quer dizer, pô, a pessoa tá, faz mais tempo do que o normal que essa pessoa fez compras, faz menos tempo que o normal, entendeu, isso pode influenciar por quê, porque pode ser que, se a pessoa fica, normalmente faz compra toda semana e fica duas semanas sem comprar,

0:50:57: pode ser que a próxima compra ela vá recomprar um monte de coisa de outros, outras cestas, outras compras que ela normalmente não faz toda semana, tá?

0:51:09: Aqui nós temos features do produto, então a gente tem as áreas, as categorias, os departamentos dos produtos, quantas vezes esse produto é recomprado em geral, então lembro que banana é um negócio que a maioria das pessoas, quem compra banana uma vez, volta a comprar banana, tá?

0:51:28: Então a própria taxa de recontra do produto pode ser interessante, é aquilo que a gente falou, o histórico do produto, o comportamento do produto em si em relação a todos os usuários do seu site, tá?

0:51:44: E aqui o que normalmente é a mina de ouro de features que é a interação entre o usuário e o produto, então a gente tem aqui quantas vezes o produto já, desculpa, quantas vezes o cliente já comprou esse produto, qual foi a última, a última nesse caso ele tá usando o ID da compra, mas a gente poderia traduzir isso como

0:52:07: qual foi a última, quantos dias faz que o cliente comprou esse produto pela última vez, average position in cart, só que eu lembro que a gente tinha, qual foi a ordem que a pessoa adicionou os produtos ao carrinho, então,

0:52:22: esse foi o primeiro produto que a pessoa colocou no carrinho, esse normalmente é o primeiro, é o último produto, não sei, talvez um produto que a pessoa sempre compre, ela adicione primeiro ao carrinho porque já tá na cabeça, eu preciso comprar banana, vou adicionar logo a banana no meu carrinho, tá?

0:52:37: Quantas compras desde, quantas compras, pera aí, total de compras do usuário, total de compras do usuário deste produto, menos total, então tá, vamos dizer assim, quantas compras o usuário fez que ele não comprou esse produto,

0:53:00: eu já passo o link já, pode ficar sossegado, então tem isso, e aí depois ele vai, ele treina um LightGBM, se você não conhece, veja alguns vídeos de previsão de venda, tem o LightGBM aqui, é um modelo muito legal,

0:53:18: e aí são previsões, aliás, hoje eu descobri que às vezes é engraçado, é importante você falar claramente as dúvidas e tudo mais, por quê?

0:53:31: Porque às vezes, como são coisas que eu uso todo dia, eu acabo esquecendo como é quando eu não sabia que essas coisas existiam, então,

0:53:41: hoje eu recebi uma mensagem que o rapaz estava falando que ele não sabia que existia o PredictProba no ScikitLearn, que é a função que você usa pra você prever, você pegar a probabilidade em vez da classe,

0:53:54: então, se você tem lá um modelo, por exemplo, CLF.predict, você pega a classe no classificador e CLF.predict prova, desde que CLF é igual ao modelo, você pega a probabilidade, então só uma dica aí, nesse caso estão usando o Predict,

0:54:13: porque essa API aqui é direto no Predict, que dá as probabilidades, aqui ele colocou um Threshold, porque a gente tinha que mandar uma lista de produtos, se eu não me engano,

0:54:27: então você tinha que definir ali qual a classe mesmo, só que, como ele disse aqui, deveria ser tunado, deveria ser otimizado com validação cruzada, num subset dos dados, mas ele só colocou ponto 22, provavelmente viu em outro script,

0:54:49: então foi basicamente isso aqui, como vocês viram, mais importante, mais importante, features, tá, o modelo aqui é o modelo que todo mundo usava, o que faz a diferença são as features, deixa eu colocar esse link,

0:55:02: não sai da live pra ver o link agora, depois você vê esse link, não me abandona aqui não, esse é um deles e esse aqui é outro deles, tá,

0:55:14: então basicamente pessoal, basicamente essa é a ideia, tá, uma live razoavelmente bem completa sobre esse assunto, que é um assunto muito muito interessante e muito prático, tá,

0:55:29: olhe os links que estão aí no chat, porque não, não abro agora, não saia da live pra abrir os links, mas olhe e guarde esses links, porque o livro que tem ali no primeiro link é muito muito importante e pra quem tá vendo depois vai estar nos comentários,

0:55:44: eu vou colocar esses links todos aí nos comentários pra você ter acesso também, tá, vou responder aqui algumas perguntas, podem encher de pergunta aí se vocês tiverem sobre isso, sobre outras questões de machine learning, tá,

0:55:57: como é a última live do ano, então eu vou fazer um pouco mais aqui do que o normal, se tiver pergunta, se não tiver a gente vai jantar e dormir, sei lá, assistir televisão, vamos lá,

0:56:12: então José Romari, as métricas acontecem o seguinte cara, vai depender do caso que você tá tentando resolver, você tem que entender que tem basicamente dois tipos de métrica em classificação, tá, você vai ter métricas

0:56:31: que exigem um threshold, um ponto de corte, threshold, a melhor tradução que achei é ponto de corte, então quer dizer, você vai ter que prever a classe, nesse caso, F1 score,

0:56:43: precision, recall, accuracy que eu não recomendo que vocês usem, tá, não recomendo que você use accuracy porque outras métricas são muito melhores do que accuracy em geral, tá, mas eu preciso colocar aqui porque existe,

0:57:00: o que mais que tem, eu não me lembro exatamente agora delas, mas por exemplo, quando você cria sua matriz de confusão, né, você vai ver esse tipo de métrica também, tem umas outras também lá que eu nunca lembro exatamente como é que funcionam,

0:57:21: que tem uns nomes mais complicados, mas basicamente com essas três aqui primeiras você tá bom, basicamente como é que funciona, muito rapidamente como é que funciona, o F1 score é uma média harmônica do precision e do recall, tá,

0:57:37: como é que eu penso sobre precision e recall, isso aqui é uma dica interessante, quando eu comecei a pensar desse jeito eu consegui entender porque precision e recall era uma coisa que me confundia muito, então precision é,

0:57:48: das previsões que meu modelo diz que são, são, desta classe, quantas realmente são, então quer dizer, se meu modelo tá dizendo que dez exemplos pertencem à classe 1, classe positiva,

0:58:13: e a minha precision é 0.7, é 70%, então quer dizer que eu posso esperar que das dez previsões que ele fez positivas, só sete realmente serão positivas, tá,

0:58:24: então das previsões que meu modelo fez, quantas realmente são da classe que ele tá dizendo que são, isso é basicamente precision, recall,

0:58:34: das, dos exemplos que pertencem a essa classe, tem classe aqui, não sei, enfim, quantos meu modelo identificou, então é praticamente a taxa de detecção,

0:58:55: então quer dizer, vamos dizer que eu tenha 100 exemplos de uma classe, se meu modelo só acertou 60, ele tem 60% de recall, tá, então mais uma vez,

0:59:06: precision, das previsões que o meu modelo fez pra essa classe, qual é a proporção delas que realmente ele acertou, recall, de todos os exemplos que eu tenho dessa classe,

0:59:17: qual é a proporção que meu modelo acertou, tá, tenta entender assim que aí dá certo, agora em termos de métricas de regressão, você tem

0:59:27: min square error, né, que é o erro médio quadrado, você tem o min absolute error, median, você tem o min absolute percentage error,

0:59:38: tem o min square log error e aí vai depender do que você tá tentando prever, se os outliers são importantes, você normalmente usa erro quadrado,

0:59:49: se os outliers não são tão importantes, você tá mais, tá se importando mais com um modelo mais robusto, mais próximo ali da mediana,

0:59:57: você usa o erro médio absoluto e aí se você tá se importando mais com a porcentagem, ou seja, a taxa de mudança, taxa de,

1:00:10: vamos dizer assim, a porcentagem de erro entre previsão e alvo, aí você vai ou pra um erro percentual ou pra um erro logaritmo, isso aqui é uma visão muito, muito, muito, muito

1:00:21: por cima do que são as métricas, tá, entenda o seguinte, erro médio quadrado vai te aproximar mais da média das previsões,

1:00:33: erro médio absoluto vai te aproximar mais da mediana, mas talvez se eu continuar explicando isso aqui eu vou confundir mais do que eu esclareço,

1:00:40: porque realmente não dá pra explicar em pouco tempo, tá, mas tenta entender o seguinte, vê casos que te interessem, casos de uso e veja qual foi a métrica usada,

1:00:50: normalmente o pessoal explica porque usou uma métrica ou outra, tá, mas não se preocupe, é normal ter esse tipo de dúvida, vamos lá, deixa eu ver outras perguntas aqui,

1:01:03: Mário, boa noite, boa noite a todos, boa noite José, sobre features selection, select from model usando o modelo random forest,

1:01:11: um dos parâmetros do select é o threshold, eu fiz threshold 0.005, tá, por questão com um pouco mais de 200 colunas, pra você escolher esse threshold,

1:01:22: normalmente eu vejo qual é o threshold que otimiza a classificação, que maximiza o score que eu estou tentando maximizar ou que minimiza o erro, tá,

1:01:31: normalmente eu uso select from model, pra quem não sabe o que é select from model, ele vai pegar o seguinte, top N das features mais importantes do modelo,

1:01:48: lembra que a gente estava vendo ali as features importantes, as importâncias das features da random forest naquele data set da stackart, se a gente colocar select from model, só o top 10, ele vai pegar as 10 primeiras,

1:02:01: retreinar o modelo e ver qual é a previsão, eu normalmente uso isso aqui quando eu preciso reduzir as features e não tenho tempo pra fazer uma seleção melhor, tá,

1:02:11: mas basicamente o threshold você decide a porcentagem ou qual vai ser o teu N, você roda vários Ns diferentes dentro da validação cruzada e aí você vê qual é o que estabiliza mais,

1:02:25: qual é o limit ali que você consegue usar o mínimo de features pra ter um score parecido se você usar com o que você tem usando todas elas, deixa eu tomar uma aguinha,

1:02:42: métrica lift, legal Lucas, o que acontece quando a gente está modelando compra, se você prevê que uma pessoa tem 90% de chance de comprar alguma coisa,

1:02:55: em tese você não precisa mandar uma promoção pra ela porque ela já vai comprar de qualquer jeito, então normalmente o jeito mais certinho de modelar promoção é o seguinte,

1:03:05: você vai ter, eu até anotei aqui pra não me esquecer, você vai ter dois grupos de usuário, você vai ter o grupo de controle e o grupo de tratamento,

1:03:16: o que acontece? Pra esse grupo de controle, então aqui vamos lá, grupos de usuários, isso tudo tem nesse livro aí que eu deixei o link aí pra vocês,

1:03:28: então aqui você vai ter o seguinte, pessoas, clientes, vamos colocar, clientes que compraram e clientes que não compraram, e você vai ter a mesma coisa aqui no tratamento,

1:03:50: então até vou colocar um tab aqui, o que é controle e tratamento? Pro controle você não envia a promoção, e aí você fala, Mário, mas eu vou ter que enviar a promoção,

1:04:02: em tese você quer criar realmente um modelo que funciona melhor, o modelo de uplift que a gente fala que é o modelo que realmente você vai entender pra quem você tem que mandar a promoção pra ser mais eficaz?

1:04:14: Sim, sempre é um grupinho de usuários e testar a promoção antes, tá? E eu vou falar se você não tiver essa possibilidade, o que você tem que fazer?

1:04:22: E esse aqui você envia a promoção, porque aí você vai ter, além de todos os dados de perfil de cliente, etc e tal, você vai ter o dado se a pessoa recebeu ou não a promoção e se ela comprou ou não,

1:04:37: então nesse caso você vai ter, tá aqui, pronto, você vai ter o teu x normal lá, perfil e tal, e você vai ter aqui um indicador que vai ser, recebeu promoção e o teu y não vai ser, comprou,

1:04:58: então quer dizer, além das informações de perfil, você tem essa informação, um ou zero se recebeu a promoção, e aí você consegue modelar diretamente se a promoção foi eficaz ou não,

1:05:09: se você tiver dados históricos de promoções, você pode adicionar isso aqui também, igual a gente falou lá, se o produto está em promoção, então, quais foram as características da promoção que foi enviada, tá?

1:05:22: Você não precisa necessariamente usar um e zero se a pessoa recebeu a promoção, você pode colocar, perfil do cliente, produto, recebeu a promoção de Natal,

1:05:34: e aí você tem 10 anos de envios de promoção de Natal e você sabe quem comprou e quem não comprou, tá? Então pode ser outro fato, e aí o que você vai descobrir é justamente,

1:05:45: qual foi do pessoal que, e agora deixa eu me lembrar aqui, pra você calcular o lift nesse caso, você vai precisar do seguinte,

1:06:01: clientes que, deixa eu dar uma olhada aqui, lift, eu esqueci da fórmula,

1:06:07: opa, não é do avião que eu quero,

1:06:17: é isso aí, deixa eu ver aqui qual é a fórmula, se eu não encontrar depois eu coloco aqui em algum lugar, mas basicamente o seguinte,

1:06:35: é isso aqui mesmo, então vou tentar abrir essa imagem, aqui, o que está acontecendo aqui? No grupo de controle, ou seja, quem não foi, no nosso caso seria o seguinte,

1:06:55: quem não foi afetado pelo nosso modelo de machine learning e comprou do mesmo jeito, qual foi a taxa de conversão, qual foi a taxa de compra nas pessoas que não receberam o tratamento do nosso modelo de machine learning,

1:07:08: comparado com a taxa de conversão de quem recebeu, então se a gente pensar o seguinte, a gente pega aleatoriamente, a gente deixa separado uma parte das pessoas,

1:07:19: e aí a gente vê, por exemplo, dos mil que a gente previu que eram os mais propensos a comprar, 500 fica separado e 500 recebe uma promoção,

1:07:35: então quer dizer, se a taxa dos 500 que receberam a promoção foi maior do que a taxa de compra foi maior, do que os 500 que não receberam e também estão mais propensos a comprar,

1:07:49: quer dizer que enviar a promoção para esses que estão mais propensos a comprar realmente ajuda, agora se você mandou a promoção e a taxa de compra foi a mesma,

1:07:58: então você vê que a promoção não fez diferença nenhuma, você só perdeu o dinheiro e efetivamente a pessoa comprou o mais barato produto,

1:08:06: então só para a gente colocar aqui, vamos pegar aqui, se a gente for colocar isso aqui em passos, então pega os top mil clientes com maior chance de compra de acordo com o modelo,

1:08:23: e aí você separa aleatoriamente 500 e 500, e aí o que você faz? Manda a promoção para o grupo 1, então vamos considerar que esse aqui é o grupo 1, esse aqui é o grupo 2,

1:08:47: e aí você mede, 4, o grupo 1 comprou mais do que o grupo 2? Ou seja, nesse caso eu estou falando comprou, mas pode ser por exemplo,

1:09:04: a média do valor comprado foi maior do que o grupo 2? Pode ser qualquer outra métrica basicamente, e aí o teu lift, o que você mede é justamente isso,

1:09:21: vamos colocar aqui, compras do grupo 1 dividido por compras do grupo 2, porque se isso aqui for menor do que zero, quer dizer que a tua promoção na verdade atrapalhou,

1:09:36: o pessoal que tem mais chance de comprar, ou seja, os mil clientes com a maior probabilidade de compra, se você mandar promoção para essas pessoas, para as pessoas que tem o modelo que tem mais probabilidade de compra,

1:09:51: elas acabam não comprando, se for igual a zero ou estatisticamente igual a zero, ou seja, não tiver diferença estatisticamente significativa entre os dois, quer dizer que não faz diferença nenhum,

1:10:06: o pessoal já ia comprar, comprou do mesmo jeito, agora se isso aqui for maior que zero, quer dizer, então se eu mandar promoção para esses clientes que já tinha probabilidade de compra alta,

1:10:17: eles vão comprar mais do que eles comprariam sem ação nenhuma, e aqui foi exemplo a compra, você pode testar isso também com os bottom mil, com os últimos mil clientes,

1:10:29: os que tem a menor chance de compra, e aí daqui não tem como fugir, pelo menos no primeiro momento de você ter que fazer esse teste,

1:10:37: aí entra naquela parte de uma outra live que assim, o modelo prevê, mas a estratégia, ou como você vai usar essa previsão, a decisão que você vai tomar sobre a previsão,

1:10:48: entra nesse caso aqui, você precisa fazer esse teste, então você pega ali um grupo top mil, últimos mil, então mil que estão ali no meio, sei lá, você define de acordo com o modelo,

1:11:00: separa aleatoriamente, 500 e 500, não pode ser coisa tipo os 500 primeiros, os 500 últimos, não, tem que ser aleatório de verdade para você ter um teste realmente válido,

1:11:10: manda promoção e aí você vê, o grupo 1 comprou mais que o grupo 2 ou não, isso aqui é o lift, e se vocês quiserem procurar no livro, isso aqui chama uplift,

1:11:20: o tipo aqui, esse tipo aqui de modelagem chama uplift modeling, que é a forma mais corretinha de você modelar esse tipo de coisa,

1:11:32: foi rápido, mas depois qualquer coisa você rever essa parte da live, para entender melhor como é que funcionou isso aqui, deixa eu ver outras perguntas aqui,

1:11:44: caramba, quanta coisa, tá, métrica lift, legal, Mário, você já se deparou em uma situação que não era necessário resolver um problema,

1:11:55: sim, algoritmo simples estático já resolveria? Sim, sim, eu sempre peço uma baseline, sempre peço uma baseline,

1:12:03: teve um caso que eu lembro que para você determinar o lifetime value, o que é o lifetime value do cliente, LTV lifetime value é quanto o cliente vai comprar de você

1:12:21: em tese no resto da vida, mas vamos dizer assim, em x tempo, tá, e no caso os dados que a gente tinha não eram predictivos o bastante para bater,

1:12:32: por exemplo, uma média por categoria de produto que o cliente gostava de comprar, então se eu pegasse a média de compras na categoria y,

1:12:43: era melhor do que eu usar o modelo porque eu tinha poucos dados e os dados não eram predictivos, nesse caso não se usa machine learning,

1:12:52: não tem por que se usar, é completamente normal, é importante esclarecer isso, seja para o cliente, para o chefe, para tudo que é assim,

1:13:00: em boa parte dos casos machine learning vai resolver e nesse caso o que a gente fez foi o seguinte, a gente falou tá,

1:13:08: hoje o modelo não resolve, mas a gente pode se preparar para tentar de uma forma mais inteligente, então o que a gente fez?

1:13:17: Conversou para ver quais dados a gente precisava coletar, como é que a gente ia organizar isso para em algum momento futuro efetivamente começar a usar um modelo

1:13:25: para tentar modelar isso aqui, tá? Então acontece sim, é normal, por isso que eu falo, em empresa normalmente a gente tem que começar com um projeto simples

1:13:35: porque se você pega logo de primeira um projeto que é difícil de resolver o pessoal fala, esse data science machine learning serve de verdade não,

1:13:43: não serve para nada e na verdade não é verdade isso, na verdade não é verdade, olha que coisa interessante, é Chris Lânio Macedo,

1:13:53: você já construiu algum modelo para ficar na retenção? Vixi, vários, eu diria que é o terceiro modelo que eu mais construí na vida foi retenção de cliente,

1:14:03: você basicamente usa a mesma coisa só que você prevê se num determinado período de tempo o cliente vai deixar, vai cancelar uma inscrição

1:14:15: então ele não vai fazer nenhuma compra no seu site e aí você pode até usar esse mesmo negócio aqui, essa mesma ideia do lift você pode usar para fazer promoção e tudo mais.

1:14:27: Teve um caso que eu fiz isso para vinhos, eu acho que até já falei aqui na live, uma empresa que vendia vinhos não é aqui do Brasil e o pessoal mandava o sommelier ligar

1:14:40: para a pessoa para recomendar vinhos para ela acabar voltando a comprar do site, então achei muito interessante essa estratégia deles, então sim

1:14:53: eu poderia fazer uma live inteira sobre isso, o nome disso normalmente é churn na literatura, em blog e tudo mais, na live sobre validação eu falei um pouco sobre churn,

1:15:06: como criar as labels, como fazer mais ou menos criar o esquema para você validar um modelo de churn, então eu recomendo dar uma olhada lá

1:15:19: mas é basicamente a mesma ideia daqui em termos de features, é característica de cliente, no caso não tem característica de produto mas você tem comportamento do cliente

1:15:28: normalmente se o cliente ficar muito tempo sem comprar é um sinal de que ele vai continuar sem comprar, então por exemplo se eu estivesse modelando

1:15:37: para um aplicativo de música, eu iria ver o seguinte, se o cliente reduziu muito o número de músicas que ele ouve, o tempo que ele passa a ouvir

1:15:48: no música no meu aplicativo provavelmente ele vai cancelar, então tem essas features mas é basicamente perfil do cliente e comportamento do cliente

1:16:01: basicamente essas duas coisas que você precisa levar em consideração e aí você prevê, vai cancelar ou não vai comprar

1:16:10: média geométrica, queria saber sobre a coleta dos dados para fazer esse modelo

1:16:20: Renato, eu acredito que você esteja falando do modelo de compra, então a coleta dos dados é essa parte aqui, então você

1:16:29: digamos que você tenha lá 10 mil usuários, que você pode testar neles, normalmente é uma parte menor dos seus usuários, se você tiver 10 mil no total

1:16:38: tente fazer isso com 1000, 2000, o que acontece, você tem ali uma promoção que você quer saber se vai funcionar ou não

1:16:46: para mandar para os outros 8 mil usuários, para esses 2 mil usuários você separa 1000 e 1000 aleatoriamente

1:16:54: e aí você envia a promoção para 1000 e não envia a promoção para outros 1000, e claro, esses 1000 no caso você não precisaria ter separado antes

1:17:03: mas enfim, e aí você pega e você vê, dos 1000 que não receberam a promoção que eu selecionei, quais compraram, quais não compraram

1:17:13: e dos que receberam a promoção, quais compraram e quais não compraram, no caso você vai ter mais um dado para usar com o FIT, você vai separar o seguinte

1:17:23: para esses clientes aqui, os que não receberam a promoção, então a variável recebeu promoção é igual a 0, só que o teu Y é igual a 1

1:17:34: porque ele comprou mesmo sem receber a promoção, para esse aqui vai ser recebeu promoção igual a 0, Y vai ser igual a 0 também

1:17:44: agora para esses aqui, você vai ter a variável recebeu promoção igual a 1, Y1 e para esse aqui você vai ter recebeu promoção igual a 1, Y0

1:17:56: porque o que que o teu modelo vai aprender? ele vai aprender o seguinte, clientes com esse perfil, se receberem a promoção vão comprar

1:18:03: se não receberem não vão comprar, como é que você faz isso para os outros 1000 clientes? você pega os outros 8 mil clientes e você coloca

1:18:11: X, ou seja, os dados de perfil, 1 e pede, qual é a previsão? dados de perfil, 0, qual é a previsão?

1:18:26: e aí o que você pode fazer é o seguinte, selecionar os clientes que a tua previsão P se mandar a promoção

1:18:34: P se não mandar a promoção, e aí você faz o P1, vamos dizer aqui, e o P2, faz P1 sobre P2, aqueles que tiverem o maior ganho

1:18:48: se você enviar a promoção, ou seja, essa feature aqui você tem que criar quando você estiver fazendo a previsão para cada perfil

1:18:57: eu gosto de criar as duas, tem gente que só cria uma e aí seleciona os top N clientes que vão ter maior chance de comprar

1:19:04: mas eu gosto de fazer desse jeitinho aqui no estilo do lift e você envia para os clientes, sei lá, para os teus 1000 clientes

1:19:12: que tiverem essa razão aqui maior do que os outros 7 mil clientes que sobraram, tá? acho que deu, é mais ou menos essa ideia

1:19:24: que você parar para olhar isso aqui e pensar tal, eu também não entendi isso aqui de primeira, tá?

1:19:32: então, mas é bem interessante esse estilo de modelagem, e aí vocês estão resistentes, hoje já estamos com 1h20, que legal

1:19:44: vamos lá, como selecionar somente as features que são importantes? Andrei tem várias maneiras, eu gosto de fazer uma coisa chamada

1:19:53: deixa eu descer aqui na minha telinha, backward ou forward feature selection, tá?

1:20:01: eu não tenho como te explicar isso aqui no tempo que a gente tem aqui, mas se você procurar esse nome

1:20:09: basicamente você vai adicionando uma feature de cada vez e testando se ela melhora ou não, se ela melhora você deixa ela no seu data set

1:20:18: senão você não usa, tá? mas é um bom tema para uma próxima live

1:20:26: normalmente, e modelo de árvore normalmente você não precisa fazer seleção de features, tá? eu só faço mesmo quando eu preciso

1:20:32: por exemplo, colocar em produção e é muito difícil computar as features, aí eu removo algumas, mas em geral com o modelo de árvore

1:20:39: você deixar todas, vale mais a pena

1:20:43: como eu balanceio meus dados? Matheus, a forma que eu melhor gosto de balancear os dados é usando um argumento do scikit-learn

1:20:53: chamado class weight, basicamente ele vai dar pesos diferentes para o erro da classe que está desbalanceada

1:21:01: então é mais ou menos assim, se eu tenho 20% de dados positivos, ele vai fazer o seguinte

1:21:08: uma das maneiras de fazer isso seria multiplicar o erro dos dados positivos vezes 80 sobre 20

1:21:19: então quer dizer, quando o modelo vê um erro nos dados positivos ele vai tratar como mais importante

1:21:25: então, do ponto de vista matemático, você é mais ou menos como se o modelo estivesse enxergando o mesmo tamanho dos dados, tá?

1:21:34: essa é a forma que mais dá certo comigo, eu não gosto de resampling essas coisas, tá?

1:21:41: dá uma olhada na documentação do scikit-learn sobre class weight, sobre dar pesos diferentes para balancear os dados

1:21:49: que pode ir nessa técnica que é bem legal

1:21:53: deixa eu tentar responder rapidamente mais algumas outras perguntas aqui em 10 minutos

1:22:00: sobre as mescas de regressão, qual seria o maior impacto em usar RMSLE no lugar do RMSLE?

1:22:06: RMSLE é uma aproximação, vish, saiu um menos aqui, aproximação do erro percentual

1:22:17: então o que acontece, o RMSLE, se você tiver uma previsão igual a 100 e um Y igual a 10, ele vai tratar 100

1:22:30: aliás, me desculpe, se você tiver um Y99 e o P100, ele vai tratar como 1 ao quadrado, que vai dar 1

1:22:41: teu erro vai ser 1, R igual a RMSLE, ou MSLE, no caso, tá?

1:22:49: o MSLE vai fazer o seguinte, se o teu P for igual a 100 e o T1 for igual a 99, ele vai fazer o erro, vai ser igual ao log 100 menos log 99

1:23:04: ah Mari, mas por que isso é importante? Porque nesses casos, se você previu 4 e era 3, ele vai tratar diferente de se você previu 100 e era 99

1:23:17: então ele considera o erro percentual, em vez do erro, vamos dizer assim, da quantidade absoluta do erro

1:23:24: isso aqui vai receber uma punição bem maior do que o 100 e 99

1:23:30: basicamente por isso que eu gosto do MSLE quando eu estou fazendo previsão de vendas, alguma coisa que seja importante o erro percentual

1:23:38: Thais, Mari, estou avaliando as campanhas de produtos, comecei fazendo um teste de Porsche para avaliar a quantidade vendida dentro e fora do período de campanha

1:23:48: o que mais posso fazer como usar a ML? Exatamente desse jeito que eu falei aqui, decidi criar esse modelo que tem os dados da promoção

1:23:59: só que em vez da promoção você usa os dados de campanha como features e você pode basicamente dizer se ele recebeu uma promoção ou não e qual foi o alvo

1:24:11: Rodrigo Teoria, viu? Ficou um máximo de formato, legal, aliás pessoal, diz aí se vocês gostaram desse formato novo, fazendo com notebook e com a parte mais estratégica também

1:24:24: eu pauto as próximas lives dessa maneira também, tá? Aqui eu estou para ajudar você

1:24:32: Igor, boa noite Igor, legal ver você aí, você vê que hoje a live está um pouco mais longa

1:24:38: José Ângelo, Mário, em um dataset de umas 115 mil linhas, considerei com variável categórica aquelas em que o retorno da função NUnique era menor que 90

1:24:46: com isso ficaram de fora duas variáveis, uma com 130 valores únicos, outra com 20 mil valores únicos, só a quantidade máxima de valores únicos que vale a pena manter

1:24:55: você pode, você não precisa necessariamente desconsiderar como categórica, você pode usar uma codificação que seja interessante nesses casos

1:25:05: no caso você pode procurar, tem um vídeo aqui no canal sobre fazer a codificação de variáveis categóricas, mas eu recomendo que você procure o

1:25:17: SKLearnCategoricalEncoding, acho que chama, eu não lembro exatamente o nome dessa biblioteca, deixa eu ver aqui, CategoryEncoding

1:25:29: aqui, vou botar o link aí pra você, que acontece, esse aqui ele vai ter esse encoder aqui chamado, onde você está meu querido, TargetEncoder

1:25:44: o que é o TargetEncoder, ele vai usar o próprio Y pra, ele vai trocar, em vez de ter os níveis ali da categoria, aqui ele vai usar o Y pra ter uma estimativa da variável Y

1:25:55: pra esse nível de categoria, tá, é outra coisa que eu não vou conseguir explicar em detalhe aqui, mas dá uma olhada nesse CategoryEncoders

1:26:05: e aí você faz o seguinte, vê qual desses, eu gosto do TargetEncoder, mas vê qual desses você consegue usar pra codificar essa categórica

1:26:16: se você estiver usando LightGBM, ele tem um argumento chamado CategoryCategoricalFeatures, que você simplesmente faz o encoding das suas variáveis ordinal

1:26:29: então, 0, 1, 2, 3, tal, normal, fica em uma coluna só, e ele faz internamente essa codificação pra variáveis categóricas, pra ele separar ali nos splits da árvore, tá

1:26:44: então, colocar aqui, CategoryCategoricalFeatures é o argumento pra ele tratar de forma nativa dessas features categóricas, tá, se não, você pode tentar ordinal também

1:26:54: se for model de árvore, normalmente eles vão bem com ordinal, mas eu recomendo tentar testar o TargetEncoder aqui, lembre-se de fazer isso, o encoding no treino

1:27:05: e depois só transformar os seus arvores de teste de validação, tá, não faça o encoding antes de separar entre treino e teste, beleza?

1:27:15: aplicar um Pandas GetDumped e fazer um PCA também pode ser, também pode ser, funciona, eu particularmente gosto mais desses tipos de encodings aqui, tá

1:27:27: mas PCA eu já usei uma vez fazendo exatamente essa ideia, e deu legalzinho também, vale a pena tentar

1:27:35: legal, Marcos, sim, essa live vai ficar aí, então vocês podem assistir quantas vezes quiserem, tá

1:27:41: Jonathan, Livetop Legal, José Ângelo, One Hot Encoding, você poderia fazer um One Hot Encoding removendo os níveis mais raros, então, por exemplo

1:27:51: níveis que aparecem menos de 5 vezes, sei lá, remove ou transforma para um nível comum, tá

1:28:07: então tudo aquilo que tiver menos de 5, aparecendo menos de 5 vezes no seu data set, você substitui por uma palavra raro, por uma palavra

1:28:14: sabe, que coloque tudo na mesma categoria, tá, ou pouca frequência, um negócio desses assim, e aí vai reduzir bastante o número de

1:28:25: de variáveis categóricas, de níveis categóricos que você tem, José Romais, isso lá é muito boa, legal, que bom que vocês gostaram, pessoal

1:28:36: Como você escolhe o algoritmo para cada problema, você aplica vários e vê qual dá o melhor resultado? Sim, geralmente eu começo por algoritmos de árvores, então

1:28:44: Random Forest, Light GBM para dados tabulares e redes neurais para dados de imagem, vídeo, áudio, tá, texto também gosto de testar, modelos lineares também

1:29:08: Lineares, sempre testo um ou outro para ver, inclusive eu terminei de gravar as aulas do curso esta semana e é legal porque a solução final de um

1:29:23: negocinho que eu fiz lá, um projetinho que eu fiz lá para pôr no curso, tem um ensemble de modelo linear com árvore, ficou bem interessante, é legal

1:29:33: Finalizando o tratamento dos dados, fiquei com apenas 10 colunas numéricas, com valores parecidos, média próxima, interessante aplicar standardizatou

1:29:41: Vai depender do modelo que você vai usar, modelo de árvore não precisa de standardizatiu, se for modelo linear, SVM, rede neural você precisa fazer isso

1:29:53: E aquele negócio, testa e vê se funciona melhor com o standardizatiu, com o scaling ou se não precisa, pessoal é isso ai vocês já devem estar cansados de mim

1:30:04: Eu preciso comer alguma coisa e também estou bem cansado hoje, muito obrigado por acompanhar essas lives, nós estamos na 7ª live, muito obrigado por acompanhar o canal

1:30:17: As dicas, mandar perguntas, interagir, é muito legal fazer isso aqui, eu espero que consiga continuar trazendo valor para você

1:30:27: E está chegando um ano novo, tem o meu curso que eu vou lançar, vai ter mais conteúdo aqui no canal, o canal não para, o instagram não para nada

1:30:37: Continua melhor porque eu estou ficando melhor aqui em saber o que é o conteúdo legal para você

1:30:44: Então muito obrigado, vocês tenham um ótimo Natal, um ótimo ano novo, 2020 vem ai para a gente arrebentar essa área de data science de uma forma boa

1:30:54: Então muito obrigado e até o ano que vem, no Natal e no ano novo nós não teremos live, mas no dia 8, acho que é a quarta-feira depois do ano novo

1:31:07: Eu estou de volta aqui, mas se cadastra lá no email que você recebe a mensagem de quando tiver a próxima live

1:31:15: Muito obrigado, deixe seu like, compartilhe a live e até a próxima, um abraço