¿Qué es la ciencia de datos?
El presente artículo ofrece un breve recorrido por las características esenciales de la ciencia de datos y del lenguaje de programación Python (dirigido a científicos de datos). Por lo tanto, se cubrirán los siguientes temas:
- Introducción a la ciencia de datos
- ¿Cómo incursionar en el mundo de la ciencia de datos?
- ¿Por qué Python?
- Esquema de los artículos
- Usar ejemplos de código
- Consideraciones de instalación
Introducción a la ciencia de datos
El concepto “ciencia de datos” posee una definición sorprendentemente difícil de concretar, teniendo en cuenta lo omnipresente que se ha vuelto el término.
Los críticos vocales han descartado el término como una etiqueta superflua (después de todo, ¿qué ciencia no involucra datos?) o una simple palabra de moda que solo existe para que los currículums capten la atención de los reclutadores y, de esta forma, conseguir un trabajo relacionado con las tecnologías de última generación.
En mi opinión, estas críticas pasan por alto algo importante. La ciencia de datos, a pesar de su apariencia cargada de exageraciones, es la mejor etiqueta que existe actualmente para denominar al conjunto interdisciplinario de habilidades necesarias para resolver los retos cada vez más importantes que impone la industria y el mundo académico.
Desde mi punto de vista, la mejor definición que existe sobre la ciencia de datos fue ilustrada mediante un Diagrama de Venn por Drew Conway, publicado por primera vez en su blog en septiembre de 2010:
(Recurso: [Drew Conway](http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram).)
Si bien, algunas de las etiquetas en las intersecciones son un poco irónicas, el diagrama captura la esencia de lo que la gente quiere decir cuando habla sobre la "ciencia de datos": es fundamentalmente un tema interdisciplinario .
En este contexto, la ciencia de datos comprende tres áreas distintas y superpuestas:
- Habilidades estadísticas para modelar y resumir conjuntos de datos (cada vez más grandes).
- Habilidades informáticas para diseñar y utilizar algoritmos que almacenen, procesen y visualicen los datos de manera eficiente.
- La adquisición de un dominio , lo que podría considerarse como la formación "clásica" en un tema, necesaria para formular las preguntas correctas y poder dar respuestas concretas y contextualizadas.
Con esto en mente, es fácil concluir que la ciencia de datos es una herramienta que reúne a diferentes diciplinas y conjunto de habilidades, cuyo objetivo es ser aplicada dentro de un área de especialización en concreto.
Ya sea que se quieran informar los resultados de las elecciones, pronosticar los rendimientos de las acciones, optimizar los clics en los anuncios en línea, identificar microorganismos en las fotos que toman los microscopios, buscar nuevas clases de objetos astronómicos o trabajar con datos en cualquier otro campo, el objetivo de la ciencia de datos es desarrollar las preguntas correctas sobre el área temática elegida y responderlas de forma eficaz y eficiente.
¿Cómo incursionar en el mundo de la ciencia de datos?
En varias conferencias y reuniones centradas en el desarrollo de nuevas tecnologías, como las herramientas de exploración de Big Data, una de las preguntas más comunes es la siguiente: "¿Cómo introducirse al mundo de la ciencia de datos?"
Las personas que preguntan son generalmente estudiantes, desarrolladores o investigadores con mentalidad técnica, a menudo con una sólida experiencia en la escritura de código y el uso de herramientas numéricas y computacionales.
La mayoría de estas personas quieren aprender un lenguaje de programación estadística para dominar la ciencia de datos. En consecuencia, no es que quieran aprender Python per se, la razón principal de querer programar en Python consiste en la versatilidad que tiene el lenguaje, ya que está orientado a objetivos y enfocado en el uso intensivo de datos.
Si bien, existe una gran variedad de videos, publicaciones de blogs y tutoriales disponibles en línea para la audiencia interesada, durante mucho tiempo me he sentido frustrado por la falta de contenido disponible en español, capaz de responder a pregunta básicas sobre la ciencia de datos.
En este sentido, el desarrollo del presente blog es una salida a todos los conocimientos que he adquirido a lo largo de los años sobre las implicaciones de la ciencia de datos. Asimismo, busco transmitir en mi lengua natal las habilidades adquiridas para que millones de usuarios se inspiren y exista una verdadera democratización de las herramientas de software libre.
Al respecto, el blog brinda una introducción a la programación general en Python. El objetivo es que los lectores se familiaricen con lo más básico del lenguaje Python, lo que incluye definir funciones, asignar variables, llamar a métodos de objetos, controlar el flujo de un programa y otras tareas básicas.
Con el objetivo de que los usuarios vyaan subiendo de nivel hasta llegar a manipular bibliotecas como IPython, NumPy, Pandas, Matplotlib, Scikit-Learn y herramientas relacionadas de forma profesional, lo que involucra almacenar, manipular y obtener información de manera efectiva a partir de todo tipo de datos.
¿Por qué Python?
Python se ha transformado en las últimas dos décadas hasta convertirse en una herramienta de primera clase para tareas de computación científica, incluido el análisis y visualización de grandes conjuntos de datos.
No osbtante, este no fue el objetivo original de los creadores del lenguaje Python, teniendo en cuenta que no fue diseñado específicamente para analizar datos o como una herramienta de la programación estadística.
La utilidad de Python, en la ciencia de datos, proviene principalmente del ecosistema grande y activo de paquetes de terceros. Por ejemplo:
- NumPy para la manipulación de datos homogéneos basados en matrices.
- Pandas para la manipulación de datos heterogéneos y datos etiquetados.
- SciPy para tareas informáticas científicas comunes.
- Matplotlib para visualizaciones con calidad de publicación.
- IPython para la ejecución interactiva y el intercambio de código.
- Scikit-Learn para aprendizaje automático y muchas más herramientas que se mencionarán en los siguientes posts.
Python 2 vs Python 3
En el presente blog se utilizará la sintaxis de Python 3, que contiene mejoras de lenguaje que no son compatibles con la serie 2.x de Python.
Aunque Python 3.0 se lanzó por primera vez en 2008, la adopción ha sido relativamente lenta, particularmente en las comunidades científicas y de desarrollo web.
Lo antes mencionado se debe principalmente a que tomó algún tiempo para que muchos de los paquetes y conjuntos de herramientas esenciales de terceros se hicieran compatibles con los componentes internos del nuevo lenguaje.
No obstante, desde principios de 2014, las versiones estables de las herramientas más importantes para la ciencia de datos son totalmente compatibles con Python 2 y 3, por lo que los artículos utilizarán la sintaxis de Python 3 más reciente.
Aunque la gran mayoría de los fragmentos de código en los artículos también funcionan sin modificaciones en Python 2: en los casos en que se utilice una sintaxis incompatible con Py2, haré todo lo posible por anotarlo explícitamente.
Esquema de los artículos
Cada artículo se centra en un paquete o herramienta en particular que aporta una pieza fundamental de la historia de Python para la ciencia de datos.
- IPython y Jupyter: Estos paquetes proporcionan el entorno computacional en el que trabajan muchos científicos de datos que utilizan Python.
-
NumPy: Esta biblioteca proporciona el objeto
ndarray
para un almacenamiento y manipulación eficientes de matrices de datos densas dentro de Python. -
Pandas: Esta biblioteca proporciona el objeto
DataFrame
para el almacenamiento y la manipulación eficientes de datos etiquetados en columnas dentro de Python. - Matplotlib: Esta biblioteca proporciona herramientas para una gama flexible de visualizaciones de datos dentro de Python.
- Scikit-Learn: Esta biblioteca coadyuva a implementar algoritmos de aprendizaje automático dentro de Python.
El mundo de PyData es ciertamente mucho más grande que estos cinco paquetes y cada día se crean nuevos, así como se desarrollan los existente. Con esto en mente, hago todo lo posible a través de estas páginas para proporcionar referencias a otros esfuerzos, proyectos y paquetes interesantes que están ampliando los límites de lo que se puede hacer en Python.
Ahora bien, estos cinco paquetes son fundamentales para gran parte del trabajo que se realiza en el mundo de la ciencia de datos dentro de Python. Espero que sigan siendo importantes y que el ecosistema de Python continúe creciendo a su alrededor.
Usar ejemplos de código
El material complementario (ejemplos de código, figuras, entre otros) está disponible para descargar en https://github.com/JeshuaNomics/JeshuaNomics-DataScience-Python-para-ciencia-de-datos/tree/main/.
El presente blog está aquí para acompañarlo en el camino que toda persona debe recorrer para convertirse en un científico de datos diestro.En general, se ofrecen códigos de ejemplo que pueden ser reutilizados en proyectos personales, el desarrollo de programas o en incorporación de documentación básica.
No es necesario que se comunique con JeshuaNomics para poder utilizar las líneas de código que se muestran. No obstante, si busca reproducir una parte significativa de los artículos, lo único que pedimos es que sea referenciado de manera adecuada.
Por ejemplo, escribir un programa que utiliza varios fragmentos de código de los articulos no requiere permiso. Vender o distribuir un CD-ROM de ejemplos presentados en los artículos o realizar publicaciones científicas con el contenido de los mismos requiere permiso previo.
Reitero, responder una pregunta citando los artículos o citando el código que se brinda en los ejemplos no requiere permiso. La incorporación de una cantidad significativa de texto o código (proveniente de los ejemplos en los artículos), en proyectos personales requiere permiso.
Agradecemos la atribución, pero no la exigimos. Una atribución generalmente incluye el título, el autor, el editor y la URL. Por ejemplo:
¿Qués es la ciencia de datos?, por JeshuaNomics. Copyright 2020 JeshuaNomics, JeshuaNomics-DataScience.com.
Si cree que el uso que hace de los ejemplos de código está fuera del uso legítimo o del permiso dado anteriormente, no dude en contactarnos mediante jeshuanomics@gmail.com.
Consideraciones de instalación
La instalación de Python y el conjunto de bibliotecas que permiten la programación científica es sencilla. Esta sección describirá algunas de las consideraciones al configurar su computadora.
Aunque hay varias formas de instalar Python, la que sugeriría para su uso en ciencia de datos es la distribución Anaconda, que funciona de manera similar ya sea que se use Windows, Linux o Mac OS X.
La distribución de Anaconda viene en dos sabores:
-
Miniconda le brinda el intérprete de Python en sí, junto con una herramienta de línea de comandos llamada
conda
que funciona como un administrador de paquetes multiplataforma orientado a paquetes de Python, similar en espíritu a las herramientas apt o yum, con las que los usuarios de Linux pueden estar familiarizados. - Anaconda incluye tanto Python como conda, y además incluye un conjunto de otros paquetes preinstalados orientados a la programación científica. Debido al tamaño de este paquete, se espera que la instalación consuma varios gigabytes de espacio en el disco disco.
Cualquiera de los paquetes incluidos en Anaconda se puede instalar manualmente sobre Miniconda; por eso sugiero comenzar con Miniconda.
Para comenzar, descargue e instale el paquete Miniconda (asegúrese de elegir una versión con Python 3) y luego instale los paquetes principales utilizados en los artículos:
[~]$ conda install numpy pandas scikit-learn matplotlib seaborn jupyter
A lo largo de los artículos, también se hará uso de otras herramientas más especializadas dentro del ecosistema científico de Python; la instalación suele ser tan fácil como escribir conda install packagename
.
Para obtener más información sobre conda, incluida información sobre la creación y el uso de entornos conda (que recomendaría altamente ), consulte la documentación en línea de conda .
Para obtener más información sobre cómo instalar conda, incluida información sobre el proceso de instalación de paquetes y bibliotecas (que recomiendo altamente dominar), consulte Instalación de Anaconda.