Se prepare para entrevistas de vagas de Cientista de Dados | Hipsters: Entrevista de Emprego Tech

3.89k views11854 WordsCopy TextShare
Alura
Quer se preparar para entrevistas de emprego de vagas de cientista de dados? Esse vídeo vai te ajuda...
Video Transcript:
[Música] E aí pessoal bem-vindos a mais um episódio da nossa web série aqui da alura o hipsters entrevista de emprego Tech a gente já teve uma focada na carreira de frontend e hoje ela vai ser focada na carreira de dados de ciência de dados a gente vai falar bastante de Python também E para isso eu tô aqui com a professora Ana Raquel que Ela é professora aqui na FIAP especialista em ciência de dados tudo bem Ana Raquel tudo bem Fabrícia e você bom E aí galera é um prazer estar aqui com vocês para poder fazer
essa entrevista né Fabrício Então bora lá pessoal bora lá explicando para vocês como é que vai funcionar aqui a gente vai simular realmente uma entrevista de emprego para uma posição de cientista de dados então eu vou fazer o papel de entrevistador e a professora Ana Raquel vai fazer o papel de candidata e nessa primeira parte aqui a gente vai ter as perguntas técnicas que eu vou fazer para Ana Raquel e depois a gente vai ter uma segunda parte que é o Projeto técnico onde vai ter uma parte ali de Live coding que poderia ser um
código usado realmente em uma entrevista então Começando aqui na nossa primeira parte as perguntas técnicas tá preparada candidata n tô preparadíssima vamos lá Fabrício perfeito Então a primeira pergunta aqui é o que você faz no seu dia a dia como cientista de dados bom no meu dia a dia como cientista de dados a gente trabalha ali muito com a parte de análise exploratória do dados né então a gente pode muitas vezes até fazer uma extração ali no banco de dados utilizando uma Guma selects né que é utilizando linguagem SQL né então manipula ali os dados
extrai os dados Analisa esses dados e aí vem a parte ali principal de um cientista de dados que a gente criar os modelos preditivos Só que até a gente chegar na ponta do modelo preditivo vai muito trabalho pela frente né então o principal trabalho ali é muito lidar com dados estatística e os algoritmos de machine learning Deep learning e assim por diante então então meu dia a dia basicamente são Dados o tempo todo muito bom e se eu te der uma base de dados que você nunca viu antes quais seriam seus primeiros passos para você
começar a entender começar a lidar com ela bom quando a gente recebe uma base que nunca viu antes né o que eu faço normalmente é começar a conhecer esses dados então o primeiro passo é eu vejo a estrutura desse dado porque muitos dados nem sempre vão tá tabulares né como por exemplo um banco de dados que tem ali uma tabela que a gente pode extrair e exportar um Excel se V Então dependendo do formato do dado eu vejo se precisa tratar se precisa tratar primeiro eu trato ele e depois eu pego esses dados e começo
conhecer eles então aí que entra A análise exploratória dos dados eu vou começar ali a fazer alguns histogramas algumas estatísticas descritivas plotar alguns gráficos para poder aqui nesse cenário identificar se tem alguma anomalia conhecer Quais são as minhas features que são as colunas né então é todo um passo ali de conhecimento desse dado porque eu preciso entender realmente o que informação aquela base traz Então aí nesse processo é um longo caminho digamos assim né a gente passa muito tempo analisando conhecendo mesmo esses dados e você falou sobre esse caminho eu queria que você explicasse Como
é o ciclo de vida de um projeto completo de data Science bom quando a gente fala do projeto de data Science começa ali na parte realmente dos dados então a gente pode receber uma base de dados ou extrair essa base e com essa base a gente vai começar a etapa de conhecimento dela então eu faço ali um um data Explorer né começo a analisar aqueles dados conhecer eles fazer algumas estatísticas depois que a gente conhece os dados eu começo a fazer a etapa de feature engineer que a gente fala que é o selecionar Quais são
os melhores features para poder responder aquele meu problema de negócio no meu modelo preditivo posso aplicar também técnicas de normalização padronização E aí depois que eu deixo esse dado todo estruturado para poder deixar ali eh possibilitar o uso dele dentro do algoritmo eu posso fazer a modelagem então na modelagem a gente faz a a seleção de qual que é o melhor modelo preditivo ali De acordo com o meu cenário meu cenário Digo qual o tipo de base que eu estou trabalhando porque a gente tem bases que podem ser para modelo supervisionado não supervisionado né então
eu seleciono ali com algoritmo e esse esse processo essa etapa também pode ser longa porque eu posso fazer vários testes e eu também preciso ver se os meus dados não TM desequilíbrio de classes aqui vai muitos cenários né então faço toda essa minha modelagem depois que eu faço A modelagem chegou a hora da gente validar esse modelo então aqui entram técnicas estatísticas pra gente poder validar como por exemplo acurácia precisão revocação né e depois que eu validei e eu de fato vi que esse modelo está bom para ser utilizado no mundo real ele consegue generalizar
novos dados eu vou pra etapa de Deploy Então dentro desse ciclo que a gente falou aqui tem muitas pequenas etapas dentro dele mas de forma geral a gente pode resumir em extração análise dos dados Fure engineer modelagem do algoritmo e depois a gente faz o Deploy desse modelo aí pode ser numa aplicação em alguma ferramenta muito bem candidata falando sobre Python que é uma das linguagens mais usadas dentro da ciência de dados você Pode listar as bibliotecas Python que você mais usa no seu dia dia como cientista de dados claro como cientista de dados a
gente usa principalmente aqui a c learning que é uma ferramenta aqui que é meu xodozinho porque ela tem muitos ali algoritmos e ferramentas para trabalhar com preparação de dados mas a a gente também tem algumas que são essenciais Como por exemplo o pandas para manipular os dados e aí quando a gente também fala de dados que são um pouco mais um cenário de Big datata podemos colocar assim a gente pode utilizar também um Spark né para poder manipular melhor esses dados também utilizamos muito no num pai que é para trabalhar com matrizes porque um Data
Frame nada mais nada menos é uma matriz também a gente trabalha com as bibliotecas gráficas que aí a gente tá falando de Mat plot Lib cbor também gosto muito do plot li quando eu quero explotar algo ali mais interativo Então essas são as principais muito bom e quando você cria o modelo de previsão Qual é a diferença entre o conjunto de dados de treinamento e o conjunto de dados de teste e qual é a porcentagem que você geralmente escolhe para cada um bom quando a gente tá falando da técnica de separação dos dados a gente
tem a técnica tradicional que é essa que de separam em treino e teste que a gente fala que a técnica de holdout então Normalmente eu deixo de 70 80% ali para o treinamento do algoritmo e de 20 a 30 para teste e por que que a gente deixa a maior porcentagem a maior proporção ali para treinamento justamente porque eu preciso ensinar para esse algoritmo quais são ali os padrões daquela base como que aquelas features se comportam por isso que eu tenho que ter uma maior amostragem e aí a gente vai testar numa base menor que
seria de fato ali uma representação de dados que o meu modelo nunca viu anteriormente então a ideia aqui eu fazer com que ele aprende e teste um novo cenário Então esse é o método tradicional mas a gente também tem algumas outras técnicas que são mais avançadas que é a validação cruzada por exemplo muito bom e falando sobre dados ainda existem uns dados que são chamados de outliers você pode explicar para mim o que eles são e quais são as principais técnicas para lidar com esses outliers sim quando a gente fala de outliers eu estou falando
que são Dados fora ali da curva normal então para explicar aqui pro pessoal que ainda não não Talvez um não conheça O que que é uma curva normal quando você pega uma distribuição de dados e você plota ela no histograma você pode analisar se aquela distribuição tem uma curva gusana que a gente fala se aqueles dados estão fora dessa curva que ela teria ali como se fosse um um símbolo de um sino por isso que né a gente faz Associação com a curva do Sino significa que eu tenho uma distribuição assimétrica Então ela pode estar
mais concentrada em algum lado esquerdo ou direito e isso nos mostra e deixa Evidente pra gente que tem Aires na base outlier são Dados que estão fora dessa curva ou seja fora desse padrão tá fora ali da minha maior concent tração dos dados então pode ser alguma discrepância que teve na base algum input errado mas também pode ser um Insight então não costumo dizer que outlier sempre é um problema ele sempre vai ser um valor ali que tá fora daquela amplitude ali quando a gente fala de limite inferior e superior ele passa daqueles limites Até
mesmo porque se a gente utilizar um gráfico de box plot para analisar que aí é mais fácil ainda ele vai deixar aqueles pontinhos ali fora daquela distribuição principal dos dados então esses são os outliers e para realizar o tratamento Fabrício a gente tem aqui vários cenários eu acho que depende muito então eu posso por exemplo analisar a minha base de dados aquela coluna que eu tenho a ler eu poderia verificar por exemplo se ela tem ali realmente uma distribuição muito eh discrepante não é normal eu poderia fazer uma inferencia com esses outliers ali analisar que
ali aquele pedacinho de dados que eu não tenho outliers colocar por exemplo uma mediana para representar aquela informação para deixar ali uma representação geral daquel aquela base dentro daquela coluna com outlier ou se for uma anomalia eu posso Em algumas situações até remover eles mas aqui eu acho que vai muito Depende muito do negócio que a gente vai est tratando não é uma Regra geral candidata O que significa eu dizer que eu tenho um conjunto de dados desbalanceado e como que eu trato isso bom esse problema de desbalanceamento ele é muito real né e de
fato é quando a gente tem ali proporções na classe que estão desequilibradas Então vamos pensar aqui um cenário que eu tenho um modelo de algoritmo para poder tratar ali caso binário então zeros e um vamos supor que a minha classe um eu tenho maior representação do que a classe zero Então por que que isso pode ser um problema porque se eu treinar um algoritmo ele vai ter ali mais conhecimento da minha classe um do que a minha classe zero Então a gente vai deixar minha base viciada na classe um vai ficar vai dar ali um
certo enamento então pra gente tratar tem algumas técnicas que a gente pode falar aqui por exemplo de oversampling que que é quando eu pego essa minha classe que eu tenho menor representação e eu Posso duplicar ali a a representação ali do número dessas classes para poder equilibrar ou deixar quase próximo ali da minha classe que eu tenho maior representação Mas essa é uma das técnicas também em alguns casos poderia ser ali o o cenário de você coletar mais dados para poder representar aquela classe porque quando a gente vai duplicar esses dados Eu também preciso garantir
que eles têm qualidade porque se você duplicar ali lixo não adianta nada né então tem que ser ali algo representativo e em machine learning eu queria que você me explicasse Qual é a diferença entre aprendizado supervisionado e não supervisionado e quais são os principais algoritmos usados em cada um deles tá o aprendizado supervisionado é quando você tem na sua base de dados o rótulo que a gente fala que é target Então por que que ele é supervisionado eu tenho ali minhas features que são minhas características Então as minhas colunas e essas minhas colunas elas representam
uma resposta então elas são independ então a gente fala que são características independentes e a minha target Ela depende dessas características Então sempre que eu tenho essa situação de rótulos e pode ser esse rótulo uma classe ou até um número que a gente entra em regressão É um cenário de modelo supervisionado modelo não supervisionado já é quando eu não tenho conhecimento desse rótulo então eu tenho ali por exemplo uma base de dados que eu tenho ali algumas características e eu quero encontrar similaridade Entre esses dados então normalmente a gente parte ali para técnicas de clusterização
para você poder agrupar esses dados utilizando alguma medida ali de distância para encontrar alguma semelhança Então essa é a grande diferença que a gente tem entre esses dois e os principais algoritmos de cada um de aprendizado supervisionado a gente pode falar regressão linear regressão logística rendow Forest e decision 3 que é o modelo de árvores tradicional mesmo né a gente pode falar de KNN a gente pode até falar aqui de Deep Learns algumas Deep Learns também entram nesse cenário como multilayer percep então são alguns algoritmos que a gente tem PR o não supervisionado a gente
tem os algoritmos de cluster então camins cedid DB Scan cluster hierárquico são alguns modelos que a gente tem para resolver esse tipo de cenário muito bom candidata O que são o overfitting e o underfitting bom o overfitting é quando a gente executa ali um modelo de aprendizado de máquina e ele simplesmente decorou os dados que você tinha ali no seu treinamento e como que eu posso Observar isso no meu modelo quando tô avaliando ele normalmente você vai ter um resultado muito bom na performance no teste no treinamento quer dizer e no teste você vai ver
que ele deu ali um percentual baixo ou seja ele aprendeu somente aquele treinamento decorou Então esse é o overfitting o underfitting é quando a gente tem uma situação aqui meio contrária você tem ali um baixo aprendizado no algoritmo então tanto a minha base de teste quanto de Treinamento elas não atingiram ali um um ideal digamos assim que um limar ideal para eu falar que aquele modelo Está bom então tem aconteceu alguma deficiência ali que que ele não conseguiu aprender aqueles dados você pode citar você pode citar algumas técnicas que são mais propensas a overfitting e
outras a underfitting falando falando em questão de algoritmos né bom quando tem alguns algoritmos que a gente executa como por exemplo vamos falar aqui regressão linear regressão linear ele é uma equação simples então pode ser que alguns modelos de regressão linear ele possa ali causar o cenário do underfitting Aí talvez você tenha que aplicar ali alguns termos de regularização na equação dessa coeficientes da equação para poder deixar o modelo um pouco ali mais ajustado aos dados então falando agora de overfitting eu posso ter ali alguns algoritmos que Como por exemplo o randle force ele é
um algoritmo que ele é ali de fato utilizado para ser mais robusto então ele pode nos trazer ali uma resposta legal quando você quer simplesmente também fugir ali do overfitting mas se você também coloca ali alguns hiper parâmetros e por exemplo muitos números ali de Ram ações dessa árvore pode gerar justamente o overfit que a gente tá querendo fugir então aqui você vai ter que aplicar algumas técnicas de podas nessa árvore então tomar cuidado em alguns modelos que eles podem ser mais você pode citar algumas técnicas que são mais propensas a overfitting e outras a
underfitting falando falando em questão de algoritmos né bom tem alguns algoritmos que a gente executa como por exemplo vamos falar que regressão linear regressão linear ele é uma equação simples então pode ser que alguns modelo de regressão linear ele possa ali causar o cenário do underfitting Aí talvez você tenha que aplicar ali alguns termos de regularização na equação dessa n coeficientes da equação para poder deixar o modelo um pouco ali mais ajustado aos dados então falando agora de overfitting eu posso ter ali alguns algoritmos que Como por exemplo o randle force ele é um algoritmo
que ele é ali de fato utilizado para ser mais robusto então ele pode nos trazer ali uma resposta legal quando você quer simples simplesmente também fugir ali do overfitting mas se você também coloca ali alguns hiper parâmetros e por exemplo muitos números ali de ramificações essa árvore pode gerar justamente o overfit que a gente tá querendo fugir então aqui você vai ter que aplicar algumas técnicas de podas nessa árvore então tomar cuidado em alguns modelos que eles podem ser mais propensos para overfitting por conta ali da robustez né dos ziper parâmetros e alguns que são
muito simples e podem gerar também um wonderfit então aqui a gente tem que ficar ali é mexendo né no ziper parâmetros calibrando esses ziper parâmetros ou até mesmo testando outros modelos muito bom e o que é o p velho e o que significa eu dizer que o meu pivel é alto ou baixo bom o pivel a gente utiliza em testes estatísticos Então os testes de hipóteses normalmente e a a gente tem os paramétricos não paramétricos né a gente tem vários cenários mas esse valor específico do pivel a gente vai utilizar ele como um limar de
decisão para falar se aquela hipótese que a gente tá perguntando ali paraos nossos dados ela pode ser a ali considerada como verdadeira ou falsa então você vai ter ali a sua hipótese alternativa que é o que a gente tá querendo encontrar que é a H1 então se eu tenho aquele valor ali o pivel al normalmente é 0.05 se eu tenho aquele dado né quando eu fiz o teste ele deu algo abaixo de 0.05 significa que eu consigo comprovar de forma estatística que aquela hipótese é verdadeira e isso eu tenho algo que dá acima significa que
não é comprovado não tenho ali eh uma amostra suficiente para comprovar né não tenho ali de fta uma comprovação estatística O que é uma matriz de confusão e quais são as principais medidas que eu consigo obter a partir dela Matriz de confusão a gente utiliza quando eu executo ali o modelo e eu eu coloco ali né Em contrapartida os dados que eu tenho reais versus os preditos então ele cria mesmo uma matriz na qual você vai ter os verdadeiros positivos falsos positivos toda aquela avaliação né que a gente visualiza na matriz e se eu olhar
ela analisar ela eu consigo observar o quanto que eu estou errando mas só que e ela pode ser melhor ainda se você utilizar por exemplo o que a gente usa no cych learning que é o classification report que ele traz pra gente algumas métricas que você consegue obter com base na na matriz de confusão que é a precisão revocação F score e acurácia e também dá para ser calculado em cima da Matriz de confusão a curva rock então falando um pouquinho que cada uma dessas métricas é a A precisão é quando a gente tem ali
o cálculo né ten uma representação de quantos verdadeiros positivos eu consegui classificar em cima da minha base né então de fato o que Aonde que eu fui preciso ali nas minhas classes positivas a Evocação é o quanto que eu acertei daquela classe que realmente era daquela classe então a Evocação a gente usa mais para calcular a sensibilidade então é uma métrica bem importante quando você tá lidando ali com modelos que são mais sensíveis então por exemplo vou fazer um modelo preditivo para classificar se uma pessoa tem câncer ou não é uma decisão muito sensível então
seria uma boa métrica para você avaliar a qualidade desse modelo o F1 cor é uma média harmônica entre a precisão e a vocação e a cura é a medida mais simples que tem porque ela calcula ali o percentual de acertos que você tem no seu modelo então não é uma medida que eu recomendo muito porque ela é muito básica eu sempre falo pra gente olhar pras demais métricas que a gente tem porque elas são mais confiáveis candidata como você numa posição de cientista de dados define Qual é o melhor modelo para um determinado problema desses
todos algoritmos que você citou por exemplo Bom eu acho que cada problema vai ter desafio então a gente não pode trazer uma receita de bolo pro pessoal mas eu acho que para eu saber qual vai ser o melhor eu faço vários testes então eu eu vejo Qual que é o meu tipo de aprendizado que eu tenho seleciono alguns modelos testo esses modelos e eu faço ali uma validação entre eles para ver qual se performou melhor ou seja o que quer performar melhor qual que conseguiu generalizar melhor desses dados então pode ser alguns problemas que alguns
cenários de problemas de negócio que eu tenho algoritmos que resolv de forma mais simples né ou às vezes eu preciso partir para algo mais robusto como os métodos de ensemble as Deep learning Então acho que depende muito ali dos nossos dados também a complexidade dos dados você pode explicar para mim qual é a diferença entre regressão linear e regressão logística regressão linear é quando a gente tem ali uma equação que eu vou tentar eh verificar Quais são os coeficientes que me Tragam me trazem né aquela reta linear Ou seja eu quero estimar esse essa minha
reta que seria a minha predição então ele é um modelo linear então a que você tentar encontrar Quais são os dados que vão estar mais próximos dessa linha linear então a ideia aqui é o Minimizar esse erro já a regressão logística a gente tá lidando ali com dados binários então diferente da regação que eu tenho uma reta né E a gente vai tá tentando também aqui de no caso estimar valores e que são contínuos né na regressão logística eu tenho ali a a sigmod que é aquele sezinho então ele tem ele trabalha aqui com a
encaixar aquele aquela predição em probabilidade de zero e um então eu vou ter um limar ali 0.5 e a regressão logística vai tentar fazer com que a função de custo Gere menos erro e tentar colocar nessas predições então a principal diferença é que uma para valores contínuos e a outra é para de fato ali lida melhor com o cenário binário né então classificação binária ali de dados Você pode me explicar como funciona o modelo de Floresta aleatória que chamado em inglês de Random Forest bom para falar de randle Force a gente precisa falar um pouquinho
de árvore decisão que é decision 3 árvore de decisão ele é um modelo ali básico tradicional que ele trabalha em cima de condições e fses mas não é só e fieles né ele também é trabalha ali com entropia dos dados então ele seleciona qual que é o meu dado ali que tem a menor impureza para começar a criar o nó então com esse nó é uma pergunta que ele faz pro dado e ele vai começando a tomar as decisões com base das cificações até chegar a uma folha que é a resposta da predição Então essa
é uma árvore de decisão quando a gente fala de randle Force seria de fato ali um conjunto de árvores AL aleatórias e são árvores aleatórias Por quê eu posso aqui criar várias árvores por exemplo 100 árvores de decisões e elas são feitas ali com dados aleatórios então cada uma vai ter uma representação diferente dos dados e essa técnica a gente fala que até o Bootstrap né que eu pego dados de forma aleatória coloco em cada uma dessas árvores e o modelo ele vai analisar dentro de todas essas árvores qual que se comportou melhor ali então
ele tira por exemplo a moda para ver quais são ali os os cenários ideais para falar que aquela árvore mais potente então é um método que a gente fala de ensemble a Rand Forest e esse método ele costuma funcionar melhor para quais tipos de problemas Quando a gente tem por exemplo dados que são complexos E você tem algum modelo ali que foi falho ficou muito simples por exemplo uma decision 3 simples você rodou e viu que teve uma certa curaça ali obtida ou alguma medida de precisão normalmente a gente utiliza o rendow force para poder
lidar com a sua complexidade e tem um ponto interessante também aqui que a gente pode falar de randle force é que consegue lidar com dados desbalanceados tem prep parâmetros que lidam com essa distribuição de pesos representativos para quando eu ten um desbalanceamento parecido com act boosting também candidata O que é a validação cruzada e como que ela é usada bom a validação cruzada ela é um método que a gente pega ali o nosso conjunto de treinamento e a gente vai separar ele no chamado scaffolds Esse scaffolds é como se fosse al fosse ali mini conjuntinho
de dados que você consegue particionar essa base de dados e ele consegue treinar ali o seu algoritmo com cenários aleatórios diferentes então o benefício da do da validação cruzada é que você consegue criar representações diferentes ali na hora de treinar o seu algoritmo e isso faz com que o seu seu treinamento ali o resultado não fique enviesado eu consigo generalizar né os dados utilizando ali aquela estratificação de forma diferente no scaffolds então é uma técnica bem robusta quando a gente quer de fato comprovar que aquele modelo vai conseguir eh generalizar bem dados no mundo real
Quais são as principais diferenças em problemas de séries temporais quando a gente fala de modelos tradicionais eu tenho ali dados que você tem as features tabulares né Você pode ter ali uma target tá então eu tenho ali dados que são tabulares mas eles não são Dados que a gente fala arbitrários né então quando eu tô falando em em time series séries temporais eu tô lidando ali sempre com o tempo o tempo a gente sabe que tem sequência né as datas elas são seguidas uma da outra e a informação ela vai est correlacionada com a data
Então eu tenho essa sequência de tempo e eu não consigo aqui mudar a ordem desses dados eu tenho que seguir essa sequência então a grande diferença aqui é eu tenho dados que são arbitrários que eles têm uma dependência ao longo do tempo para poder fazer um sentido né ter uma correlação e os modelos tradicionais ali a gente não tem essa dependência eu posso alterar ali a ordem das das das features e não vai impactar meu modelo diferente de séries temporais e quais são os principais algoritmos para você lidar com séries temporais bom para lidar com
séries temporais a gente tem alguns os modelos tradicionais como o arima o sarima né até uma regressão conseguiria também trabalhar aqui com séries temporais mas tem alguns que a gente fala que são os favoritinho Como por exemplo o profect né que ele é da Meta né do Facebook ele é um algoritmo bem poderoso para poder lidar aqui com questões de sazonalidade né que a gente pode ter ali na série temporal algum alguma informação nula Então são modelos bem robustos que a gente tem também poderia utilizar aqui algumas Deep learnings como por exemplo lstm que é
o modelo ali de long short term Memory né que é uma rede que trabalha ali com dados também de sequências ao longo do tempo então ela leva leva em consideração ali um GAP de informação passada então a gente costuma ter resultados muito bons também da lstm com séries temporais e uma última pergunta agora n nossa primeira parte é qual é a diferença entre machine learning e Deep learning que você acabou de mencionar bom machine learning e Deep learning a gente pode ter ali os dois cenários de aprendizagem supervisionada e não supervisionada mas para mim A
grande diferença é na complexidade dos dados e então por exemplo eu posso também aplicar o mesmo cenário de um algoritmo de classificação de machine learning e uma multilayer percep por exemplo só que se eu tenho um grande volume de dados esses dados são muito robustos complexos Talvez uma Deep learning pode performar melhor ali do que um aprendizado de máquina tradicional e aí tem alguns cenários Por exemplo quando a gente trabalha com texto trabalha com imagens com áudios normalmente Deep learn também lida melhor com esses dados Porque de fato eles são não estruturados né Então a
gente tem modelos ali específicos então por exemplo para texto eu posso trabalhar com Word vc né que é uma Deep learning também para trabalhar com análise de predição de Com base no contexto né a gente pode trabalhar também com as redes convolucionais que é para imagens Então a gente tem um cenário mais mais complexo para Deep learning mas acho que aqui a dica é a gente precisa validar se realmente aquele problema de negócio pode ser resolvido com Deep learning ou machine learning porque tem muita gente que gosta de matar a Puga com canhão né então
acho que tem validade a necessidade para ver qual o melhor cenário Bom eu acho que essa primeira parte da entrevista foi muito bem com a candidata Ana Raquel e agora a gente vai pra segunda parte da nossa entrevista de emprego Tec pra vaga de cientista de dados onde eu mandei o enunciado de um projetinho um projeto real que poderia fazer parte de uma entrevista para cientista de dados para uma vaga de cientista de dados então eu vou ler para vocês inicialmente o contexto desse enunciado que seria você é um cientista de dados em uma instituição
financeira renomada a empresa está enfrentando um aumento significativo nas transações fraudulentas de cartão de crédito o que está prejudicando a confiança dos clientes e causando prejuízos financeiros a sua tarefa é desenvolver um modelo preditivo que possa identificar transações fraudulentas com alta precisão minimizando assim o impacto financeiro e protegendo a reputação da instituição E para isso você vai ter acesso a uma base de dados que vai ser a fraud underline dataset.csv que contém informações detalhadas sobre as transações de cartões de crédito bom então vamos lá para fazer esse esse desafio aqui Fabrício eu recebi um csv
que eu já tô fazendo download dele aqui tá então com esse csv eu decidi fazer a prova aqui no Google collab porque a gente consegue aqui trabalhar bem legal com python né já tem as algumas bibliotecas que já são instaladas aqui na ativas Então já ganha um tempo aqui pra gente também então aqui no meu Google Drive eu criei uma pastinha aqui prova e aí eu vou vir aqui em novo vou abrir um novo Google collab né ó Google colaboratory vou abrir aqui ele e eu já vou deixar aqui fazendo o download dessa base de
dados porque eu vi que ela é bem pesada e eu vou voltar no cas para ler também entender um pouquinho mais os detalhes Então vamos nomear aqui como prova então vou deixar ele fazendo um download aqui porque ele é meio pesado né ó mas ele vai começar a fazer fral dat 7 PSV e eu vou voltar aqui na prova para ver o que que estão pedindo para eu poder resolver né bom ele fala que a base de dados é essa eu já fiz aqui tô importando ela lá no colab e fala que o objetivo é
desenvolver o modelo preditivo utilizando algoritmo de regressão logística com regularização L2 para prever se a transação de crédito né da do cartão de crédito ela vai ser fraudulenta ou não exato bom então eu já sei aqui que eu vou ter que utilizar um algoritmo de regressão logística e eles estão pedindo aqui em específico um hiper parâmetro que é de regularização L2 né então a regularização ali ela atua dentro do algoritmo para poder lidar justamente com a questão do overfitting que a gente até conversou na entrevista então eu sei que se eu entrar lá na biblioteca
do e da regressão logística do S learner eu vou ter que achar Qual que é o hiper parâmetro que traz esse tipo de regularização então já é um um ponto aí que a gente vai ter que fazer e aí ele pede o pré-processamento dos dados então tem alguns requisitos que eles querem visualizar na minha entrega né então eles querem que eu Verifique se tem informação nulas então eu vou ter que deixar isso evidente lá na base eu vou ter que utilizar aqui a padronização para variáveis numéricas então vou ter que aplicar aqui a utilizar ali
o Standard Scar no caso vou ter que dividir aqui a base de dados eles estão pedindo para utilizar a técnica de holdout que é aquela tradicional que a gente conversou de 80% treinamento e 20% teste para e garantir aqui que as proporções estão adequadas né e eu vou ter que verificar se não tem nenhum tipo de desequilíbrio nessa minha de dados se tiver eu vou ter que aplicar ali técnica de oversampling que aí eu posso até pensar na biblioteca mul para resolver esse problema modelagem vou ter que fazer aqui tá falando algoritmo né com a
regularização L2 e ele tá pedindo aqui técnica de validação cruzada com cinco folds e eu vou ter que avidar aqui o modelo né com a curva rock com precisão revocação F1 score e eu vou ter que fazer uma análise aqui comunicação dos resultados bom então acho que primeiro passo a gente voltar aqui pro Python né ó ele tá ainda carregando a base que é bem pesada mas eu vou começar aqui a importar o pandas porque é o que a gente vai começar aqui para trabalhar com os dados né então vou colocar Import pandas SPD vou
deixar ele aqui já E aí eu vou para poder e já deixar todo o passo documentado eu vou colocar aqui quais são os passos que eu vou fazer então eu vou aqui subir né subir a base de dados e verificar se existem dados nulos porque eles querem que eu deixo de fato aqui evidenciado né Que Eu verifiquei se tem dados nulos então eu vou fazer aqui nessa linha de código logo em seguida então ainda tá carregando porque ele é bem pesado aqui mas eu já vou começar a criar aqui a estrutura eu vou colocar essa
base de dados chamar DF igual vou colocar pdre under csv porque é uma base csv e aqui D dentro eu vou colocar o nome dela que no caso eu vou colocar dentro de aspa simples eu vou colocar aqui fraud underline dataset ponto csv bom logo depois eu vou colocar aqui um DF pon ré para eu poder analisar os dados e aqui eu vou ter que aguardar ele subir porque a base é bem pesada bom ele terminou aqui de subir pra gente né o csv Então vou fechar aqui essa pastinha e com o comando aqui já
Prontinho eu vou dar executar ele com control enter ou você pode também vir aqui e executar essa essa flechinha aqui tá bom Aqui o Red é comando pra gente ver primeiras linhas cinco linhas né então ele tem aqui algumas colunas como distância da casa distância da última transação né tem aqui a relação de preço e Médio gasto da pessoa se for no mesmo varegista se utilizou chip o pin do número ali do talvez do cartão né se se usou sim ou não se foi uma transação online e tem ali a fralde bom olhando para essa
base de dados já consigo identificar como é para identificar fraudes né eu já vejo que essa Coluninha aqui fraude ela vai ser minha target tá então vou começar a fazer aqui os próximos passos que eles pediram que é identificar se tem dados nulos então colocar aqui df. snul que vai ser a função para calcular os nulos e vou colocar um ponto Sama aqui para Opa para eu poder ver de fato se eu tenho ali uma somatória se realmente tem colunas duas então não Tenho Então já não vou ter que fazer nenhum tipo de tratamento mas
fiquei curiosa aqui também para ver qual que é a dimensão desses dados vou colocar um df. shape 1 milhão de registros não é por isso que demorou um pouquinho aqui para fazer o upload da base bom Beleza quando a gente volta aqui pro Case n eles falaram aqui para eu subir a base de dados verificar se não tem nulos beleza tá falando aqui pra gente já realizar a padronização das variáveis numéricas mas antes de fazer essa verificação de padronização tem um ponto aqui que eles falaram da questão de Equilíbrio da classe né que me chamou
atenção e eu já vou logo de cara analisar se eu tenho um desequilíbrio aqui de classes né então eu vou até já colocar um texto aqui para poder mapear Eh vamos colocar aqui ver verificação de desequilíbrio de classe que no caso aqui vai ser a nossa fraud né bom então para ver esse desequilíbrio de classe Vou colocar aqui DF aí eu vou chamar a minha coluna de fraudde opa chamou aqui o nome dataset não fraud aí eu vou colocar aqui o ponto value counts só que aqui eu vou querer fazer uma análise de proporção né
então para fazer essa análise de proporção eu vou fazer o seguinte eu vou fazer aqui uma normalização na qual vou pegar quando a gente chama esse value CS aqui dentro eu posso colocar o tem um termo que chama normalize que eu vou colocar aqui go true ó ele até dá ali como dica de código pra gente complementar né quando eu faço esse normalize go true ele vai fazer ali uma representação de percentual pra gente então pra gente mostrar aqui em valores de percentual vou fazer aqui vezes 100 e aqui tudo esse código eu vou deixar
ele arredondado Então vou colocar aqui um round Tá certo e eu vou colocar aqui para duas casas deci maisis pra gente deixar uma visualização bonitinha bom então bem assim é bem um Case real mesmo que a gente tem de fraud normalmente a proporção de frud Ela é pequena né então ou essa essa variável um aqui indica que sim é um fraud então eu tenho 8% da minha base vamos dizer assim se eu arredondar tipo 9% né como se fosse 9% de fraudes e 91% não fraudde então eu tenho aqui equilíbrio sim de classe eu vou
ter que tratar esse desequilíbrio bom para antes de tratar esse desequilíbrio eu vou começar aqui a trabalhar com a a questão da padronização só que o que acontece aqui eu já peguei a pegadinha deles se a gente vai aplicar padronização dos dados ou normalização isso vai impactar ali na estrutura da da não na dimensão mas a escala dos dados então eu vou tentar deixar ali as escalas numa mesma proporção porque se a gente olhar aqui essas colunas mas eu tenho questão de quilômetros Vamos pensar assim eh dinheiro né que é uma relação média de ali
do gasto da pessoa então não se conversam aqui as escalas eu preciso de fato tratar ela com padronização que eles pediram específico aqui a padronização mas eu preciso primeiro aqui separar os dados em treino e teste que é a técnica de holdout por se eu aplicar a padronização na base inteira eu posso deixar aqui ou acontecer um um fato aqui que pode acontecer nos dados que a gente fala que que é data Lick vazamento de dados é quando você deixa todo o dado ali padronizado aquela base ali de dados e quando você for dividir em
treino e teste não vai fazer sentido porque a ideia do teste é representar um dado que você nunca viu antes então pode vazar estatísticas então a gente normalmente primeiro separa em treina e teste depois que eu aplico o Standard SC aqui no caso Então foi uma pegadinha aqui que eles colocaram né mas eu vou começar primeiro a separar esses dados boa percepção sim eu vou colocar aqui da base em treino e teste e aí eles colocaram ali para eu colocar uma proporção ideal Então vou colocar aqui técnica de holdout e eu vou falar que é
80% aqui treino e 20% teste bom eu vou agora para fazer esse trabalho eu vou importar lá do learning né então esc learning esc learning aí a gente vai chamar aqui o Model selection ol até atrás pra gente né E aí Vou colocar aqui Import train test split porque essa biblioteca ela tem ali pra gente algumas funções algumas classes né digamos assim que consegue trabalhar com essa separação dos dados para poder fazer essa seleção eu vou dividir aqui meu x e meu Y porque que é x eu coloco minhas variáveis características né então aqui eu
vou chamar o meu DF só que aqui eu vou excluir algumas colunas que eu não vou utilizar que no caso a gente tem aqui as minhas características são todas essas né então vou excluir a fra tá então o que que eu vou fazer aqui vou chamar um DF pdop aí aqui dentro do Drop eu vou colocar minha Coluninha fral e aqui pra gente poder de fato falar que é uma a coluna que eu quero excluir eu vou colocar aqui o aess igual a 1 tá então esse vai ser o meu x e o meu Y
eu vou pegar aqui toda a minha base de dados quer dizer todo minha coluna ali de fraud né E aí tem um Só uma curiosidade pro pessoal normalmente a gente coloca o x maiúsculo aqui para representar as características porque na quando a gente fala em representação de variáveis de característica a gente utiliza ali o X em maiúsculo até na matemática né a gente faz esse essa atribuição tá bom então já vou aproveitar aqui essa linha de código que eu coloquei aqui o x e o y e aí eu vou começar a colocar o x trin
aí vou pegar aqui o x teste aí vai ter o y train o y test tô colocando assim uma do lado da outra porque aqui eu vou chamar é o train test split Então vamos colocar train test split e aqui dentro dessa minha classe eu vou colocar os atributos né então x vou colocar o y E aí aqui que vem a sacada né que é o teste size o teste size a gente vai colocar Qual que é o percentual da base de teste então eu vou colocar trabalhar com 20% né então 0.2 e aí também
vou tentar utilizar o Stretch fy o stret fy Ele simplesmente Ele vai tentar fazer com que tenha re equilíbrio ali nas classes não tenho aqui de fato mas só para dar uma ajudinha e eu vou colocar uma semente aleatória aqui que no caso é o Row state né ó ó vou colocar aqui Opa state eu vou colocar aqui você pode colocar um número aleatório mesmo vou colocar o número S porque eu gosto do s tá então aqui vai usa 42 como muitas pessoas eu gosto do número S Digamos que é número da sorte então eu
vou agora executar esse código se eu não fiz nada de errado né ol tá certinho bom agora só pra gente poder validar a proporção eu vou fazer uns printz aqui tá então vou colocar aqui um print e aí eu vou pegar o meu x eu colocar aqui um ponto Shape e vou também ver com a minha base de teste colocar aqui ponto Shape ó ele ficou bem bonitinho aqui né a proporção dos dados 800000 e 200000 isso 8% e 20% né ficou bem direitinho bom Beleza o que eles querem agora que eu faça aí sim
eu vou voltar aqui para essa etapa que eles pediram ó padronização das variáveis numéricas bom nesse caso só tem variável numérica mas se eu tivesse aqui variáveis que são de texto por exemplo eu teria que aplicar outra técnica como le Encoder por exemplo mas eu não tenho Ainda bem então vou colocar aqui aplicação da padronização e aqui pode ser uma pegadinha também porque se a pessoa não souber diferenciar O que que é uma normalização ou padronização pode utilizar aqui a classe errada então quando a gente fala deação é oard que ele trabalha ali com o
z score né então ele vai utilizar ali na fórmula você vai ter o x que ele vai pegar o dado menos ali a média sobre o desvio padrão então o que que é legal aqui dessa desse tipo de de padronização dos dados por mais que você tá escalonando os dados deixando tudo no mesmo padrão você tá mantendo ali a amplitude dos dados quando você tem casos por exemplo de outliers então pode ser um problema para alguma base de dados que você não quer deixar esses axilares evidentes né então aí por exemplo eu poderia resolver isso
com o mi Max scalar que deixa entre zeros e um né que normalmente o mi Max scalar ele é bom até quando a gente vai utilizar por exemplo Deep learning que eu tenho que trabalhar com binários né então aqui é algo bem específico Então vou vou importar aqui a o z score lá do learning também então from esc learning ponto aí eu vou colocar aqui o preprocessing né porque aqui é a biblioteca que vai trazer pra gente o o Standard vou colocar Import stand ele até trouxe aqui pra gente tá bom aí eu vou ter
que criar aqui um escalonador Então vou chamar aqui o SC e aqui eu vou chamar classe do n ele vai instanciar aqui pra gente a classe e aí eu vou fazer o Fit deixa até baixar um pouquinho aqui o código vou chamar aqui Fit e aqui dentro desse Fit eu vou chamar qual vai ser al a coluna de Fato né minha base de dados que eu vou treinar que é a base de treinamento que aqui Fabrício a gente tem aquela sacada que eu falei a gente só aplica o Fit na base de treinamento porque eu
não quero deixar meus dados enviesados correto boa Secada isso E aí quando a gente vai agora fazer o Fit eu vou criar uma nova representação de xtrain X test aqui embaixo ó eu vou colocar x trin underline escalonado e aí eu vou colocar o sceller que eu já treinei aqui em cima e aí sim aqui eu vou colocar um ponto transforme nessa minha base de treinamento e aqui dentro eu vou usar a minha base xin mesmo e a gente vai fazer esse mesmo passo PR X test então para ganhar tempo eu copio e colo aqui
só mudo o nomezinho no fim tá então vou fazer aqui PR X Test e mudar aqui também para x teste escalonado e aqui que a gente tem a diferença né ó somente strin Fit escalonar as duas bases aqui então vou aplicar aqui o Standard scor beleza e agora Fabrício acho que eu vou resolver o problema do desbalanço que eles pedem né eles falaram aqui para verificar ó já fiz aqui né a separação ó caso a base de dados tenha algum tipo de desequilíbrio aplicar técnica de oversampling então oversampling ou seja vou ter que pegar minha
classe que tem menor representação e dar um um Pump nela para poder ficar igual a classe que a gente tem maior representação Então vou colocar aqui a aplicação do oversampling e aqui eu poderia ter várias bibliotecas que fazem isso mas eu vou utilizar smoth tá e a Smooth a gente pode pegar lá do tem uma biblioteca que se chama im MB learning tá ela é onde tem essa essa classe dos multi que a gente pode colocar para trabalhar com over sampling né então oversampling aí eu coloco Import Smooth com tudo maiúsculo assim tá bom Agora
eu vou aplicar de fato os multi então eu vou criar aqui uma variável os mul ele vai simplesmente colocar aqui pra gente né Eh essa estratégia de reequilíbrio tá então eu vou colocar aqui dentro vou chamar a função dele smoo vou abrir aqui o parênteses e aqui dentro Eu Vou Chamar qual que vai ser o tipo de estratégia tá vendo que ele até mostra quais sãoos zíper parâmetros né então tem ali ó sampling strategy então eu vou ter que colocar aqui primeiro ess parâmetro ó sle strategy eu quero falar para ele Qual que é o
tipo de classe que eu vou dar o Pump aqui né que eu vou escolher o tipo aqui Minority tá Uhum para poder pegar ali o certinho a minha classe no caso aqui que é o zero que eu tenho menor representação vou passar aqui o rendow state porque precisa né pra gente manter aqui os dados aleatórios e vou manter o número sete e aqui a gente vai aplicar é em cima da minha base xrain escalonado não no caso aqui não né xtrain escalonado a gente vai utilizar ele aqui dentro mas vou criar Na verdade só vou
copiar aqui o x trin ó eu vou criar uma nova variável para representar essa base de dados já tunada digamos assim com uma questão de mesmo equilíbrio para ambas as classes né então vou chamar aqui de resampled né porque foi aqui de fato transformada essa base rampada Isso é se a gente for falar um inglês português ali né aí eu vou chamar aqui também pro meu Y vai ter o y train tá aqui eu vou fazer o Fit do SM Fit e aqui dentro você vai Fit resample não é verdade né ó essa opin aqui
tá você vai abrir aqui o parênteses e aqui sim eu vou passar o meu x TR escalonado sim né aqui eu preciso passar esse eu vou usar o escalonado porque aqui que eu tenho a padronização zore aplicada Então vou chamar ele aqui e o me Y TR normal mesmo tá então essa estratégia aqui vai ser pra gente poder de fato aplicar o oversample bom com com multi aplicado eu vou colocar um print aqui pra gente poder visualizar como que ficou né então print PPD pseries porque não veem no formatinho Data Frame porque a gente vai
est utilizando aqui o y train resampled porque ele que tem aqui as nossas classes quando eu separei aqui para poder fazer o oversampling né então vou pegar ele aqui aí sim eu vou chamar aqui um ponto value counts aí a gente pode colocar aqui o normalize igual a true E aí eu posso colocar aqui o xz 100 né deixa eu colocar o vezes 100 ó ele trouxe pra gente a mesma proporção agora para ambas as classes isso E aí o que a gente poderia fazer aqui também é talvez setar uma outro número de estratégia que
os multi simplesmente ele aplica e ele deixa igual mesmo né 50 50 para cada lado Tá bom então eu já resolvi esse caso aqui então se eu for aqui comparar com o que a gente tem na base no pedido no caso eles já querem que eu faço A modelagem de regressão logística bom eh para fazer regressão logística eu vou tá importando aqui eu sei que eu de só deix deixar um comentário aqui ó que eu vou fazer a regressão logística muito bom isso que você faz de mostrar o que você vai fazer no próximo ponto
isso deixa mais claro pra gente que vai analisar o seu teste sim Exatamente porque a pessoa fica mais direcionada né Eu acho que deixa menos perdida a pessoa bom paraa gente aplicar aqui a regressão logística normalmente eh Na verdade até tem um outro ponto antes de aplicar regressão logística né que aí também pode ser uma pegadinha eles estão falando aqui de validação cruzada então eu vou fazer aqui na verdade primeiro o a estratificação com scolds aí eu vou fazer junto a regressão logística para colocar esse cálculo aí tá então vou colocar aqui regressão logística e
validação cruzada validação opa cruzada bom tem tem uma uma lá tem uma biblioteca que chama strf fold STR fold Cold né esse daqui ó que eu vou entrar nela e ela aqui ela tem todos esses Hi parâmetros pra gente poder est importando os colds Então vou importar ela e também tem uma que se chama aqui Cross V score que também vou estar utilizando para poder validar toda a aplicação da minha validação cruzada tá então vou vou pegar e importar ela aqui então vou colocar aqui from sk learning ponto aí eu vou colocar Model selection Import
aí eu vou colocar stret files C fold ele até mostra aqui pra gente o legal do cab é que ele vai completando né Uhum E aí também vou estar importando lá do site learn também do modo selection vou est copiar aqui para ganhar tempo vou colocar aqui Import aí sim eu vou pegar aqui o cross Val score esse Cross Val score aqui ele é para aquela validação que eu falei que ele quando você utiliza esses car fotos você tem tem que tirar uma média final por exemplo é esse Cross V score que vai fazer esse
cálculo pra gente bom depois que eu peguei aqui quais são as bibliotecas que eu vou aplicar a gente vai começar a montar o modelo junto com a validação cruzada Então vou chamar aqui modelo igual se estamos falando de regressão logística aqui no Google vou colocar regression logistic regression olha parece no histórico aqui bom quando a gente vem aqui logistic regression ó tem até tá aqui o acesso né normalmente eu acesso mesmo tá a biblioteca do sa learning ele tem aqui o logistic regression que é o modelo que eu vou aplicar para poder trabalhar aqui com
os dados né então ele até ensina aqui como é que faz bonitinho aqui embaixo né então vou até copiar esse FR aqui para colocar lá no meu modelo que eu vou vou precisar utilizar ele também né E aí meu modelo ele vai instanciar aqui com essa classe tá mas aí tem um ponto também que é bem específico dessa prova eles pediram um tipo de regularização L2 Então como que eu sei isso isso aqui eles estão meio que testando para ver se eu sei né Vocês estão testando para ver se eu sei utilizar os hiper parâmetros
Uhum Então o que que eu sei o que que é a regul anização L2 se a gente for analisar aqui ó ele fala Quais são os hiper parâmetros que você tem no modelo e aqui em penal Penalty né que ele tá falando aqui pra gente e ele fala qual que é o tipo de penalização que você vai aplicar Então como padrão ele vem nenhuma penalidade aí você pode pegar a L2 ou a L1 tá então especificamente Eu sei que eles pediram ali dois então vou chamar esse PR parâmetro aqui cadê ó pena Penalty né vou
copiar ele e eu vou colocar aqui dentro da da minha classe coloco Igual E aí eu vou chamar aqui o L2 que ele é em minúsculo mesmo você pode me explicar rapidamente o que que é o pênalti L2 sim eh essa esse tipo de regularização a gente utiliza quando você quer fugir do cenário de overfitting Uhum Então é um tipo de dentro do coeficiente da equação ele vai aplicar ali um um essa regularização para poder fazer com que aqueles coeficientes eles de fato estejam mais próximos ali de zero digamos assim né então você acaba evitando
com que essa equação fique muito ajustada tá então é uma técnica bem específica que a gente também usa em Deep learning Tá bom então eles pediram aqui para ver se a gente né se eu sei utilizar sem ir lá no modelo buscar esse parâmetro então é importante a gente saber abrir aqui a biblioteca e dar uma olhadinha Quais são os parâmetros e quais são as opções que eu tenho né ele também colocou aqui o L1 que ele já acaba não elevando a zero coeficiente mas ele aplica um pequeno termo ali né de de penalidade digamos
assim que não eleva totalmente esse coeficiente a zero uhum tá então apliquei ele aqui e aí a gente vai começar a criar a estratégia da validação cruzada vou até colocar aqui ó validação cruzada no comentário mesmo do código até uma dica pro pessoal vocês vão precisar sempre Colocar Um textinho aqui mas você pode até colocar comentar o código que acho que a pessoa vai também conseguir analisar bem né CV normalmente a gente fala que é de cross validation Tá eu vou guardar aqui agora essa técnica do stratify Cold e aqui eu vou abrir a classe
e eu vou colocar agora algumas al uns hiper parâmetros um deles por exemplo é o in split né Opa deixa eu dei um contro aqui mas deixa eu voltar aqui ó é o n split que ele até trouxe aqui pra gente e lá no modelo da prova falou que eu tenho que utilizar cinco né cor então ou seja ele vai criar cinco conjuntinhos de de casa ali folds né vou colocar um método parâmetro importante aqui né que a gente pode falar que é o shuffle vou colocar ele igual para ele poder embaralhar ali os dados
tá depois eu vou colar também um randle ST aqui e de novo vou usar o set né bom esse aqui é só preparação dos scaffolds depois que eu faço esse scaffold eu vou criar aqui uma outra variável scores para poder fazer esse cálculo da Média né então aqui eu vou chamar um um Cross score ele até mostra aqui pra gente né aí aqui dentro vou abrir o parênteses colocar o meu modelo Vou colocar aqui o vou até copiar para poder ganhar tempo o x trin resampled né o meu Y train também resampled porque tô utilizando
eles porque eles já estão ali com o mesmo tamanho de proporção de classes né para não errar aqui na hora de treinar o algoritmo CV vai ser igual a CV mesmo porque eu guardei aqui em cima né ó os meus casinhos tá cor e aqui nessa métrica scoring aqui você pode selecionar qual tipo de estratégia que você quer fazer esse cálculo então no caso eu vou utilizar a Rock alce que a gente coloca aqui que que seria isso é a curva rock a curva rock ela é uma medida estatística que a gente também consegue utilizar
em cima por exemplo da Matriz de confusão quando eu quero validar se aquele modelo consegue separar bem as minhas classes então aqui a gente trabalha com a sensibilidade do modelo bem próximo ali também tipo da revocação né então Então eu acho que é uma boa estratégia pra gente colocar aqui para medir mas eu poderia colocar por exemplo um um F1 score Tem vários tipos de scoring que eu posso escolher ok tá e aí eu vou colocar vou executar aqui o meu modelo e aqui embaixo eu vou preparar um print pra gente ver os resultados tá
porque essa variável scores vai gerar pra gente uma precisão Então vou colocar aqui scores pmin porque eu quero a média tá então depois que ele executar aqui ó ele tá rodando aqui um pouquinho né que a base é pesada e aí eu vou colocar aqui o print para poder a gente ver qual que seria a precisão média desse modelo ó ele executou deu 97% Ou seja que que ele falou aqui pra gente nesses cinco folds que eu fiz a média deles é 97 uma precisão alta tem uma precisão alta tá um modelo legal tá E
agora que eu fiz o a validação cruzada eu vou agora criar todo o Fit do modelo para poder fazer em treino e teste porque percebam que aqui Eu só coloquei a base de treino porque eu tô treinando meus colds agora vou fazer a base o Fit na base de treino agora já com scolds né que a gente testou aqui em cima e eu vou colocar a base de teste Em contrapartida para eu poder avaliar esse modelo bom então aqui a regressão logística já importei aqui em cima né Então não preciso importar ela de novo mas
eu vou ter que importar uma outras medidas depois também de validação mas primeiro eu vou criar aqui os fits Então vou pegar modelo ponto Fit para treinar né agora o meu algoritmo finalzão aqui com a minha base já calculada aqui qual que seri meus folds né Ó vou fazer aqui o Fit tá Uhum E com o Fit feito aqui eu vou colocar minhas predições então vou guardar uma variável Y pred Tá certo e aí vou pegar modelo ponto aí eu vou colocar o predict e aqui o predict se eu tenho a base de x aqui
em cima eu vou ter que pegar minha base de X teste escalonado né Uhum Então x teste escalonado está aqui tá bom E aí eu vou deixar executar primeiro esse predict e rodar o modelo fazer as predições porque aí sim eu vou abrir uma nova linha de código aqui para importar do site learning pronto aí eu vou chamar aqui dentro de matrics Import eu vou fazer alguns importes aqui que eles pediram algumas medidas específicas olha só eles pediram para avaliar a precisão o Recall F1 score e a área sobre a curva da curva rock uhum
bom então eu vou ter que importar o classification report que aí a gente pode chamar aqui ó classification Report e também eles estão pedindo a curva rock eu vou importar aqui o rock aqui ó al score né até traz pra gente tá vou deixar ele importado aqui e aí a gente vai criar algumas variáveis então al score aqui igual e aqui aqui eu vou colocar o rock underline al e score de novo abri aqui o parênteses aqui dentro eu vou colocar meu Y test Opa coloquei um U aqui né Y Test e o meu Y
pred que a gente criou lá em cima o predict né então prédio aqui tá então aqui eu vou fazer os o cálculo da curva rock Opa bom E aí eu vou já deixar um print do classification report pra gente poder analisar tudo junto bonitinho Então vou colocar print aqui vou chamar o classification deline report vou abrir aqui ele e vou de novo trazer o meu Y Test e o y prédio aqui deix ele aqui dentro bonitinho cont control v e aí a gente vai deixar também um print final aqui eu vou mostrar por exemplo Qual
que é a média né scores me que a gente obteve lá em cima com a validação cruzada só para colocar aqui junto bonitinho vamos executar aqui as métricas e olha o que a gente teve né Ele trouxe aqui pra gente por exemplo né ó eh na verdade scores aqui deixa eu ver se eu fiz certinho Na verdade o scores eu vou não vou pegar da variação cruzada Vou colocar aqui da curva rock para mostrar a média né que eles estão pedindo ó agora sim o que acontece aqui nesse modelo Eu acho que eu já terminei
tudo tá Fabrício Agora eu preciso validar porque eles falaram aqui para eu poder interpretar sim fazer comunicação dos resultados bom aqui nesse modelo eu vejo que quando eu apliquei a o oversampling ele deu aqui um certo up né nas variáveis que eu tinha que não era Fraude que no caso era fraude né porque elas são menor representação e o não fraud aqui ele acaba sendo zero e o fraud que a gente tinha deficiência é o um sim então esse modelo e ele a a precisão Aqui tá 0.58 o F1 score tá 72 e a Evocação
a sensibilidade tá 95 então ele tá um modelo legal para identificar o que é fraude aqui por conta do Recall mas ele não tá sendo tão Preciso se eu analisar aqui a precisão né mas a média harmônica até que não ficou tão ruim no modelo geral eu tenho aqui 93% de acurácia né e a curva rock é legal a gente colocar aqui a média né da da avaliação do do score aqui da curva rock porque eu consigo analisar aqui o quanto que esse modelo também tá sensível na identificação das classes então quanto que ele tá
bom para distinguir né O que que é fralde ou não fraude Então até que tá legal o resultado e diz muito eu falei para vocês que tem relação né ó com Recall ol o Recall tá bom pras duas classes e também deu um resultado legal aqui pra curva rock sim e o que você você consideraria um valor relevante um valor bacana para esse Precision que você falou que ele não tá tão bom com no 58% né é ele não tá o que que ele tá falando aqui pra gente não quando a gente fala da da
precisão de fato o que que ele é a proporção de instâncias que foram classificadas ali como Positivo pelo que verdadeiro são de fato ali positivas no modelo então ali eu tô querendo ser Certeira acertiva né em uma dessas classes então 0.58 não tá o ideal aqui o ideal a gente poderia trabalhar na casa de 0.80 0.85 0.90 melhor ainda e cuidado também com algo que tá muito 100% por exemplo Ah eu vejo que esse modelo tem deficiência na precisão porque ele tá pra classe zero deu overfitting na precisão né porque se a gente for analisar
aqui tá um tá 100% tá 100% exatamente então ele tá tipo sendo muito preciso Ali pras classes que não são fraude e porque é fraude ele não tá sendo assertivo por mais que ele tem ali um Recall legal uma uma curva rock legal eu acho que esse modelo não não ia performar bem se eu colocasse ele em Deploy então se eu tenho que dar aqui uma explicação uma interpretação desse modelo eu diria que não é um modelo que que tá pronto para ir em em produção porque tá bem ele consegue identificar ali o comportamento do
que é um fraude ou não fraude mas só que ele não vai ser tão Preciso assim para poder de fato ser assertivo na decisão de falar que aquilo pode ser um fraude ou não E aí o problema é e se você errara predição que falando que não era um fraude e é um fraude uhum daí você tem um grande erro né então acho que poderia ser um problema aqui então uma última pergunta do seu projeto técnico aqui o que você recomendaria caso você para solucionar modelo sim eu acho que aqui teria que trabalhar nos hiperparâmetros
Então se a gente abrir aqui eh o a regressão logística eu não sei se Talvez o L2 foi aqui um coeficiente ideal nesse cenário porque primeiro eu poderia testar sem ele uhum com os hiperparâmetros aqui padrão e v a performance dele bom deixa eu analisar como que ficaria aqui os resultados se eu ver que realmente precisa tunar aqui algum dos valores eu poderia mexer aqui num tipo de finalidade né eu posso colocar o L1 al 12 para tentar mexer ali na questão do overfit que justment ele gerou que overfit na precisão né E também tem
outros hiper parâmetros aqui que a gente poderia trabalhar mas também talvez não seria o modelo ideal regressão logística né aqui eu poderia talvez tentar um modelo de emble como randow forst ou o ex boosting são falando particularmente aqui eu gosto muito do modelo ex boosting sempre tem o favoritinho né que são modelos que lidam com desequilíbrio de classe e a regressão logística não é o melhor cenário aqui tá então eu utilizei essas estratégias mais robustas que eu acho que teria ali mais sucesso na hora da gente pegar o o de fato a predição desse modelo
PR esse desequilíbrio de classe entendido Então eu acho que depois de todo esse teste tanto a parte das perguntas técnicas quanto do projeto técnico a candidata Ana Raquel está contratada aqui o meu carimbo de contratada e pessoal novamente espero que vocês tenham gostado de mais um episódio da nossa série hipsters entrevista de emprego Tech a aqui mensalmente no canal da lura falando sobre carreiras Diferentes né entrevistas para algumas carreiras diferentes então sempre é muito importante que você deu o seu like nesse vídeo acho que merece né a gente trouxe Ana Raquel a gente ficou aqui
fazendo várias coisas juntos e compartilhe também com seus amigos pessoas da área de ciências de dados que querem ver o que é isso de machine learning O que é como você treina um modelo de predição e tudo mais acho que eles vão curtir bastante e claro se inscreve no canal para você não perder os próximos vídeos aqui nos próximos meses então muito obrigado Ana Raquel pela sua participação aqui Obrigada pessoal por est aqui com a gente também não esquece de dar o like Compartilhar esse vídeo porque eu acho que aqui a gente tem muito aprendizado
do que você pode passar também uma entrevista que você for fazer normalmente o pessoal pede um cas e é sempre relacionado testando mesmo essas estratégias que a gente fez aqui nessa nessa acabou sendo uma aula também né de hoje perfeito e até mês que vem pessoal tchau tchau tchau tchau [Música] l
Copyright © 2024. Made with ♥ in London by YTScribe.com