Cuando tenemos un dataset con muchas variables, se hace necesario un método para reducir el número de variables a tener en cuenta a las más significativas. Para eso se utiliza el ACP:
lunes, 16 de diciembre de 2019
jueves, 12 de diciembre de 2019
Data Science: K Nearest Neighbors
Vamos a ver otra técnica de clasificación, la de los K Nearest Neighbors:
domingo, 1 de diciembre de 2019
Data Science: Support Vector Machines
Los Support Vector Machines son otra forma más avanzada de clasificar y/o predecir valores para un conjunto de datos.
jueves, 28 de noviembre de 2019
Data Science: Árboles y Bosques Aleatorios - Árboles de Regresión
Los árboles de regresión son iguales que los de decisión, excepto que los árboles de regresión sirven para predecir una variable numérica en lugar de una categórica. Son útiles cuando no existe una relación lineal que nos permita predecir la variable con una regresión lineal:
miércoles, 27 de noviembre de 2019
martes, 26 de noviembre de 2019
Data Science: Árboles y Bosques Aleatorios - Entropía y ganancia de información
Entropía y ganancia de información:
viernes, 22 de noviembre de 2019
Data Science: Clustering K-Means: Cómo obtener el número óptimo de clusters (Teoría)
Para obtener el número óptimo de clusters a utilizar para k-means, existen dos métodos que podemos utilizar: El método del codo y el coeficiente de la silueta.
jueves, 21 de noviembre de 2019
Data Science: Clustering K-Means (Teoría)
Un clustering también se puede hacer por el método k-means:
martes, 19 de noviembre de 2019
Data Science: Clustering Jerárquico y Métodos de Enlace (Teoría)
Vamos a ver los diferentes métodos de enlace que se pueden utilizar para hacer un clustering jerárquico:
Data Science: Clustering y Distancia (Teoría)
Vamos a ver un poco de teoría de Clustering y el concepto de Distancia:
lunes, 18 de noviembre de 2019
domingo, 17 de noviembre de 2019
Data Science: Regresión Logística: Matrices de confusión y curvas ROC (Teoría)
Vamos a ver teoría en imágenes más validaciones de regresiones logísticas. En concreto, matrices de confusión y curvas ROC:
sábado, 16 de noviembre de 2019
Data Science: Regresión Logística: Validaciones Cruzadas (Teoría)
Vamos a ver un resumen con imágenes de los tipos de validaciones cruzadas que existen:
viernes, 1 de noviembre de 2019
jueves, 31 de octubre de 2019
Data Science: Regresión Lineal: Outliers y resumen
Vamos a ver el problema de los outliers en una regresión lineal y cómo solucionarlo. Y un pequeño resumen de las regresiones lineales hasta ahora:
miércoles, 30 de octubre de 2019
Data Science: Regresión no Lineal
A veces la relación entre dos variables no es lineal, y por tanto una regresión lineal no es el mejor modelo de predicción posible. Vamos a verlo con más detalle:
martes, 29 de octubre de 2019
Data Science: Regresión Lineal con variables categóricas
Vamos a ver ahora cómo hacer una regresión lineal con variables categóricas:
domingo, 27 de octubre de 2019
Data Science: Regresión Lineal: scikit-learn
Ya hemos visto cómo hacer una regresión lineal en Python con la librería statsmodel, ahora vamos a ver cómo hacerla con scikit-learn:
sábado, 26 de octubre de 2019
Data Science: Regresión Lineal: Validación del modelo
Siguiendo con la entrada anterior, vamos a ver cómo validar nuestro modelo de predicción.
viernes, 25 de octubre de 2019
Data Science: Regresión Lineal: Multicolinealidad
Siguiendo con el ejemplo anterior, vamos ver cómo podemos solucionar uno de los problemas de la correlación lineal múltiple, la multicolinealidad.
jueves, 24 de octubre de 2019
Data Science: Regresión Lineal Múltiple
Siguiendo con la entrada de la regresión lineal, vamos a ver cómo hacer una regresión lineal múltiple (que haya dos o más variables predictoras):
miércoles, 23 de octubre de 2019
viernes, 18 de octubre de 2019
MongoDB: Securing database access
We will conclude this chapter by informing you about database security. So far, we have started and used MongoDB without any authentication process. Actually, starting mongod without any additional option exposes the database to any user who is aware of the process.
jueves, 17 de octubre de 2019
MongoDB: Comandos básicos de mongo shell
Una vez que hemos instalado MongoDB en nuestro PC, podemos empezar a manejar la base de datos:
miércoles, 25 de septiembre de 2019
martes, 24 de septiembre de 2019
Introducción al Análisis de Datos. 7: Distribuciones continuas de probabilidad
Continuamos con el tema 7:
lunes, 23 de septiembre de 2019
Introducción al Análisis de Datos. 6: Distribuciones discretas de probabilidad
Continuamos con el tema 6:
viernes, 20 de septiembre de 2019
jueves, 19 de septiembre de 2019
miércoles, 18 de septiembre de 2019
Introducción al Análisis de Datos. 3: Medidas de variabilidad y asimetría
Continuamos con el tema 3:
martes, 17 de septiembre de 2019
Introducción al Análisis de Datos. 2: Medidas de tendencia central y de posición
Contiuamos con el tema 2:
lunes, 16 de septiembre de 2019
Introducción al Análisis de Datos. 1: Conceptos básicos y organización de datos
Resumen del tema 1 de introducción al análisis de datos:
martes, 10 de septiembre de 2019
Ironhack Data Analytics: Prueba técnica de acceso
Los datos para la prueba técnica de acceso:
https://github.com/albertogcmr/ih-access-test-guide/blob/master/README.md
https://github.com/albertogcmr/ih-access-test-guide/blob/master/README.md
martes, 20 de agosto de 2019
Data Science: Coeficiente de Correlación de Pearson
Vamos a ver cómo calcular el coeficiente de correlación de Pearson con Python:
domingo, 18 de agosto de 2019
Python: Librería matplotlib y seaborn
Las librerías matplotlib sirve para poder pintar gráficos con datos obtenidos de dataframes, por ejemplo. La librería seaborn está basada en matplotlib y es una versión más avanzada de ésta:
sábado, 17 de agosto de 2019
viernes, 16 de agosto de 2019
Python: Crear un dataframe desde HTML y Excel
Vamos a ver cómo crear un dataframe desde una página web y desde un archivo Excel:
jueves, 15 de agosto de 2019
miércoles, 14 de agosto de 2019
Python: Librería numpy
La librería numpy nos permite generar y realizar operaciones con números de forma rápida y simple.
martes, 13 de agosto de 2019
Python: Generar ejecutables
Vamos a ver cómo generar un ejecutable de nuestra aplicación Python para Windows.
lunes, 12 de agosto de 2019
viernes, 9 de agosto de 2019
Python: Pruebas y Unittest
En Python podemos ejecutar pruebas de código escribiéndolas dentro de los comentarios. Vamos a ver cómo.
jueves, 8 de agosto de 2019
miércoles, 7 de agosto de 2019
martes, 6 de agosto de 2019
Python: Expresiones Regulares o RegEx
Vamos a ver cómo utilizar las expresiones regulares en Python.
lunes, 5 de agosto de 2019
Python: Funciones Lambda, Filter y Map
Vamos a ver cómo utilizar las funiones Lambda, Filter y Map en Python.
viernes, 2 de agosto de 2019
jueves, 1 de agosto de 2019
Python: Ficheros externos
Vamos a ver los diferentes métodos para crear y leer ficheros de texto y binarios en Python:
Python: Módulos y Paquetes
Los módulos no son más que los diferentes ficheros en los que dividimos el código, y los paquetes las carpetas en las que guardamos los módulos. Vamos a ver un ejemplo.
miércoles, 31 de julio de 2019
Python: Métodos de cadenas
Éstos son los métodos de cadena que soportan tanto las cadenas de caracteres de 8 bit como los objetos Unicode:
martes, 30 de julio de 2019
lunes, 29 de julio de 2019
Data Science: Joins entre datasets. Práctica
Vamos a ver cómo hacer los diferentes tipos de joins entre datasets en código Python.
domingo, 28 de julio de 2019
Data Science: Joins entre datasets. Teoría en imágenes
Al igual que con bases de datos relacionales, en las que podemos hacer consultas haciendo joins o uniones de tablas a través de un campo clave que se comparta en ambas, con Python podemos hacer exactamente lo mismo con diferentes datasets que compartan algún campo.
Aunque explicaremos en otra entrada cómo hacerlo en código, aquí va una recopilación de imágenes de la teoría de los diferentes joins que se pueden hacer, para recordar.
viernes, 26 de julio de 2019
Data Science: Concatenar varios dataset en uno solo
Vamos a ver cómo podemos concatenar varios datasets (que tengan las mismas columnas) en uno sólo.
martes, 23 de julio de 2019
Data Science: División de un dataset en conjunto de entrenamiento y pruebas
Vamos a ver cómo dividir un dataset en un conjunto para entrenamiento (training) y otro para pruebas (testing).
lunes, 22 de julio de 2019
Data Science: Agregación de datos, Filtrados, Transformaciones, etc.
Siguiendo con el ejercicio anterior, vamos a ver como podemos realizar cálculos con los valores de las columnas.
sábado, 20 de julio de 2019
Data Science: Agrupación de datos por categorías
Siguiendo con el ejercicio anterior, vamos a ver cómo agrupar los datos por los valores de una variable categórica.
jueves, 18 de julio de 2019
Data Science: Generación de dummy DataFrames
Vamos a ver cómo generar DataFrames con datos dummys o generados al azar.
miércoles, 17 de julio de 2019
Data Science: Generación de distribuciones uniformes y normales
Vamos a ver cómo podemos generar con Python una serie de números que sigan una distribución uniforme y otra normal.
martes, 16 de julio de 2019
Cómo sincronizar un proyecto Java en Eclipse con un repositorio GitHub
Vamos a ver cómo sincronizar un proyecto Java en Eclipse con un repositorio de GitHub.
lunes, 15 de julio de 2019
Data Science: Generación de números aleatorios
Vamos a ver cómo generar números aleatorios con Python.
domingo, 14 de julio de 2019
lunes, 8 de julio de 2019
Data Science: Visualización básica de un dataset: Boxplot
El boxplot, o diagrama de caja y bigotes, es uno de los más útiles.
domingo, 7 de julio de 2019
Data Science: Visualización básica de un dataset: Histograma de Frecuencias
El histograma de frecuencias, o gráfico de barras de toda la vida, es la forma más básica de visualización de datos.
sábado, 6 de julio de 2019
Data Science: Visualización básica de un dataset: Scatterplot (nube de puntos)
Los plots son representaciones gráficas de los datos. Vamos a ver cómo crear un scatterplot (nube de puntos).
jueves, 4 de julio de 2019
Data Science: Creación de variables dummies (Dummification)
Vamos a ver cómo crear variables dummies o de prueba en nuestros dataset:
miércoles, 3 de julio de 2019
Data Science: Cómo actuar ante valores vacíos de un dataset
Cuando nos encontramos con valores nulos en un dataset. Podemos actuar de las siguientes formas:
viernes, 28 de junio de 2019
Data Science: Chuleta librería pandas y manejo básico de ficheros y datos
Chuleta librería pandas y manejo básico de ficheros y datos:
lunes, 24 de junio de 2019
Data Science: Las 5 etapas del análisis de datos
La ciencia de los datos es un campo que intenta extraer ideas, información útil, predicciones, etc. a partir de una cantidad de datos. Normalmente el análisis de datos sigue estas 5 etapas:
domingo, 23 de junio de 2019
Data Science: Instalaciones necesarias
Vamos a empezar con Machine Learning y Python. Lo primero es instalar todas las herramientas necesarias.
jueves, 20 de junio de 2019
Python: Referencia Rápida parte 1
Aquí iré acumulando hojas de referencia rápida de Python para que sirvan de ayuda.
Además, enlace a documentación de Python: http://pyspanishdoc.sourceforge.net/
Además, enlace a documentación de Python: http://pyspanishdoc.sourceforge.net/
martes, 11 de junio de 2019
Angular: 63. Gráficas de estadísticas con Chartjs: Gráfica de líneas
Vamos a ver, por último, cómo crear una gráfica de líneas.
Angular: 62. Gráficas de estadísticas con Chartjs: Gráfica de barras
Vamos a ver cómo pintar un gráfico de barras.
Angular: 61. Gráficas de estadísticas con Chartjs: Gráfica de pastel
Vamos a ver cómo crear una gráfica de tipo pastel con Angular y Chartjs.
domingo, 9 de junio de 2019
Angular: 60. Gráficas de estadísticas con Chartjs: Instalación
Vamos a ver cómo podemos pintar gráficas de estadísticas en Angular.
sábado, 8 de junio de 2019
Angular: Binding Vista/Modelo o "Formulario HTML/Componente TypeScript"
Vamos a ver cómo la librería @angular/forms enlaza las vistas, los controladores y los modelos, o cómo enlazar campos de html con atributos del componente TypeScript.
sábado, 27 de abril de 2019
Angular: Bug Angular 6. node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected.
Últimamente me salta este error en la consola cuando intento crear un proyecto nuevo en Angular 6:
ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected.
node_modules/rxjs/internal/types.d.ts(81,74): error TS1005: ';' expected.
node_modules/rxjs/internal/types.d.ts(81,77): error TS1109: Expression expected.
Parece ser que es un problema de versiones que existe actualmente. Para arreglarlo, hay que modificar el fichero "package.json" como sigue:
Modificar:
"rxjs-compat": "^6.2.2"
a:
"rxjs-compat": "6.2.2"
Para resolver el problema, encontré la solución en los siguientes enlaces:
https://github.com/ReactiveX/rxjs/issues/4512
https://stackoverflow.com/questions/54529027/node-modules-rxjs-internal-types-d-ts81-44-error-ts1005-expected-error-a
Y eso es todo.
ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected.
node_modules/rxjs/internal/types.d.ts(81,74): error TS1005: ';' expected.
node_modules/rxjs/internal/types.d.ts(81,77): error TS1109: Expression expected.
Parece ser que es un problema de versiones que existe actualmente. Para arreglarlo, hay que modificar el fichero "package.json" como sigue:
Modificar:
"rxjs-compat": "^6.2.2"
a:
"rxjs-compat": "6.2.2"
Para resolver el problema, encontré la solución en los siguientes enlaces:
https://github.com/ReactiveX/rxjs/issues/4512
https://stackoverflow.com/questions/54529027/node-modules-rxjs-internal-types-d-ts81-44-error-ts1005-expected-error-a
Y eso es todo.
domingo, 17 de marzo de 2019
Angular: 59. CRUD Firebase. AngularFire2: Últimos retoques al chat
Vamos a dar los últimos retoques al chat.
domingo, 10 de marzo de 2019
Angular: 58. CRUD Firebase. AngularFire2: Autentificación con Twitter y Logout
Vamos a ver cómo implementar el logout y cómo autentificarnos con Twitter.
sábado, 9 de marzo de 2019
Angular: 57. CRUD Firebase. AngularFire2: Autentificación con Google
Vamos a modificar la aplicación para poder autentificarnos con Google antes de entrar al chat.
miércoles, 27 de febrero de 2019
Angular: 56. CRUD Firebase. AngularFire2: Querys y ordenar los mensajes en pantalla
Vamos a ordenar correctamente los mensajes que aparecen en la ventana del chat. Para ello vamos a tener que realizar una query a FireBase.
martes, 26 de febrero de 2019
Angular: 55. CRUD Firebase. AngularFire2: Cargar y agregar mensajes al chat
Vamos a continuar con la aplicación. Esta vez vamos a cargar los mensajes de FireBase en la ventana del chat.
viernes, 22 de febrero de 2019
Angular: 54. CRUD Firebase. AngularFire2: Servicio del chat
Una vez creado el componente, vamos a crear el servicio.
jueves, 21 de febrero de 2019
Angular: 53. CRUD Firebase. AngularFire2: Componente del chat
Vamos a continuar con la aplicación. Ahora vamos a crear y personalizar el componente del chat.
martes, 19 de febrero de 2019
Angular: 52. CRUD Firebase. AngularFire2: Instalación de la librería
La librería AngularFireBase2 nos va a permitir utilizar mejor los recursos de Firebase. Vamos a crear un nuevo proyecto y vamos a aprender a utilizar la librería. En esta entrada vamos a aprender cómo instalarla.
miércoles, 13 de febrero de 2019
Java: Leer un fichero TXT y transformarlo en un JSON
Vamos a crear una aplicación que lea el contenido de un fichero .txt y que lo transforme en un fichero con un objeto JSON válido.
martes, 12 de febrero de 2019
Angular: Suscripciones y Observables
Los observables son de los conceptos más útiles y a la vez más difíciles de entender al comenzar con Angular. Éstos se utilizan, mayormente, para compartir información entre distintos componentes de forma asíncrona.
lunes, 11 de febrero de 2019
TypeScript: Let, la nueva forma de declarar variables en Javascript
Una de los primeras cosas que aprendimos hace ya más de décadas cuando íbamos descubriendo poco a poco el lenguaje BASIC fue el comando LET para asignar valores a nuestras variables. Es patente que la retroinformática está de moda y que la Historia está destinada a repetirse una y otra vez porque será a finales de este 2014 cuando el nuevo ECMAScript 6 resucite esta palabra reservada para precisamente eso: asignar valor a nuestras variables en Javascript.
Veamos qué cosas implica esta nueva forma de declarar variables…
Veamos qué cosas implica esta nueva forma de declarar variables…
domingo, 10 de febrero de 2019
TypeScript: Funciones de flecha
Las funciones flecha son una de las novedades ES6 (ECMAScript 2015) que más pueden desconcertar a los desarrolladores tradicionales. Su estructura intimida a simple vista y, de hecho, cuando nos las encontramos en un código sin avisar, pueden parecer incluso un error de sintaxis. Quizá ya os ha pasado: revisáis un código moderno en un blog, o en un repositorio de GitHub, e inmediatamente se os va la vista a una estructura rara que no parece que vaya a funcionar en la vida. -¿Pero eso es Javascript? – sería otra pregunta recurrente que quizá os haya hecho algún colega mientras jugáis con esta nueva sintaxis a escondidas…
jueves, 7 de febrero de 2019
Java: ordenar ArrayList de objetos por uno de sus atributos
A partir de la versión 1.8 de Java, se pueden utilizar expresiones regulares para ordenar una lista de objetos por uno de sus atributos, con el siguiente comando:
this.getTimers().sort(Comparator.comparing(TimerBean::getDescripcion));
Siendo "Timers" nuestra lista de objetos "TimerBean" y "descripcion" el atributo por el que queremos ordenar la lista.
Comentar que también ordena por atributos de tipo numérico o fecha.
this.getTimers().sort(Comparator.comparing(TimerBean::getDescripcion));
Siendo "Timers" nuestra lista de objetos "TimerBean" y "descripcion" el atributo por el que queremos ordenar la lista.
Comentar que también ordena por atributos de tipo numérico o fecha.
lunes, 4 de febrero de 2019
Angular: 51. CRUD Firebase. HTTP - DELETE. Eliminar un registro
Vamos a ver cómo eliminar un registro de Firebase.
domingo, 3 de febrero de 2019
Angular: 50. CRUD Firebase. HTTP - GET. Consultar todos los registros
Vamos a ver cómo consultar todos los registros y mostrarlos en una tabla.
sábado, 2 de febrero de 2019
Angular: 49. CRUD Firebase. HTTP - GET. Consultar un nodo específico
Vamos a ver cómo consultar un héroe en particular.
jueves, 31 de enero de 2019
Angular: 48. CRUD Firebase. HTTP - PUT. Modificando un registro
Vamos a ver cómo modificar un registro ya creado.
miércoles, 30 de enero de 2019
Angular: 47. CRUD Firebase. HTTP - POST. Creando un nuevo registro
Vamos a ver cómo crear un nuevo registro en la base de datos.
domingo, 27 de enero de 2019
Angular: 46. CRUD Firebase. Creación del servicio y el formulario
Vamos a continuar con la aplicación, esta vez crearemos el servicio y el formulario.
sábado, 26 de enero de 2019
Angular: 45. CRUD Firebase. Creación del proyecto y componentes
Vamos a empezar un nuevo proyecto en el que vamos a aprender a hacer CRUD (Create, Read, Update y Delete) en una base de datos con Angular.
miércoles, 23 de enero de 2019
Angular: 44. Formularios. Detectar cambios en el calor de un campo o en el estado del formulario
Vamos a ver cómo detectar cambios en los campos de nuestro formulario.
martes, 22 de enero de 2019
Angular: 43. Formularios. Validaciones asíncronas
Vamos a ver cómo realizar validaciones asíncronas.
lunes, 21 de enero de 2019
Angular: 42. Formularios. Validaciones personalizadas
Vamos a ver cómo podemos crear nuestras propias validaciones de campos.
sábado, 19 de enero de 2019
Angular: 41. Formularios. Array de campos en un formulario
Vamos a ver cómo podemos tratar en un formulario un array de campos, por ejemplo una lista de aficiones en la que cada una sea un String diferente y cuyo número pueda variar de persona a persona.
domingo, 13 de enero de 2019
Angular: 40. Formularios. Precargar datos en el formulario y resetear sus campos
Vamos a ver, por un lado, cómo precargar los campos de un formulario con la información que tengamos en un objeto, y por otro, cómo resetear correctamente los campos de un formulario.
martes, 8 de enero de 2019
Angular: 39. Formularios. Agrupar objetos en formularios
En la entrada pasada vimos cómo validar campos mediante data, pero esos campos estaban todos en la raíz del formulario. Vamos a ver cómo agrupar campos del formulario por temática mediante formGroupName.
miércoles, 2 de enero de 2019
Vectorizar imágenes con Inkscape
Vamos a ver cómo vectorizar una imagen utilizando el programa gratuito Inkscape.
Suscribirse a:
Entradas (Atom)