• Robótica

    Tutoriales de modelamiento y control de robots autónomos.
    Robots móviles,brazos robóticos, UAVs y más.

  • Inteligencia Artificial

    Tutoriales de diseño de algoritmos para resolver problemas prácticos.
    Deep Learning, Machine Learning, Algoritmos genéticos y más.

  • Electrónica

    Tutoriales de diseño y programación para resolver problemas prácticos.
    Arduino, PICs, Raspberry PI y más.

Curso Robótica con Matlab: Modelo cinemático y simulación

Compartir:

Curso Inteligencia Artificial Con Arduino Parte 1: Introducción, algorit...

Compartir:

Tipos de variables

Arduino tiene diferentes tipos de variables para representar valores.
Puede usar la Tabla para determinar el tipo de variable que se ajusta al rango de valores de su aplicación.


Compartir:

Convertir un número en un String

Si desea convertir un número para mostrarlo como texto en un LCD o dispositivo serie, la más simple solución es utilizar las bibliotecas LCD y Serial. Pero quizás esté usando un dispositivo que no tiene este soporte integrado o si desea manipular el número como una cadena en su sketch.

Para esto, se utiliza la función itoa o ltoa. Los nombres provienen de “integer to ASCII” (itoa) y “long a ASCII ”(ltoa).

Estas funciones toman tres parámetros: el valor a convertir, el búfer que contendrá la cadena de salida y la base numérica (10 para un número decimal, 16 para hexadecimal y 2 para binario).

El siguiente sketch ilustra cómo convertir valores numéricos usando ltoa:
long value = 123456;

void setup()
{
Serial.begin(9600);
}

char buffer[12]; // tipo de dato long tiene 11 caracteres 
                 //(incluyendo el signo menos) y la terminación null)

void loop()
{
 
ltoa(value, buffer, 10);
Serial.print(value);
Serial.print(" tiene ");
Serial.print(strlen(buffer));
Serial.println(" digitos");
delay(1000);

}

Compartir:

Convertir un String en un número

Necesitas convertir un String a un número que hayas recibido a través de un enlace de comunicación y necesita usarlo como un valor de punto flotante o entero.
Las funciones atoi (ASCII a int), atol (ASCII a long)  y atof (ASCII a float) convierten un String en enteros, enteros long y floats respectivamente.

 El siguiente sketch ilustra cómo convertir  un String a valores numéricos intlong y float:
char dataInt[5] = "1234";
char dataLongInt[11]="2147483647";
char dataFloat[5]="1.23";

int cInt=0;
long cLongInt=0;
float cFloat=0.0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
cInt=atoi(dataInt);
cLongInt=atol(dataLongInt);
cFloat=atof(dataFloat);

Serial.print("Original data : ");
Serial.print(cInt);
Serial.print(",");
Serial.print(cLongInt);
Serial.print(",");
Serial.println(cFloat);

// Operaciones con datos

cInt=cInt+1;
cLongInt=cLongInt-1;
cFloat=cFloat+0.07;

Serial.print("Modificated data : ");
Serial.print(cInt);
Serial.print(",");
Serial.print(cLongInt);
Serial.print(",");
Serial.println(cFloat);
delay(1000);

}

Compartir:

Machine learning para predecir el precio de una vivienda.

Introducción
Este tutorial implementa un modelo de red neuronal para predecir el precio de una vivienda utilizando el conjunto de datos Boston_Housing. El objetivo es predecir un valor continuo, por lo tanto, estamos frente a un problema de regresión. El código esta disponible en la sección descargas opción Inteligencia Artificial
Cargar conjunto de datos Boston Housing
El conjunto de datos contiene 506 ejemplos, divididos entre 404 muestras de entrenamiento y 102 muestras de prueba.

El conjunto de datos contiene 13 características diferentes:
  • Tasa de criminalidad per cápita.
  • La proporción de terrenos residenciales divididos en zonas para lotes de más de 25,000 pies cuadrados.
  • La proporción de acres de negocios no minoristas por ciudad.
  • Variable dummy de Charles River (= 1 si el tramo limita el río, 0 de lo contrario).
  • Concentración de óxidos nítricos (partes por 10 millones).
  • El número promedio de habitaciones por vivienda.
  • La proporción de unidades ocupadas por sus propietarios construidas antes de 1940.
  • Distancias ponderadas a cinco centros de empleo de Boston.
  • Índice de accesibilidad a carreteras radiales.
  • Tasa de impuesto a la propiedad de valor completo por $ 10,000.
  • Proporción de alumno por profesor por ciudad.
  • 1000 * (Bk - 0.63) ** 2 donde Bk es la proporción de personas negras por ciudad.
  • Porcentaje de menor estatus de la población.
Y cada característica de los datos de entrada tiene una escala diferente. Por ejemplo, algunos valores son proporciones, que toman valores entre 0 y 1; otros toman valores entre 1 y 12, otros entre 0 y 100, y así sucesivamente.
Los objetivos, etiquetas o labels son los precios de la vivienda en miles de dólares registrados en la década de 1970. Los precios son típicamente entre $ 10,000 y $ 50,000.


Normalizar las características
Se recomienda normalizar los datos que usan escalas e intervalos diferentes. Para cada característica, reste la media de la característica y divida por su desviación estándar. La red podría adaptarse automáticamente a datos tan heterogéneos, pero dificultaría el aprendizaje.

Construir el modelo
En este turorial se implementa un modelo secuencial con dos capas ocultas totalmente conectadas de 64 nodos (neuronas) y la función de activación relu, y una capa de salida que devuelve un único valor continuo.
Debido a que no hay mucha información de entrenamiento, se usa una red pequeña con pocas capas ocultas y nodos para evitar el sobreajuste.

Definir la función de pérdida, optimizador y métrica
Para el problema de regresión es común utilizar la función de pérdida error cuadrático medio (mse), el optimizador utilizado es el rmsprop y una métrica de regresión común es el error absoluto medio (mae).

Entrenar el modelo
El modelo se entrena durante 300 épocas, los datos de entrenamiento se dividen en un 20% para validación y además se registra el entrenamiento y la precisión de validación en el objeto history.

Figura 1. Error absoluto medio durante 300 épocas.


El gráfico muestra que el error promedio es de aproximadamente $ 2,500 dólares.
Entrenar el modelo
Finalmente, se predice algunos precios de vivienda usando el conjunto de prueba.



Figura 2. Resultado al problema de regresión.




Compartir:

Donaciones

Suscribete

SÍGUENOS EN FACEBOOK

Posts Populares

Categorías

Post Recientes