No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Quedan menos de 24 hrs para aprender Inglés, AI y más a precio especial.

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
0 Hrs
5 Min
50 Seg

Bonus: divide y vencerás

15/16
Recursos

Aportes 40

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hizo falta un poco mas de este tema!

Me gustaría que primero se diera el curso de la terminal y luego este en la escuela de Data Science, para no estar tan loco con la terminal y sus términos.

Bonus: Divide y vencerás.

  • En proyectos grandes, es complicado mantener un ambiente virtual. 😵
  • Divide y vencerás es partir un problema difícil en partes pequeñas. Cada paquete se desarrolla a su propio ritmo (no siempre preocupándose de la compatibilidad con otros módulos). 🤯
  • Hay tres tipos de paquetes: Externos, Modelo y de Comunicación. Entonces podemos crear en multiples ambientes en un solo proyecto. 👀 Para esto, creamos una carpeta llamada envs y creamos tres documentos: external.yml, model.yml y comunicacion.yml.
  • Snakemake es un paquete que implementa muy bien este concepto. Es un motor de workflows 👀. Cada paso lo ejecuta con un ambiente específico.

Snakemake - Snakemake 6.8.0 documentation

Les recomiendo fuertemente tomar el curso de terminal antes que este curso

Si desean saber más sobre el divide y vencerás, pueden ir al curso de Configuración Profesional de Entorno de Trabajo para Ciencia de Datos, específicamente a esta clase.

En mi caso nunca había estudiado algo de esto, y por ello considero que fue lo justo y necesario en este curso, si hubiera explicado más profundo no habría entendido nada. Quizás quienes sí tienen base de estudio de esto ya se parecerá fácil, pero para personas como yo que no sabíamos nada de esto, creo que está justo y razonable.

¡Súper este bonus!! De verdad que lo más importante es dividir tú proyectos por ambientes, para que así las dependencias puedan tener sus actualizaciones sin afectar a las otras! Esto es un superbonus! Muchas gracias profe Jesús. 😃

A lo que quieran estructurar sus proyectos de data science, este post lo pueden ayudar mucho:
https://towardsdatascience.com/structure-up-your-data-science-project-4ee934d9ce11

Lectura recomendada

Saludos comunidad, les comparto esta lectura sobre Snakemake:
https://f1000research.com/articles/10-33/v1
Si en esta clase acaban de enterarse de la existencia de Snakemake (como yo) les recomiendo que le echen una hojeada al articulo y lo guarden para una posterior lectura profunda. Como no sabemos mucho de Snakemake aun, nos perderemos del 80% del contenido del articulo leyendolo de principio a fin. Pero nos beneficiara leerlo por completo mas adelante.

Del articulo:

This makes Snakemake one of the most widely used workflow management systems in science.

Esta tecnica de divide y venceras yo la aplico en muchas otras areas, como en el estudio, donde todos los dias trato de estudiar asi sean pequeñas capsulas, que van sumando dia tras dia, y asi en unas semanas, y meses logro completar muchos cursos y rutas de aprendizajes, la clave es la constancia.

Muy interesante. Creo que le falto trabajar más este concepto que es básico.

En el terminal si a alguien no los deja instalar mamba porque les sale este mensaje al final "EnvironmentNotWritableError: The current user does not have write permissions to the target environment."
Lo que me resolvió fue cerrar el terminal y volver a ejecutarlo como administrador, en mi caso estaba usando el terminal de Anaconda.

Puedes crear varios ambientes virtuales por proyecto:

  • proyecto_1
    • data
    • models
    • notebook
    • envs
      • external.yml
      • model.yml
      • comunication.yml

Documentación oficial de Snakemake

En proyectos grandes de ciencia de datos, puede ser complicado mantener un ambiente virtual debido a la gran cantidad de paquetes y dependencias. Una solución a este problema es dividir el proyecto en partes más pequeñas y desarrollar cada paquete a su propio ritmo sin preocuparse por la compatibilidad con otros módulos. Esto se puede lograr creando múltiples ambientes virtuales en un solo proyecto utilizando una estructura de carpetas como la de envs, que contiene tres archivos YML para paquetes externos, modelos y de comunicación.

Para implementar este enfoque, se debe crear una carpeta llamada envs y dentro de ella crear los archivos Y√ML para los tres tipos de paquetes. Para cada paquete, se especifican las versiones de los paquetes y dependencias necesarias. Además, se utiliza Snakemake, un motor de workflows, que permite ejecutar cada paso del proyecto con un ambiente virtual específico.

La ventaja de este enfoque es que permite mantener cada paquete en su propio ambiente virtual, lo que facilita la gestión de dependencias y evita conflictos entre paquetes. Además, la estructura de carpetas envs permite tener múltiples ambientes virtuales en un solo proyecto. Sin embargo, la creación y gestión de múltiples ambientes virtuales puede ser compleja y requiere un mayor esfuerzo de desarrollo.

viendo el tema y comparando con lo visto anteriormente… faltó mas detalle en esta parte y parece algo muy útil!

No sé si seré capaz de finalizar este curso: Sufro de ofidiofobia.

Muy buen consejo, lo que planteas, mas no seria mejor ejecutarlo en colab o deepnote por lo grande de un proyecto, o en alguna solucion como AWS, GCP o Azure

En este capitulo se me hizo similar a como se maneja la programación en java, como modelo vista controlador y cada uno con sus dependencias que entre ellos llegan a hacer un proyecto al final del día jeje

16. Bonus: divide y vencerás

  • Resolver un problema grande dividiéndolo en problemas pequeños.
  • Creando múltiples ambientes para el mismo proyecto.
  • Snakemake

Es muy interesante la estrategia, pero hubiese sido mejor si colocaran una lectura o algo donde pudieramos ver algo mas practico.

Con sinceridad, esta ultima parte del curso se me hizo pesado, engorroso y poco practico, si fuera un newbie que esta empezando este mundo de la ciencia de datos, lo ultimo que quisiera es que me vengan a confundir con tecnisismos de “ambientes virtuales” son conceptos muy abstractos, utiles a futuro tal vez, pero que solo hacen que uno se pierda y se confunda, en este caso le tengo que dar manita abajo a la estructura del curso, pienso que como sugerencia esta ultima parte deberia ir en otro curso aparte

Malísima esta clase.

Información resumida de esta clase
#EstudiantesDePlatzi

  • En proyectos grandes es un gran reto mantener este proyecto en un solo ambiente, lo mejor es crear varios ambientes para poder llevarlo de mejor manera

Me parece insteresante esta estrategia de divide y venceras. Es mejor tener multiples ambientes en un proyecto para no tener problemas de conflicto.

porfavor necesito subtitular los videoos !

veee genial esta brutal

En el otro curso me imagino que se verá a profundidad, y parece más complejo, pero hay que hacerlo.
Curso de Configuración Entorno para Ciencia de Datos - Platzi

Espero que este tema se toque mas a fondo en proximos cursos de python.

Excelente curso, me encanto

Deberíamos tener un curso o conversatorio a cerca de los diferentes paradigmas de programacion 😁

si, falto mucho mas sobre este tema.

Es un tema que requiere un poco mas de profundidad!

Separar un ambiente en sub ambientes usando snakemake

Me recuerda al MVC :3

Que buen bonus!!!.
.
Excelente curso Jesus. Muchas gracias!!!

No solo Snakemake, también se puede hacerlo con Poetry.
Sin embargo también una requiere establecer un workplace en Visual Studio Code.
No he visto que haya cursos de eso, pero existen muchos post sobre como hacer este tipo de divisiones en Google.

https://python-poetry.org/

Esta parte de AV estuvo pesada. Me va a tocar verla varias veces.

usage: mamba [-h] [-V] command …

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
command
clean Remove unused packages and caches.
compare Compare packages between conda environments.
config Modify configuration values in .condarc. This is modeled after the git config command. Writes to the
user .condarc file (/Users/macbook/.condarc) by default.
create Create a new conda environment from a list of specified packages.
help Displays a list of available conda commands and their help strings.
info Display information about current conda install.
init Initialize conda for shell interaction. [Experimental]
install Installs a list of packages into a specified conda environment.
list List linked packages in a conda environment.
package Low-level conda package utility. (EXPERIMENTAL)
remove Remove a list of packages from a specified conda environment.
uninstall Alias for conda remove.
run Run an executable in a conda environment. [Experimental]
search Search for packages and display associated information. The input is a MatchSpec, a query language
for conda packages. See examples below.
update Updates conda packages to the latest compatible version.
upgrade Alias for conda update.
repoquery Query repositories using mamba.