En este repositorio se muestran más de veinte ejercicios prácticos diferentes aplicados a conjuntos de datos reales para la solución de distintos problemas dentro del ámbito de la seguridad de la información mediante la aplicación de técnicas de Machine Learning.
Los ejercicios forman parte de curso de UDEMY Machine Learning desde cero: Proyectos reales en Python 3.
En este curso de 30 horas de vídeo se presentan los fundamentos del Machine Learning desde una perspectiva eminentemente práctica. Cada uno de los ejercicios prácticos presentados en este repositorio, se sustentan en un conjunto de fundamentos teóricos y matemáticos que se exponen a lo largo del curso comenzando con la explicación de los conceptos básicos, al alcance de cualquier persona, y construyendo intuiciones hasta la presentación de técnicas complejas.
Para la ejecución de estos ejercicios se recomienda la instalación de la distribución Anaconda, donde se incluyen todas las utilidades necesarias.
Una vez instalado Anaconda, pueden descargarse los ejercicios mediante el siguiente comando:
git clone https://github.com/shramos/practical-ml-for-cybersecurity.git
Con la utilidad Jupyter Notebook incluida en Anaconda pueden visualizarse y ejecutarse los ficheros descargados.
IMPORTANTE: Para aquellas personas que no dispongan de un entorno adecuado para la instalación de Anaconda, pueden ejecutar los ejercicios en la nube de Google: Google Colaboratory pulsando en el enlace que aparece al comienzo de todos los ejercicios:
- Librerías de Machine Learning
1.1. Introducción a Numpy
1.2. Introducción a Pandas
1.3. Introducción a Matplotlib - Regresión y Clasificación
2.1. Regresión Lineal: Predicción del coste de un incidente de seguridad
2.2. Regresión Logística: Detección de correos de SPAM - Creación de un proyecto de Machine Learning
3.1. Visualización del conjunto de datos
3.2. División del conjunto de datos
3.3. Preparación del conjunto de datos
3.4. Creación de Pipelines y Transformadores personalizados
3.5. Evaluación de los resultados - Support Vector Machines (SVM)
4.1. SVM: Detección de URLs maliciosas - Árboles de decisión
5.1. Árboles de decisión: Detección de malware en Android
5.2. Random Forest: Detección de malware en Android - Selección y Extracción de características
6.1. Técnicas de selección de características
6.2. PCA: Técnicas de extracción de características
6.3. Técnicas de selección del modelo - Clustering
7.1. KMEANS: Detección de transacciones bancarias fraudulentas
7.2. DBSCAN: Detección de transacciones bancarias fraudulentas - Algoritmos probabilísticos
8.1. Naive Bayes: Detección de correos de SPAM - Detección de Anomalías
9.1. Distribución Gaussiana: Detección de transacciones bancarias fraudulentas
9.2. Isolation Forest: Detección de transacciones bancarias fraudulentas - Redes Neuronales Artificiales
10.1. RNAs: Detección de transacciones bancarias fraudulentas
- 2007 TREC Public Spam Corpus: Conjunto de correos electrónicos de SPAM y legítimos.
- NSL-KDD: Conjunto de datos con flujos de tráfico de red maliciosos y legítimos.
- URL-2016: Conjunto de datos de URLs maliciosas y legítimas.
- CICAAGM: Conjunto de tráfico de red producido por aplicaciones Android legítimas y maliciosas.
- Creditcard: Conjunto de datos con transacciones bancarias legítimas y fraudulentas.
Para más conjuntos de datos relacionados con el ámbito de la seguridad de la información: