En este apasionado repositorio de recolección de auto ritmo, encontrará muchos desafíos de aprendizaje automático, minería de datos e ingeniería de datos que he estado abordando hasta ahora. A lo largo de esta directriz, atraviesará los detalles de proyectos y repositorios.
Espero que disfrute mientras revisa esos repositorios relacionados con ML, minería de datos e ingeniería de datos en la tabla, a continuación.
Puede comunicarse conmigo cuando desee obtener más información sobre los proyectos.
| Problema | Métodos | Libraciones | Repositorio |
|---|---|---|---|
| Conversión de la página de destino | AB Testing , Z test | pandas , statsmodel | Hacer clic |
| Integración de la moda Mnist (CNN) Modelo en TensorBoard y Mlflow | CNN , Deep Learning | Keras , MLflow , Pandas , Sklearn | Hacer clic |
| Dockerize una aplicación Apache Flink a través de Docker | Apache Flink Table & SQL | Apache Flink Table & SQL , Docker , Docker-Compose | Hacer clic |
| Rastreador como servicio | Buscando ( DFS , BFS ) | GO , Neo4j , Redis , Docker , Docker-Compose | Hacer clic |
| Predicción omitir acción en el conjunto de datos de música | LightGBM , Linear Reg , Logistic Reg. | Sklearn , LightGBM , Pandas , Seaborn | Hacer clic |
| Clasificación de peinado | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | Hacer clic |
| Análisis de series de tiempo de Sarimax | ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | Hacer clic |
| Problema de clasificación de varios idiomas y múltiples etiquetas en el conjunto de datos de moda | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | Hacer clic |
| ¿Cuál atrapa todo el sms de spam? | Naive Bayesian , SVM , Random Forest Classifier , Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | Hacer clic |
| ¿A qué novela pertenezco? | Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | Hacer clic |
| ¿Por qué los clientes eligen y reservan vehículos específicos? | Random Forest Classifier | Sklearn , Pandas , Seaborn | Hacer clic |
| Impacto de pronóstico de promociones (promoción1, promoción2) en las ventas en Alemania, Austria y Francia | Random Forest Regressor , ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | Hacer clic |
| Tutorial de clasificación de bosques aleatorios en Pyspark | Random Forest Classifier | Spark (PySpark) , Sklearn , Pandas , Seaborn | Hacer clic |
| Enriquecimiento de datos espaciales: une dos conjuntos de datos de geolocalización utilizando Kdtree | Kd-tree | cKDTree | Hacer clic |
| Implementación del algoritmo K-means desde cero en Java | K-Means | Java SDK | Hacer clic |
| Pronóstico de AWS Spot Price mediante el uso de Adaboosting en RapidMiner | Adaboost Classifier , Decision Tree | Rapidminer | Hacer clic |
Por favor, desplácese hacia abajo para ver los detalles de los proyectos de manera integral y visite su repositorio.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Conversion | Minorista | AB Testing , Z test | pandas , statsmodel | https://github.com/erdiolmezogullari/ml-ab-testing |
En este proyecto, las pruebas A/B se realizaron en el conjunto de datos del curso de Udacity. Consiste en 5 columnas, <user_id, timestamp, group, landing_page, converted> . En las pruebas A/B, utilizamos 3 columnas de ellos, group, landing_page, and converted .
Una vez simulamos algunos experimentos n veces con respecto a las tasas de conversión ( control, treatment ) ya obtenidas sobre el conjunto de datos. Después de obtener la idea adicional sobre el conjunto de datos con esta simulación, supusimos una hipótesis nula y una tesis alternativa. Para reclamar nuestra veredad de la hipótesis alternativa, calculamos la puntuación crítica Z utilizando el método Z test con respecto al alfa (0.05), y luego revisamos la versión beta y la potencia con respecto al tamaño del efecto del experimento.
Tenga en cuenta que puede consultar ab_test.md para obtener más información sobre la prueba de hipótesis y las pruebas A/B con algunas fotos importantes.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Prediction | Mnist de la moda | CNN , Deep Learning | Keras , MLflow , Pandas , Sklearn | https://github.com/erdiolmezezogullari/ml-fmnist-mlflow-tensorboard |
En este proyecto, utilizamos Docker Container Technologies para crear una plataforma ML desde cero. Consiste en cuatro contenedores Docker diferentes (Mlflow, Notebook, Postgres, Tensorboard) que ya están construidos en docker-compose.yml
Los detalles de los contenedores se pueden encontrar en el directorio ./platform . Cada servicio de contenedor tiene un DockerFile específico correspondiente a los directorios (MLFLOW, Notebook, Postgres, TensorBoard) en el directorio de plataforma
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Implementation | Haga clic en el conjunto de datos de transmisión | Apache Flink Table & SQL | Apache Flink Table & SQL , Docker , Docker-Compose | https://github.com/erdiolmezezogullari/de-flink-sql-as-a-docker |
En este proyecto, utilizamos Docker Container Technologies para lanzar la aplicación Flink Cluster y Flink por separado desde cero. Flink Cluster (plataforma) consta de dos contenedores Docker diferentes (JobManager, TaskManager) que ya están integrados en Docker-Compose.flink.yml. La aplicación Flink consta de un contenedor Docker que ya usa un DockerFile (./app-flink-base/dockerfile) y un script de shell (./app-flink-base/run.sh) para enviar el archivo jar para agruparse en docker-compose-app-flink.yml.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Implementation | N / A | Buscando ( BFS , DFS ) | GO , Neo4j , Redis , Docker , Docker-Compose | https://github.com/erdiolmezezogullari/de-crawler-as-a-service |
En este proyecto, se implementó un servicio simple de rastreadores desde cero e se integró en los sistemas Redis y Neo4j NoSQL mediante el uso de Docker y Docker-compose . El servicio de rastreadores está rastreando la primera URL objetivo, y luego visitar el resto de las URL en los documentos HTML obtenidos, respectivamente y recursivamente. Mientras se arrastra los documentos HTML correspondientes a las URL, podría referirse a 1 de 2 de 2 algoritmos de búsqueda diferentes ( BFS, DFS ). Esos algoritmos de búsqueda fueron impulsados por go routines en GO para acelerar el servicio de rastreo.
Durante el rastreo, existe la posibilidad de que un montón de rutinas GO que se crearían puedan obtener y procesar los mismos documentos HTML al mismo tiempo. En este caso, el rastreador puede crear datos inconsistentes. Por lo tanto, el sistema NoSQL de valor clave Redis se prefería usar en este proyecto para resolver ese problema y construir un sistema robusto y consistente.
Cada URL puede referirse a la otra URL diferente o a sí misma en un documento HTML. Esa relación entre dos URL puede llamar como un enlace. Hay una manera fácil de representar esos enlaces y URL rastreados mediante el uso de una estructura de datos específica, que es gráfico. Por lo tanto, se usaron gráficos Neo4j nosql para representar y visualizar el gráfico que consiste en URL y enlaces. Durante el rastreo, el servicio de rastreo está creando un nuevo nodo para cada URL y un nuevo enlace para cada par de URL, o actualizar los nodos y enlaces existentes en Neo4j también utilizando Cypher Query.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Prediction | Conjunto de datos de música | LightGBM , Linear Reg , Logistic Reg. | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-predicción-skip-action |
En este proyecto, necesitamos predecir la probabilidad de omitir la acción realizada por los oyentes, quienes escuchan musales. Ya que no tenemos ninguna clase ya etiquetada por nadie. En estas circunstancias, necesitamos crear una etiqueta objetivo que pueda resolver el problema. Por lo tanto, cualquier variable objetivo continua debe elegir como una característica objetivo. Según las características que creamos, per_listen (percentage of listen) será más adecuado para ese problema, ya que obviamente da una idea de omitir la acción. Si lo elegimos como una característica objetivo, este problema resultará un problema de puntuación/probabilidad debido a tener una relación de tiempo de escucha, que tiende entre 0 y 1.
Si queremos convertir ese problema en un problema de clasificación, podemos determinar un camarero para omitir a Aciton como regla de golpe. per_listen denota cuánto porcentaje de la pista escuchó el oyente. Entonces, nuestro umbral podría ser del 25%, 50% incluso del 51% y así sucesivamente. Sin embargo, antes de tomar una decisión, podemos consultar la función de distribución acumulativa complementaria (CCDF) de per_listen . Sería una idea sobre nuestro umbral de razonamiento. Según la siguiente parcela, tenemos el 65% de las instancias, cuyo valor per_listen es mayor que 0.5. Por lo tanto, 0.5 es razonable, sin embargo, cuando pensamos en ello más realista, menos de 0.5 alrededor de 0.25 sería más adecuado determinar cualquier acción de omisión.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Classification | Conjunto de datos de peinado | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-hairstyle-clasification |
En este proyecto, el conjunto de datos contiene una muestra de 10000 imágenes minadas de Instagram y agrupadas basadas en el peinado que muestran.
El cluster variable representa el clúster de peinado al que la imagen ha sido asignada por el algoritmo de reconocimiento visual.
Cada fila contiene la url variable que es el enlace a la imagen y el número de me gusta junto con los comments por imagen. El user_id es la ID única de la cuenta de Instagram desde la cual viene la publicación y la id de variable es el identificador único asociado con la publicación en sí.
Cada publicación contiene la fecha ( date_unix ) en formato UNIX cuando la imagen se publicó en Instagram y, además, la fecha se ha convertido en diferentes formatos ( date_week -> Número no iso de la semana, date_month -> el mes, date_formated -> Fecha completa DD/mm/yy) en parte para usar en análisis anteriores. Siéntase libre de convertir esa variable de una manera que se adapte a su análisis.
Además, se agregó un clasificador influencer_flag a cada una de las imágenes que tienen más de 500 me gusta, marcándolas como publicaciones de influencia.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Time Series Analysis | Estadísticas de trabajo | ARIMA , SARIMAX | statsmodels , pandas , sklearn , seaborn | https://github.com/erdiolmezegullari/ml-imensies-analysis-sariMax |
En este proyecto, utilizamos la técnica de análisis de series de tiempo para descomponer nuestros datos en 3 componentes como el siguiente:
1-Trend (T)
2-Seasonility (S)
3-Residual (R)
Una vez que necesitemos obtener un conjunto de datos estatinal antes de realizar el análisis de series de tiempo (TSA), sin problemas, sería fácil hacer una predicción sobre un conjunto de datos estacionarios, ya que ya satisfaría las preopersias de la distribución normal en términos de media y varianza, más o menos. Por lo tanto, necesitamos profundizar en el conjunto de datos sin procesar aplicando algunas técnicas EDA para exponer una visión valiosa de los datos relacionados con la tendencia y la sazonilidad si es posible observar en EDA. Después de completar la etapa de análisis de datos, necesitamos elegir las mejores técnicas disponibles (por ejemplo, ARIMA, Sarimax) para realizar en el conjunto de datos de acuerdo con nuestro conocimiento que obtendríamos en EDA.
En la etapa de EDA, aplicaremos un montón de técnicas como la placa de caja, la estadística rodante (media, ETS) por funciones basadas en el tiempo (año, día, día de la semana y trimestre) para encontrar 2 componentes (tendencia, temporada de temporada) de 3 componentes de series temporales sobre trazas específicas, rougly. Esas parcelas darán comentarios razonables para TSA antes de comenzar.
En la etapa de TSA, construiremos diferentes modelos para las sobrevaloras no estacionales y estacionales mediante el uso de ARIMA y Sarimax en el paquete Statsmodels, respectivamente.
Dado que las partes más desafiantes de la TSA es encontrar parámetros óptimos (P, D, Q) y (P, D, Q, S) de esas técnicas, nos referiremos a la autocorrelación (ACF) y las funciones de autocorrelación parcial (PACF) para encontrar correlaciones de tiempo significativas en términos de realización de la promedio de autorregresión (AR) o el modelo de mudanza (MA), o el auténtico (SAR).
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Classification | Conjunto de datos de moda | LightGBM , TF-IDF | Sklearn , LightGBM , Pandas , Seaborn | https://github.com/erdiolmezezogullari/multi-classificación |
En este proyecto, el conjunto de datos se recopiló en diferentes sitios web de moda. Consiste en 7 campos como a continuación.
id : un identificador de producto úniconame : El título del producto, como se muestra en nuestro sitio webdescription : La descripción del productoprice : el precio del productoshop : la tienda de la que puede comprar este productobrand : la marca de productoslabels : las etiquetas de categoría que se aplican a este productoLas características del texto (nombre, descripción) se encuentran en diferentes idiomas, como inglés, alemán y ruso. El formato de la característica objetivo es Multilabels (60 categorías) que se etiquetaron según correspondiente a la categoría en los sitios web de moda de manera diferente.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
NLP | Texto | Naive Bayesian , SVM , Random Forest Classifier , Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-spam-sms-clasificación |
En este proyecto, aplicamos algoritmos de aprendizaje supervisado (clasificación) y aprendizaje profundo (LSTM).
Utilizamos un conjunto de datos de spam de SMS público, que no es un conjunto de datos puramente limpio. Los datos constan de dos columnas diferentes (características), como el contexto y la clase. El contexto de la columna se refiere a SMS. La clase de columna puede tomar un valor que puede ser spam o ham correspondiente al contexto de SMS relacionado.
Antes de aplicar cualquier método de aprendizaje supervisado, aplicamos un montón de operaciones de limpieza de datos para deshacerse de los datos desordenados y sucios, ya que tiene un contexto roto y desordenado.
Después de obtener un conjunto de datos limpios, creamos tokens y lemas de SMS Corpus por separado usando Spacy, y luego, generamos la bolsa de palabras y TF-IDF de SMS Corpus, respectivamente. Además de estas transformaciones de datos, también realizamos SVD, SVC, PCA para reducir la dimensión del conjunto de datos.
Para administrar la transformación de datos en la fase de capacitación y prueba de manera efectiva y evitar la fuga de datos, utilizamos la clase de tubería de Sklearn. Por lo tanto, agregamos cada paso de transformación de datos (por ejemplo, bag-of-word , TF-IDF , SVC ) y clasificador (por ejemplo, Naive Bayesian , SVM , Random Forest Classifier ) en una instancia de Pipeline de clase.
Después de aplicar esos métodos de aprendizaje supervisados, también realizamos un aprendizaje profundo. Nuestra arquitectura de aprendizaje profundo que utilizamos se basa en LSTM. Para realizar la aprobación de LSTM en Keras (TensorFlow), necesitábamos crear una matriz de incrustación de nuestro corpus. Entonces, utilizamos el enfoque Word2Vec de Gensim para obtener la matriz de incrustación, en lugar de TF-IDF.
Al final de cada procesamiento por diferentes clasificadores, trazamos la matriz de confusión para comparar cuál es el mejor clasificador para filtrar SMS de spam.

| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
NLP | Texto | Deep Learning - LSTM , Word2Vec | Sklearn , Keras , Gensim , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-deep-letarning-kinas-novel |
Este proyecto está relacionado con el problema de clasificación de texto que abordamos con el modelo Deeplearing (LSTM) , que clasifica los párrafos arbitrarios recopilados en 12 novelas diferentes al azar, arriba:
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
En otras palabras, puede pensar en esas novelas son nuestras clases objetivo de nuestro conjunto de datos. Para distinguir la clase real de párrafo, el latente semántico entre los párrafos jugaría un papel importante. Por lo tanto, utilizamos Deeplearing (LSTM) en la parte superior de Keras (Tensorflow) después de crear una matriz de incrustación por Gensim's word2vec .
Si hay algún latente latente entre las oraciones en el párrafo correspondiente, pensamos que se recolectaron párrafos similares de los mismos recursos (novelas).
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Imbalanced Data | Reserva de coche | Random Forest Classifier | Sklearn , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-imbalanced-car-booking-data |
En este proyecto, creamos un modelo de aprendizaje automático que responde a la pregunta, ¿cuál es la preferencia del cliente? En el conjunto de datos de reserva de automóviles.
Exploramos el conjunto de datos mediante el uso de nuevas características Seaborn y Transformadas y derivadas necesarias.
Además, la forma del conjunto de datos está imbalanced . Significa que la distribución de la variable de destino está sesgada. Para superar ese desafío, ya existen algunas técnicas diferentes (por ejemplo over/under re-sampling techniques ) y enfoques intuitivos. También tratamos de resolver ese problema utilizando técnicas de remuestreo.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Forecasting - Timeseries | Ventas | Random Forest Regressor | statsmodels , pandas , sklearn , seaborn | https://github.com/erdiolmezezogullari/ml-time-series-analysis-on-sales-data |
En este proyecto, necesitamos realizar un análisis de series de tiempo para obtener una nueva visión sobre las promociones. Hay tiendas que están dando dos tipos de promociones, como radio, televisión, correspondiente a Promocho y Promocho2 para que quieran aumentar sus ventas en Alemania, Austria y Francia. Sin embargo, no tienen idea de qué promoción es suficiente para hacerlo. Por lo tanto, el impacto de las promociones en sus ventas son roles importantes en su preferencia.
Para definir una estrategia de promoción bien definida, una vez necesitamos análisis de datos en términos de impactos de las promociones. En ese caso, dado que los datos se basan en series de tiempo, una vez nos referimos a usar time series decomposition . Después de descomprimir los datos observed en componentes de trend , seasonal y residual , expusimos el impacto de las promociones claramente para tomar una decisión de qué promoción es mejor en cada país.
Además, utilizamos Random Forest Regression en este problema de pronóstico para aumentar nuestra decisión.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
ML Service | Generado al azar | Random Forest Classifier | Flask , Docker , Redis , Sklearn | https://github.com/erdiolmezezogullari/ml-dockerized-microservice |
En este proyecto, se desarrolló un ML based micro-service en la cima de REST y Docker después de construir un modelo de aprendizaje automático realizando Random Forest
Utilizamos docker-compose para lanzar los Micro Services, a continuación.
1.Jupyter Notebook,
2.Restful Comm. (Flask),
3.Redis
Después de crear tres contenedores diferentes, nuestro MLASS estaría listo.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
PySpark | Generado al azar | Random Forest Classifier | Spark (PySpark) , Sklearn , Pandas , Seaborn | https://github.com/erdiolmezezogullari/ml-random-forest-pyspark |
En este proyecto, puede encontrar un montón de código de muestra relacionado con cómo puede usar Mllib de Pyspark Spark (clasificador de bosques aleatorios) y tuberías a través de Pyspark.
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Data Enrichment | Espacial | Kd-tree | cKDTree | https://github.com/erdiolmezezogullari/ml-joinspatial-data |
En este proyecto, para construir un script eficiente que encuentre el aeropuerto más cercano a un usuario determinado en función de su geolocalización y la geolocalización del aeropuerto.
Para hacer ese enriquecimiento de datos, utilizamos el algoritmo Kd-tree .
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Implementation | Estadísticas de países | K-Means | Java SDK | https://github.com/erdiolmezegullari/ml-k-meanss |
En este proyecto, el algoritmo de agrupación de K-means se implementó en Java desde cero. Conjunto de datos: https://en.wikibooks.org/wiki/data_mining_algorithms_in_r/clustering/k-means#input_data
| Problema | Datos | Métodos | Libraciones | Enlace |
|---|---|---|---|---|
Forecasting, Timeseries Analysis | AWS EC2 Spot Price | Adaboost Classifier , Decision Tree | Rapidminer | https://github.com/erdiolmezezogullari/ml-forecasting-aws-spot-price |
En este proyecto, utilizaremos datos públicos, que fueron recopilados por personas de terceros y lanzados a través de algunos sitios web específicos. Dado que nuestros datos estarán relacionados principalmente con la computación elástica de Amazon Web Services (AWS) (EC2), estará consistir en algunos campos diferentes. EC2 es una especie de máquina virtual en la nube de AWS. Una máquina virtual se puede crear justo a tiempo en nube privada o pública a través de AWS siempre que la necesite. Se puede elegir una nueva máquina virtual con respecto a diferentes especificaciones y configuraciones en términos de CPU, RAM, almacenamiento y límite de banda de red antes de crearla una vez desde cero. Las máquinas EC2 también están separadas y administradas por AWS en diferentes regiones geográficas (US East, US West, UE, Asia Pacífico, América del Sur) y zona para aumentar la disponibilidad de máquinas virtuales en todo el mundo. AWS tiene diferentes segmentaciones, que se clasificaron con respecto a las especificaciones del sistema por AWS para basarse en diferentes objetivos (instancia macro, propósito general, calcular optimizado, almacenamiento optimizado, instancia de GPU, memoria optimizada). Las opciones de pago son dedicadas, Ondemand e instancia spot. Dado que tienen un costo diferente para la operación del cliente, los clientes pueden preferir diferentes tipos de máquina virtual de acuerdo con sus objetivos y presupuestos. En general, la instancia de Spot es más barata que el resto de las opciones. Sin embargo, la instancia spot puede interrumpirse si el precio de mercado excede nuestra oferta máxima. En nuestra investigación, nos centraremos en el pago de instancias spot. Nuestro objetivo en este proyecto será seleccionar la instancia de AWS correcta desde el mercado de instancias de Spot de acuerdo con el requisito del cliente. Planeamos realizar un árbol de decisión en la transmisión de datos para tomar una decisión sobre la marcha. Se puede implementar como una versión incremental del árbol de decisión ya que los datos están cambiando continuamente