El que hizo el curso en Colab:
D:
Aprender los conceptos clave
Procesamiento de Datos con Scikit-Learn para Machine Learning
Aprendizaje Supervisado: Datos y Observación
Modelos de Clasificación y Regresión con Scikit-learn
Matemáticas clave para dominar Machine Learning
Iniciar un proyecto con sklearn
Configuración Avanzada de Entornos de Desarrollo en Visual Studio Code
Verificación de Librerías para Desarrollo en Python
Análisis de Datos para la Felicidad y Salud Cardiaca
Optimización de features
Elementos Clave para Mejorar Modelos de Machine Learning
Reducción de Dimensionalidad: Análisis de Componentes Principales
Optimización de Modelos en Python: Uso de PCA y Regresión Logística
Clasificación Binaria con PCA y Regresión Logística
Análisis de Kernel: Modelos de Clasificación Avanzada
Regularización en Machine Learning: Lasso y Ridge
Regularización: Lasso y Ridge para predicción efectiva
Regresión Lineal: Minimización de Pérdidas y Coeficientes
Regularización ElasticNet: Combinando Lasso y Ridge en Scikit-learn
Regresiones robustas
Identificación de datos atípicos en análisis estadístico
Regresiones robustas: técnicas para manejar valores atípicos
Regresión Lineal y Máquinas de Soporte: Lidando con Datos Corruptos
Automatización de Código para Modelos Predictivos en Python
Métodos de ensamble aplicados a clasificación
Esamblaje de Modelos de Machine Learning: Bagging y Boosting
Clasificación Binaria con Bagging Classifier en Scikit-Learn
Implementación de métodos de ensamble en Python
Clasificación con Gradient Boosting en Datos de Enfermedades Cardíacas
Clustering
Agrupamiento de Datos: Clustering No Supervisado
"Algoritmos de Clustering: Agrupación de Datos con K-Means"
Agrupamiento de Datos Usando MeanShift en Python
Optimización paramétrica
Validación Cruzada en Modelos de Aprendizaje Automático
Validación Cruzada con Scikit-learn y Árboles de Decisión
Optimización de Modelos con Grid Search y Random Search
Optimización de Modelos con Random Forest en Python
Auto-sklearn: Optimización Automática de Modelos de Machine Learning
Salida a producción
Estructura de Proyecto en Python: Organiza y Optimiza tu Código
Programación Orientada a Objetos con Python Avanzado
Creación de Servidor Web con Flask en Python
Modelos de Machine Learning: Selección y Optimización
Python para Análisis de Datos Financieros
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La organización de tu entorno es clave para un desarrollo eficiente. Siempre que empieces un nuevo proyecto, especialmente en Machine Learning, es fundamental estructurar adecuadamente tus carpetas y archivos. Una sugerencia práctica es crear una carpeta llamada "in" para documentos de entrada como texto e imágenes. Luego, dentro de la raíz de tu proyecto, agrega un directorio "out" donde guardarás las exportaciones y resultados como modelos generados o gráficos. Además, una carpeta "models" te ayudará a mantener organizados tus modelos probados. De esta forma, evitas que todo esté revuelto y puedes gestionar fácilmente los resultados.
Al desarrollarse un proyecto, varios archivos son necesarios:
Para inicializar una clase en Python, se utiliza la instrucción class
. Los atributos y métodos dentro de la clase permiten reutilizar el código sin necesidad de reescribirlo.
class Utiles:
def __init__(self):
pass
def load_from_csv(self, path):
return pd.read_csv(path)
Tener métodos en un archivo de utilidades simplifica el proceso de escalar y manipular datos. Por ejemplo, funciones para escalar datos o dividir conjuntos son esenciales.
def split_data(dataset, target_column, drop_columns):
X = dataset.drop(columns=drop_columns)
y = dataset[target_column]
return X, y
Esta forma de organización te permite modificar y mejorar funciones sin afectar el flujo principal del programa. Además, cuando es necesario cargar datos, simplemente puedes llamarlos a través de la clase y métodos predefinidos.
Una vez organizada la estructura, el main.py
puede cargar datos de un CSV usando métodos definidos en utils.py
. Asegúrate de importar librerías necesarias como Pandas para evitar errores.
import pandas as pd
from utils import Utiles
util = Utiles()
data = util.load_from_csv('in/felicidad.csv')
Esto incrementa la flexibilidad de tu código, permitiéndote adaptarlo a cambios futuros sin complicaciones. ¡Sigue aprendiendo y aprovechando las ventajas del código modular!
Aportes 25
Preguntas 1
El que hizo el curso en Colab:
D:
Al inicio fue muy raro trabajar con los datasets desde el editor de código y no desde jupyter, pero ahora todo tiene sentido. Se ve excelente la forma de terminar este curso.
Excelente clase, ojalá poder dar likes a las clases que más te gustan 😅
Revisión de nuestra arquitectura de código
Ahora vamos a convertir los scripts que tenemos en un código que sea modular y extensible con facilidad para que nuestra arquitectura pueda salir a producción de una manera exitosa.
Una estructura de carpetas que sea organizada para poder gestionar todo lo que vas a necesitar en cualquier proceso de Machine Learning.
Carpetas:
Archivos:
Cada clase será un archivo que tenga su propia responsabilidad y se encargue específicamente de una tareas concreta.
Este curso aunque ya tiene unos 4 años (sabemos como transcurre el tiempo de rápido en tecnología) es de los mejores que he tomado aquí. Con ningún otro hasta ahora había tocado el tema de la puesta en producción 🥇🚀🔥🤖🦾
Muy buena clase. Muchas gracias
Para aquellos que utilizan Jupyter Notebooks desde Visual Studio Code, pueden importar cualquier notebook (.ipynb) , instalando el módulo de python import_ipynb
El código para llamar Utils sería:
import import_ipynb
from utils import Utils
Lo pueden instalar con pip
!pip install import_ipynb
¡Saludos!👑
En cuanto a mysql creo que no seria un gran problema, con mysql workbench puedes convertir tus archivos .sql a archivos .csv.
nice amigo…me pareció excelente incorporar poo en proyectos de data science
Al ver esta clase me dio gusto haber llevado POO en la Uni por 6 meses.
Pero, no se preocupen, aquí en Platzi también se puede aprender:
La arquitectura de código, a menudo conocida como arquitectura de software, se refiere a la estructura y organización del código fuente de un programa o sistema de software. Una arquitectura de código bien diseñada es esencial para desarrollar software que sea mantenible, escalable, flexible y fácil de entender
Esta clase fue buenisima y se complementa muy bien con lo visto en el curso de POO del principio
Recuerden que vimos algo similar para la gente que lo hace en google colar, deep note o jupiter en el curos de manejo de datos faltantes.
%run(LA DIRECCION DE NUESTRO ARCHIVO)
#ejemplo si tenemos nuentreo archivo .ipynb en la misma carpeta
%run pandas-missing-extension.ipynb
asi que se puede hacer lo mismo en google colap, eso si , el modulo que ustedes vayan a crear es mejor que cuente con un decorador para facilitar la busqueda del metodo que necesitan.
@pd.api.extensions.register_dataframe_accessor("missing")
Muy interesante la arquitectura
Tengo un problema con la librería utils con Anaconda. Cuanto intento instalar utils mediante “conda install utils”, no me lo permite.
Luego utilizo el “pip install utils” y si me deja instalar pero Visual Studio Code no lo reconoce ni sale en conda list.
Por útilmo utilizo “python -m pip install utils”, se instala. Visual Studio Code si lo reconoce y sale en conda list, pero a la hora de ejecutar el código me sale el siguiente error:
“ImportError: cannot import name ‘Utils’ from ‘utils’ (/home/demarquezs/anaconda3/envs/ML/lib/python3.10/site-packages/utils/init.py)”
¿Me podrían ayudar por favor?
No entiendo por qué? me sale este error, en el archivo utils tengo como parámetros de la función self y path.
Traceback (most recent call last):
File “Platzi/scikitPlatzi/main.py”, line 6, in <module>
data = utils.load_from_csv(’./in/felicidad.csv’)
TypeError: load_from_csv() missing 1 required positional argument: ‘path’
Like por más cursos como este, lo he disfrutado mucho 🚀🔥💯🥇
La única desventaja que puede tener trabajar con CLASES en proyectos pequeños es que la implementación de clases podría aumentar la cantidad de código necesario para realizar tareas relativamente simples. En proyectos más pequeños, donde la funcionalidad adicional proporcionada por las clases puede no ser necesaria, el uso de este enfoque puede parecer excesivo y agregar una sobrecarga en términos de complejidad y cantidad de líneas de código.
En tales casos, una implementación más sencilla y procedural podría ser suficiente para cumplir con los objetivos del proyecto, sin la necesidad de introducir la estructura adicional que conlleva el uso de clases.
Es importante tener en cuenta que esta desventaja es específica de proyectos pequeños o simples, ya que en proyectos más grandes y complejos, la programación orientada a objetos y el uso de clases se vuelve más valiosa para lograr la modularidad, la reutilización de código y un diseño más mantenible y escalable. La elección de utilizar clases o no, dependerá de la naturaleza y alcance del proyecto, así como de las necesidades y preferencias del equipo de desarrollo.
Yo haciendo todo en kaggle … igual puedo adjuntar foto de la estructura de un proyecto jajaja.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?