Neste apaixonado repositório de coleta de ritmo próprio, você encontrará muitos desafios de aprendizado de máquina, mineração de dados e engenharia de dados que eu tenho enfrentado, até agora. Ao longo desta diretriz, você passará pelos detalhes de projetos e repositórios.
Espero que você gostasse ao conferir esses repositórios relacionados ao ML, mineração de dados e engenharia de dados na tabela, abaixo.
Você pode me alcançar sempre que quiser obter mais informações sobre projetos.
| Problema | Métodos | Libs | Repo |
|---|---|---|---|
| Conversão da página de destino | AB Testing , Z test | pandas , statsmodel | Clique |
| Integração do modelo MNIST da moda (CNN) em Tensorboard e MLFlow | CNN , Deep Learning | Keras , MLflow , Pandas , Sklearn | Clique |
| Dockerize um aplicativo Apache Flink através do Docker | Apache Flink Table & SQL | Apache Flink Table & SQL , Docker , Docker-Compose | Clique |
| Rastreador como um serviço | Pesquisa ( DFS , BFS ) | GO , Neo4j , Redis , Docker , Docker-Compose | Clique |
| PRECIÇÃO SKIP Ação no conjunto de dados de música | LightGBM , Linear Reg , Logistic Reg. | Sklearn , LightGBM , Pandas , Seaborn | Clique |
| Classificação do penteado | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | Clique |
| Análise de séries temporais por SariMax | ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | Clique |
| Problema de classificação multi-idioma e com vários rótulos no conjunto de dados de moda | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | Clique |
| Qual deles pega sms de spam inteiros*? | Naive Bayesian , SVM , Random Forest Classifier , Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | Clique |
| A qual romance eu pertenço? | Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | Clique |
| Por que os clientes escolhem e reservam veículos específicos? | Random Forest Classifier | Sklearn , Pandas , Seaborn | Clique |
| Previsão de impacto das promoções (Promo1, Promo2) nas vendas na Alemanha, Áustria e França | Random Forest Regressor , ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | Clique |
| Tutorial de classificação florestal aleatória em Pyspark | Random Forest Classifier | Spark (PySpark) , Sklearn , Pandas , Seaborn | Clique |
| Enriquecimento de dados espaciais: junte -se a dois conjuntos de dados de geolocalização usando Kdtree | Kd-tree | cKDTree | Clique |
| Implementação do algoritmo K-Means do zero em Java | K-Means | Java SDK | Clique |
| Previsão do preço à vista da AWS usando o Adaboosting no RapidMiner | Adaboost Classifier , Decision Tree | Rapidminer | Clique |
Por favor, role para baixo para ver os detalhes dos projetos de forma abrangente e visite seu repositório.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Conversion | Varejo | AB Testing , Z test | pandas , statsmodel | https://github.com/erdiolmezogullari/ml-ab-testing |
Neste projeto, o teste A/B foi realizado no conjunto de dados do curso da UDacity. Consiste em 5 colunas, <user_id, timestamp, group, landing_page, converted> . Nos testes A/B, usamos 3 colunas delas, group, landing_page, and converted .
Certa vez, simulamos algumas experiências N vezes em relação às taxas de conversão ( control, treatment ) já obtidas sobre o conjunto de dados. Depois de ter uma idéia adicional sobre o conjunto de dados com esta simulação, supusemos uma hipótese nula e uma tese alternativa. Para reivindicar nossa verdadeira hipótese alternativa, calculamos a pontuação crítica z usando o método Z test em relação ao alfa (0,05) e, em seguida, verificamos a beta e o poder em relação ao tamanho do efeito do experimento.
Observe que você pode conferir ab_test.md para obter mais informações sobre o teste de hipótese e testes A/B com algumas fotos importantes.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Prediction | Moda mnist | CNN , Deep Learning | Keras , MLflow , Pandas , Sklearn | https://github.com/erdiolmezogullari/ml-fmnist-mlflow-tensorboard |
Neste projeto, usamos tecnologias de contêineres do Docker para criar a plataforma ML a partir do zero. Consiste em quatro recipientes diferentes de docker (MLFlow, Notebook, Postgres, Tensorboard) que já estão construídos em docker-compose.yml
Os detalhes dos contêineres podem ser encontrados em ./platform Directory. Cada serviço de contêiner possui um DockerFile específico correspondente aos diretórios (MLFlow, Notebook, Postgres, Tensorboard) no diretório da plataforma
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Implementation | Clique em Stream DataSet | Apache Flink Table & SQL | Apache Flink Table & SQL , Docker , Docker-Compose | https://github.com/erdiolmezogullari/de-flink-sql-as-a-docker |
Neste projeto, usamos as tecnologias de contêineres do Docker para lançar o Flink Cluster e o Flink App separadamente do zero. O cluster Flink (plataforma) consiste em dois contêineres diferentes do Docker (JobManager, TaskManager) que já estão construídos no docker-compose.flink.yml. O aplicativo Flink consiste em um contêiner do Docker que já usando um Dockerfile (./app-flink-base/dockerfile) e um script de shell (./app-flink-base/run.sh) para enviar o arquivo JAR para cluster no Docker-compos-App-flink.yml.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Implementation | N / D | Pesquisa ( BFS , DFS ) | GO , Neo4j , Redis , Docker , Docker-Compose | https://github.com/erdiolmezogullari/de-crawler-as-a-ervice |
Neste projeto, um serviço simples de rastreador foi implementado do zero e integrado aos sistemas Redis e Neo4j NoSQL usando Docker e Docker-compose . O serviço de rastreador está rastejando o primeiro URL de destino e, em seguida, visitando o restante dos URLs nos documentos HTML buscados, respectivamente e recursivamente. Enquanto rasteja um documentos HTML correspondentes aos URLs, ele pode se referir a 1 de 2 algoritmos de pesquisa diferentes ( BFS, DFS ). Esses algoritmos de busca foram impulsionados pelas go routines em GO para acelerar o serviço de rastejamento.
Durante o rastreamento, existe a possibilidade de que várias rotinas que seriam criadas possam buscar e processar os mesmos documentos HTML ao mesmo tempo. Nesse caso, o rastreador pode criar dados inconsistentes. Assim, o sistema NOSQL de valor-chave Redis foi preferido usando neste projeto para resolver esse problema e criar um sistema robusto e consistente.
Cada URL pode se referir ao outro URL diferente ou em um documento HTML. Essa relação entre dois URLs pode chamar como link. Existe uma maneira fácil de representar esses links e URLs rastejados usando uma estrutura de dados específica, que é gráfica. Assim, o gráfico Neo4j NOSQL foi usado para representar e visualizar o gráfico que consiste em URLs e links. Durante o rastreamento, o serviço de rastreamento está criando um novo nó para cada URL e novo link para cada par de URL ou atualizando os nós e links existentes no Neo4j , usando a consulta Cypher também.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Prediction | Conjunto de dados de música | LightGBM , Linear Reg , Logistic Reg. | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-prediction-skip-action |
Neste projeto, precisamos prever a probabilidade de a ação de ignorar os ouvintes, que está ouvindo músicas. Como não temos nenhuma aula já rotulada por ninguém. Nessas circunstâncias, precisamos criar um rótulo de destino que possa resolver o problema. Portanto, qualquer variável de destino contínua deve ser escolhida como um recurso de destino. De acordo com os recursos que criamos, per_listen (percentage of listen) será mais adequado para esse problema, pois obviamente dá uma ideia sobre a pular ação. Se o escolhermos como um recurso de destino, esse problema apresentará um problema de pontuação/probabilidade devido à proporção de tempo de escuta, o que tende entre 0 e 1.
Se queremos converter esse problema em um problema de classificação, podemos determinar uma lesão para pular o Aciton como regra do batimento. per_listen indica quanta porcentagem da faixa foi ouvida pelo ouvinte. Portanto, nosso limiar pode ser de 25%, 50% até 51% e assim por diante. No entanto, antes de tomar uma decisão, podemos verificar a função de distribuição cumulativa complementar (CCDF) de per_listen . Seria dar uma idéia sobre o nosso limiar de Razão. De acordo com o gráfico a seguir, temos 65% das instâncias, cujo valor Per_Listen é maior que 0,5. Portanto, 0,5 é razoável, no entanto, quando pensamos sobre isso mais realista, menos de 0,5 em torno de 0,25 seria mais adequado determinar qualquer ação de pular.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Classification | Conjunto de dados de penteado | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-hairstyle-classification |
Neste projeto, o conjunto de dados contém uma amostra de 10000 imagens extraídas do Instagram e agrupadas com base no penteado que eles mostram.
O cluster variável representa o cluster de penteado para o qual a imagem foi atribuída pelo algoritmo de reconhecimento visual.
Cada linha contém o url variável, que é o link para a imagem e o número de curtidas juntamente com os comments por imagem. O user_id é o ID exclusivo da conta do Instagram da qual a postagem vem e o id da variável é o identificador exclusivo associado à própria postagem.
Cada postagem contém a data ( date_unix ) no formato Unix quando a imagem foi publicada no Instagram e, além disso, a data foi convertida em diferentes formatos ( date_week -> Número não -ISO da semana, date_month -> The Month, date_formated -> Data completa dd/mm/yy) parcialmente para uso nas análises anteriores. Sinta -se à vontade para converter essa variável de uma maneira que se adapte à sua análise.
Além disso, um clássico influencer_flag foi adicionado a cada uma das imagens que possuem mais de 500 curtidas, sinalizando -as como postagens de influenciadores.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Time Series Analysis | Estatísticas de trabalho | ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | https://github.com/erdiolmezogullari/ml time-series-analysis-sarimax |
Neste projeto, usamos a técnica de análise de séries temporais para decompor nossos dados em 3 componentes como o abaixo:
1-Trend (T)
2-Seasonility (S)
3-Residual (R)
Uma vez que precisamos obter um conjunto de dados estatinário antes de realizar a análise de séries temporais (TSA) sem falhas, seria fácil fazer uma situação em relação a um conjunto de dados estacionário, pois já satisfaria as pré -aberturas da distribuição normal em termos de média e variação, aproximadamente. Portanto, precisamos nos aprofundar no conjunto de dados bruto, aplicando algumas técnicas de EDA para expor uma visão valiosa dos dados relacionados à tendência e à estação, se for possível observar na EDA. Depois de concluirmos o estágio da Analisia de Dados, precisamos escolher as melhores técnicas disponíveis (por exemplo, Arima, Sarimax) para executar no conjunto de dados de acordo com nosso conhecimento que obteríamos na EDA.
No estágio da EDA, aplicaremos um monte de técnicas, como, estatísticas rolantes (média, DST) por recursos baseados no tempo (ano, mês, dia, dia da semana e trimestre) para descobrir 2 componentes (tendência, estação) de 3 componentes da série temporal sobre plotas específicas, Rougly. Essas parcelas fornecerão feedback razoável para a TSA antes de iniciá -lo.
No estágio da TSA, construiremos diferentes modelos para aprohes não sazonais e sazonais usando o pacote Arima e Sarimax no StatsModels, respectivamente.
Since the most challenging parts of TSA is finding optimum parameters (p,d,q) and (P,D,Q,S) of those techniques, we will be referring to Autocorrelation (ACF) and Partial Autocorrelation (PACF) functions to find out significant time correlations in terms of performing either Autoregression Model (AR) or Moving Average Model (MA), or Seanosal Autoregression (SAR) and Moving Average (Sam).
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Classification | Conjunto de dados de moda | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezogullari/multi-label-classification |
Neste projeto, o conjunto de dados foi coletado em diferentes sites de moda. Consiste em 7 campos como abaixo.
id : um identificador de produto exclusivoname : O título do produto, conforme exibido em nosso sitedescription : a descrição do produtoprice : o preço do produtoshop : a loja da qual você pode comprar este produtobrand : a marca de produtolabels : as etiquetas de categoria que se aplicam a este produtoOs recursos de texto (nome, descrição) estão em diferentes idiomas, como inglês, alemão e russo. O formato do recurso de destino é o Multilabels (60 categorias) que foram marcadas de acordo com a categoria em sites de moda de maneira diferente.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
NLP | Texto | Naive Bayesian , SVM , Random Forest Classifier , Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-spam-sms-classification |
Neste projeto, aplicamos algoritmos de aprendizado supervisionado (classificação) e aprendizado profundo (LSTM).
Utilizamos um conjunto de dados público de SMS SPAM, que não é puramente limpo do conjunto de dados. Os dados consistem em duas colunas diferentes (recursos), como contexto e classe. O contexto da coluna está se referindo ao SMS. A classe da coluna pode levar um valor que pode ser spam ou ham correspondente ao contexto SMS relacionado.
Antes de aplicar qualquer método de aprendizado supervisionado, aplicamos várias operações de limpeza de dados para se livrar de dados confusos e sujos, pois possuem algum contexto quebrado e confuso.
Depois de obter o conjunto de dados limpo, criamos tokens e lemas do SMS Corpus separadamente usando o Spacy e, em seguida, geramos o saco de palavra e o TF-IDF do SMS Corpus, respectivamente. Além dessas transformações de dados, também realizamos SVD, SVC, PCA para reduzir a dimensão do conjunto de dados.
Para gerenciar a transformação de dados na fase de treinamento e teste de maneira eficaz e evitar vazamentos de dados, usamos a classe de oleoduto da Sklearn. Portanto, adicionamos cada etapa de transformação de dados (por exemplo, bag-of-word , TF-IDF , SVC ) e classificador (por exemplo, SVM Random Forest Classifier Naive Bayesian em uma instância do Pipeline de classe.
Depois de aplicar esses métodos de aprendizado supervisionado, também perfomamos o aprendizado profundo. Nossa arquitetura de aprendizado profundo que usamos é baseado no LSTM. Para realizar o LSTM se aproximando em Keras (Tensorflow), precisávamos criar uma matriz de incorporação do nosso corpus. Então, usamos a abordagem Word2Vec de Gensim para obter matriz de incorporação, em vez de TF-IDF.
No final de cada processamento por um classificador diferente, plotamos a matriz de confusão para comparar qual é o melhor classificador para filtrar SMS de spam.

| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
NLP | Texto | Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-deep-learning-keras-novel |
Este projeto está relacionado ao problema de classificação de texto que abordamos com o modelo Deeplearing (LSTM) , que classifica os parágrafos arbitrários coletados em 12 romances diferentes aleatoriamente, acima:
1. alice_in_wonderland
2. dracula
3. dubliners
4. great_expectations
5. hard_times
6. huckleberry_finn
7. les_miserable
8. moby_dick
9. oliver_twist
10. peter_pan
11. talw_of_two_cities
12. tom_sawyer
Em outras palavras, você pode pensar nesses romances são nossas classes de destino do nosso conjunto de dados. Para distinguir a classe real de parágrafo, o latente semântico entre os parágrafos desempenharia um papel importante. Portanto, usamos Deeplearing (LSTM) no topo de Keras (Tensorflow) após criar uma matriz de incorporação pelo Gensim's word2vec .
Se houver algum latente semântico entre as frases no parágrafo correspondente, pensamos em parágrafos semelhantes foram coletados dos mesmos recursos (romances) provavelmente.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Imbalanced Data | Reserva de carro | Random Forest Classifier | Sklearn , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-imbalanced-car-booking-data |
Neste projeto, construímos um modelo de aprendizado de máquina que responde à pergunta, que é a preferência do cliente - no conjunto de dados de reserva de carros.
Exploramos o conjunto de dados usando Seaborn e transformamos novos recursos necessários.
Além disso, a forma do conjunto de dados é imbalanced . Isso significa que a distribuição da variável de destino está distorcida. Para superar esse desafio, já existem algumas técnicas diferentes (por exemplo over/under re-sampling techniques ) e abordagens intuitivas. Também tentamos resolver esse problema usando técnicas de reamostragem.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Forecasting - Timeseries | Vendas | Random Forest Regressor | statsmodels , pandas , sklearn , seaborn | https://github.com/erdiolmezogullari/ml time-series-analysis-on-sales-data |
Neste projeto, precisamos realizar análises de séries temporais para obter novas informações sobre promoções. Existem lojas que estão dando dois tipos de promoções, como rádio, TV correspondentes à Promo1 e Promo2, para que desejem aumentar suas vendas em toda a Alemanha, Áustria e França. No entanto, eles não têm idéia de qual promoção é suficiente para fazê -lo. Portanto, o impacto das promoções em suas vendas são papéis importantes em sua preferência.
Para definir uma estratégia promocional bem definida, precisamos analisar dados em termos de impactos das promoções. Nesse caso, como os dados são baseados em séries temporais, uma vez nos referimos ao uso time series decomposition . Depois que decompusemos os dados observed em trend , componentes seasonal e residual , expusemos o impacto das promoções claramente para tomar uma decisão que é melhor em cada país.
Além disso, usamos Random Forest Regression nesse problema de previsão para aumentar nossa decisão.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
ML Service | Gerado aleatoriamente | Random Forest Classifier | Flask , Docker , Redis , Sklearn | https://github.com/erdiolmezogullari/ml-dockerized-microservice |
Neste projeto, um ML based micro-service foi desenvolvido sobre REST e Docker depois de construir um modelo de aprendizado de máquina, realizando Random Forest
Utilizamos docker-compose para iniciar os Micro Services, abaixo.
1.Jupyter Notebook,
2.Restful Comm. (Flask),
3.Redis
Depois que criamos três contêineres diferentes, nosso mlass estaria pronto.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
PySpark | Gerado aleatoriamente | Random Forest Classifier | Spark (PySpark) , Sklearn , Pandas , Seaborn | https://github.com/erdiolmezogullari/ml-random-forest-pyspark |
Neste projeto, você pode encontrar um monte de código de amostra relacionado a como usar o mllib do Pyspark Spark (classificador de floresta aleatório) e o pipeline via Pyspark.
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Data Enrichment | Espacial | Kd-tree | cKDTree | https://github.com/erdiolmezogullari/ml-join-spatial-data |
Neste projeto, construir um script eficiente que encontre o aeroporto mais próximo de um determinado usuário com base em sua geolocalização e na geolocalização do aeroporto.
Para fazer esse enriquecimento de dados, usamos o algoritmo Kd-tree .
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Implementation | Estatísticas dos países | K-Means | Java SDK | https://github.com/erdiolmezogullari/ml-k-means |
Neste projeto, o algoritmo de agrupamento K-Means foi implementado em Java do zero. DataSet: https://en.wikibooks.org/wiki/data_mining_algorithms_in_r/clustering/k-means#input_data
| Problema | Dados | Métodos | Libs | Link |
|---|---|---|---|---|
Forecasting, Timeseries Analysis | AWS EC2 Preço à vista | Adaboost Classifier , Decision Tree | Rapidminer | https://github.com/erdiolmezogullari/ml-forecasting-aws-spot-price |
Neste projeto, usaremos dados públicos, que foram coletados por pessoas de terceiros e divulgadas em alguns sites específicos. Como nossos dados estarão relacionados principalmente à computação elástica da Amazon Web Services (AWS) (EC2), eles consistirão em alguns campos diferentes. O EC2 é um tipo de máquina virtual na nuvem da AWS. Uma máquina virtual pode ser criada bem a tempo em nuvem pública ou privada sobre a AWS sempre que você precisar. Uma nova máquina virtual pode ser escolhida em relação a diferentes especificações e configurações em termos de limite de CPU, RAM, armazenamento e banda de rede antes de criá -lo uma vez do zero. As máquinas EC2 também são separadas e gerenciadas pela AWS em diferentes regiões geográficas (US East, US West, UE, Ásia -Pacífico, América do Sul) e zona para aumentar a disponibilidade de máquinas virtuais em todo o mundo. A AWS possui segmentações diferentes, que foram classificadas em relação às especificações do sistema pela AWS para baseadas em diferentes metas (instância macro, propósito geral, computação otimizada, otimização de armazenamento, instância da GPU, otimização da memória). As opções de pagamento são dedicadas, OnDemand e Spot Instância. Como eles fazem custos diferentes para a operação do cliente, os clientes podem preferir diferentes tipos de máquina virtual de acordo com seus objetivos e orçamentos. Em geral, a instância do Spot é mais barata que o restante das opções. No entanto, a instância do Spot pode ser interrompida se o preço de mercado exceder nossa oferta máxima. Em nossa pesquisa, focaremos no pagamento da instância. Nosso objetivo neste projeto será selecionar a instância correta da AWS no mercado de instâncias à vista, de acordo com o requisito do cliente. Planejamos executar a árvore de decisão no streaming de dados para tomar uma decisão rapidamente. Pode ser implementado como uma versão incremental da árvore de decisão, pois os dados estão mudando continuamente