Python para todos: 5 formas de cargar datos para tus proyectos de Machine LearningPaloma Recuero de los Santos 1 febrero, 2022 Uno de los primeros pasos que hay que dar cuando queremos crear un modelo de aprendizaje automático en Python es cargar los datos a partir de los cuales construiremos nuestro modelo. Hay distintas formas de llevar a cabo esta tarea, que dependerán del formato que tengan los datos, su ubicación o los recursos/librerías de Python que queramos utilizar. Empezaremos por lo más sencillo. Cargar de ficheros csv en Python. Se trata de uno de los formatos de datos más habituales. A la hora de cargar un fichero csv, deberemos tener en cuenta algunos detalles como: Su ubicaciónSi tienen cabecera o “header”Si tiene comentarios (señalados por medio de #)Qué tipo de delimitador utiliza (“,”, “/”, espacios en blanco etc) Lo primero que habrá que hacer, por tanto, es guardar los datos en nuestro directorio de trabajo. Comprobamos cuál es mediante el comando os.getcwd(). Si queremos cambiarlo, podemos usar el comando chdir(), ojo que tenemos que usar “\” dobles para especificar la nueva ruta: Una vez que tenemos claramente definido el directorio de trabajo, guardamos en él los datasets con los que vamos a trabajar en nuestros proyectos. Para cargar estos datos en Python podemos usar distintas opciones: Cargar los ficheros CSV usando el módulo CSV de la librería estándar de Python Cargar los ficheros CSV usando NumPyCargar los ficheros CSV usando PandasCargar los ficheros desde la URLCargar ficheros de pruebas desde librerías (Staatsmodels, etc) 1. Usando el módulo csv de la librería estándar Para extraer los datos de un fichero csv, primero lo «abrimos» con la función open(). Después, usamos la función, csv.reader(), que lee línea a línea el fichero, y hace una lista de todas las columnas en el objeto reader. Es mucho más sencillo hacerlo que explicarlo, así que mejor, lo vemos con un ejemplo. Hemos guardado, en nuestro directorio de trabajo, un dataset de ejemplo con datos sobre diabetes. 2. Usando NumPy Otra forma de cargar los datos es usando la función numpy.loadtxt() de la librería NumPy. Para ello, lo primero que tendremos que hacer es cargar la librería. Esta función asume que el fichero no tiene cabeceras, y que todos los datos tienen el mismo formato. Como no es el caso de nuestro dataset sobre diabetes, usaremos el modificador «skiprow» para indicar que no debe tener en cuenta la primera fila. En este ejemplo, también le hemos pedido que nos indique las dimensiones del dataset y nos muestre los datos. 3. Usando Pandas Esta tercera forma de cargar los datos es, probablemente, la más popular entre los científicos de datos como veremos, por muy buenas razones. En este caso, la función que usaremos es readcsv(). Esta función nos ofrece una gran flexibilidad a la hora de importar datos, ya que de forma automática, o con una simple línea de comando, permite hacer cosas como: Detectar automáticamente las cabeceras o «headers»«Saltar» líneas con el modificador «skiprow«Detectar automáticamente el tipo de datos (número entero, decimal, cadena de texto etc)Identificar campos con datos erróneos o vacíosConvertir los datos en formato csv en un dataframe de Pandas Los dataframes de Pandas son unas estructuras de datos diseñadas especialmente para facilitar el trabajo del analista y científico de datos. Permiten trabajar con datos de todo tipo (enteros, decimales, cadenas de texto) dispuestos en forma de tablas, incluso con series temporales. También se pueden usar como vectores y matrices, lo que permite realizar operaciones de álgebra lineal, como la multiplicación de matrices. Otro aspecto importante de pandas.read_csv() es que puede ejecutarse con la opción chunksize, que, en lugar de cargar el fichero de datos completo en memoria, permite hacerlo en fragmentos (chunks) de tamaño configurable, mejorando mucho la eficiencia en la carga de datos de ficheros muy grandes. Veamos un ejemplo. 4. Desde URL. Otra de las formas más habituales de cargar un dataset es directamente desde la URL donde se alojan los datos. Este método es perfectamente compatible con los anteriores. Por ejemplo, podemos modificar el ejemplo anterior, para que cargue los datos desde su ubicación original. 5. Desde otras librerías. Cuando lo que queremos es hacer una prueba rápida, nos pueden resultar muy útiles los datasets que traen «de serie» algunos de los paquetes más populares como statsmodels, scikit-learn, o seaborn. Se trata de conjuntos de datos de todo tipo «para hacer pruebas» que se conocen como «Toy datasets» y de los que hablaremos con más detalle en el próximo post. En el experimento que hicimos para explicar en qué consiste la regresión logística paso a paso, usamos uno de estos conjuntos de datos. En concreto, el dataset «affairs», de statsmodels. En este post, podéis ver cómo se cargan los datos desde la librería y, si os animáis, seguir el ejemplo completo, explicado paso a paso. Especial San Valentin: ¿Podemos predecir la infidelidad con Inteligencia Artificial? Como veis, hay muchas formas distintas de cargar los datos. Aunque, según nos resulte más sencillo y cómodo, tendremos cada uno nuestra «favorita», es bueno conocer las otras alternativas por si nos surge algún caso en el que resulte conveniente cambiar de método. ¿Cuál es la tuya? Datos de entrenamiento vs datos de testHacia la Data Driven Company: cómo no fallar en la selección de los casos de uso
Víctor Vallejo Carballo AI of Things (V): Recomendación y optimización de contenido publicitario en pantallas inteligentes Conoce los beneficios que tecnologías como las pantallas inteligentes y el Big Data ofrecen al sector de la publicidad exterior
Telefónica Tech Boletín semanal de ciberseguridad, 7—13 de mayo Vulnerabilidad en BIG-IP explotada para el borrado de información El pasado 4 de mayo F5 corregía entre otras, una vulnerabilidad que afectaba a dispositivos BIG-IP (CVE-2022-1388 CVSSv3 9.8), que podría...
Santiago Morante La Inteligencia Artificial en las películas de ciencia ficción: un patrón recurrente de fascinación y terror Así retrata Hollywood los avances en Inteligencia Artificial: descubre qué es el "patrón R.U.R" y por qué lo aplican muchas películas de ciencia ficción
Sandra Tello Hernández Las empresas de tecnología buscan mujeres STEM para impulsar el crecimiento del sector Por qué aumentar la presencia de mujeres en carreras STEM supone una oportunidad de crecimiento para el sector tecnológico
Juan Elosua Tomé Shadow: tecnología de protección contra filtraciones de documentos Shadow, de Telefónica Tech, es una tecnología que permite identificar el origen de una fuga de información como la sucedida recientemente en EE UU
David García El nuevo final de las contraseñas Password, contraseña, clave, frase de paso… ¿Cuántos puedes recordar si no usas un gestor de contraseñas? Es más ¿Usas un gestor?