brunovilar / desafio-data-science-elo7 Goto Github PK
View Code? Open in Web Editor NEWProjeto desenvolvido durante o processo seletivo para o cargo de Cientista de Dados no Elo7.
Projeto desenvolvido durante o processo seletivo para o cargo de Cientista de Dados no Elo7.
Apesar de o projeto ter uma versão inical entregável, os modelos criados continuam sendo os criados e avaliados usando cross-validation. É interessante criar a versão final do modelo, criada com os dados completos de treinamento e fazer a avaliação final usando os dados de teste.
Uma possibilidade interessante para melhorar a confiança sobre os resultados é usar o Nested Cross Validatio, conforme:
A identificação do vendedor (seller_id) não é usada atualmente no projeto. Entretando, é possível que alguns vendedores tenham um perfil mais especializado em categorias de produtos, como pessoas que trabalham especificamente com bijuterias ou decoração. Em alguns casos, mesmo que o vendedor trabalhe com múltiplas categorias, é provável que elas sejam relacionadas. Assim, pode compensar utilizar algo como um OHE para as categorias do vendedor. Para os dados completos, a criação de um modelo de embedding poderia ser útil sem aumentar muito a dimensionalidade dos dados.
Como o projeto foi criado se aproximando de uma prova de conceito, alguns cuidados relevantes não foram tomados. Testes unitários são um deles. É preciso fazer a criação dos testes, sobretudo para as funções desenvolvidas em pipeline, para garantir o correto funcionamento do código e poder evoluir o projeto garantindo que não ocorram erros não aparentes.
O modelo de classificação de categorias é baseado em dois atributos: título e peso. Isto, para simplificar a criação e permitir o uso para a predição da categoria de busca, como se ela fosse um produto.
Para avaliar se o uso de outros atributos (e.g., preço, tags concatenadas e perfil de vendas do vendedor) trariam contribuições, é interessante fazer novos experimentos. Caso a melhoria seja relevante, é preciso lidar com a necessidade de uso para a classificação de categoria. Algumas possibilidades são:
Atualmente o projeto faz a segmentação de produtos com o uso de Gaussian Mixture Model e 50 clusters. É interessante analisar melhor os critérios para determinar o número de cluster e analisar formas alternativas de fazer o agrupamento. Algumas possibilidades:
Ainda que seja uma prova de conceito, é interessante melhorar a capacidade do sistema de realizar uma busca ou recomendação de forma mais eficiente, reduzindo o tempo de resposta. Para isso, é interessante usar algum sistema que permita a comparação de embeddings, como:
També é possível focar apenas na paralelização do processo, seja de modo mais artesanal, como por Joblib, ou automática, como pelo Dask ou Vaex ou similar.
Como a CLI é a representação do uso do modelo em produção, é preciso tomar cuidados adicionais para garantir que os dados de entrada estejam sendo corretamente fornecidos. Para isso, é possível usar uma ou mais técnicas de validação:
O projeto usa estatísticas sobre todos os produtos (e.g., média, mediana e desvio padrão) para fazer o preenchimento de atributos não preenchidos. Como não é possível usar a categoria para fazer a segmentação desses produtos, por ser o rótulo do modelo supervisionado, é preciso criar uma segmentação alternativa. Algumas opções para isso:
Para aproximar o projeto de uma solução realmente produtizada e final, é importante incorporar um mecanismo de registro de logs, com diferentes níveis de informação, para ajudar a registrar interações com o sistema e, quando necessário, identificar problemas. Por ser uma prova de conceito, o registro dos logs em arquivo deve ser o suficiente.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.