Está en la página 1de 4

Práctica con Raspberry.

Inteligencia en Sistemas
Electrónicos
Yerhard Lalangui Fernández
Juan Carlos Martín Mingorance

INTRODUCCIÓN

La práctica se basa en el reconocimiento de actividades físicas basado en el uso de un


acelerómetro 3D. Para dicho reconocimiento se usó una Raspberry Pi, acompañada de un
módulo que traía incluído un acelerómetro y una matriz de Led. Utilizando un programa en
lenguaje Python se procedió a la creación de un Dataset donde vienen reflejados los datos
del acelerómetro adquiridos durante la realización de 5 movimientos propuestos: UP, SIT,
ROLL, YAW y PITCH.

REALIZACIÓN DE LA PRÁCTICA

El programa ejecutado en Python tiene como función final la creación de un fichero con
extensión .arff (dataset) que posteriormente pueda ser leído por Weka, de modo que el
usuario pueda evaluar distintos algoritmos de clasificación de los datos con el fin de
seleccionar el más adecuado para su propósito.

Este fichero nos genera un dataset conformado por un total de 66 atributos junto con un
dato número 67 denominado actividad (activity) que se corresponde con la clase. Esta clase
determina el movimiento a predecir (UP, SIT, ROLL, YAW, PITCH). Los 66 atributos
representan un total de 66 muestras tomadas a partir de los datos que entrega el
acelerómetro 3D.

El acelerómetro 3D es capaz de entregar 3 datos simultáneamente cada vez que se realice


una muestra. Estos tres datos se corresponden con las tres lecturas en los ejes del espacio
(X, Y y Z). El modo en el que el programa en Python muestrea los datos es mediante el uso
de ​ventanas ​o ​frames​​. Un frame consiste en un grupo de datos tomados a una
determinada frecuencia de muestreo en un intervalo determinado, en este caso, de 3
segundos. Dicho de otro modo, cada 3 segundos se crea un frame que contiene 22 datos
de cada eje (X, Y, Z) presentando un total de 66 datos, correspondientes con los 66
atributos de cada instancia. Cabe mencionar que los frames se crean ​solapados​​ unos con
otros, es decir, el primer frame contiene 66 datos registrados desde el segundo 1 hasta el
segundo 4, mientras que el segundo frame contiene otros 66 datos registrados, por ejemplo,
desde el segundo 2 hasta el segundo 5. De este modo, ambos comparten una parte de sus
datos.

Se modificó dos veces el programa a ejecutar para adquirir dos Dataset distintos,
cambiando el número de muestras que queremos para cada movimiento. Para ello, se
modificó el parámetro “TRAIN LENGTH PER ACTIVITY” alternando su valor entre 15 y 30.
Este parámetro indica el número de frames tomados para cada movimiento. Como se tiene
un total de 5 movimientos, para el valor 15 se crea un dataset con 75 instancias, mientras
que para el valor 30 se crea un dataset con un total de 150 instancias.

Durante la ejecución del programa hubo que realizar dichos movimientos con la Raspberry
en mano para la adquisición de datos por parte del acelerómetro.

ANÁLISIS DE LOS DATOS OBTENIDOS CON WEKA

Usando el Experimenter de Weka procederemos a realizar un diseño de experimento


utilizando cuatro algoritmos distintos: ​ZeroR, OneR, J48 y Naive Bayes,​ configurado
además para usar un Cross Validation de 10.

Podemos ver cual de los algoritmos es el mejor haciendo un ranking por el número de veces
que un algoritmo es mejor que los otros algoritmos.

Por ejemplo para el dataset de ​TRAIN LENGTH PER ACTIVITY = 15​ tenemos como
resultado:

Viendo que el mejor algoritmo en comparación con los otros es el ​Naive Bayes​​. Como era
de esperar, el algoritmo ZeroR resulta ser el peor en comparación con el resto. Este
resultado es muy positivo ya que el ZeroR es tomado como algoritmo de partida al tratarse
del algoritmo más simple, por lo que si algún otro algoritmo testeado ofreciera una tasa de
acierto menor, habría que desecharlo de forma inmediata.

Otra forma de ver cuál es el mejor algoritmo consiste en hacer un estudio sobre los
resultados obtenidos en el testeo. Haciendo uso del dataset de TRAIN LENGTH PER
ACTIVITY = 15 tenemos como resultado:
Se puede observar que el valor más alto de porcentaje de acierto (accuracy) es del 100%,
asociado en este caso al algoritmo ​Naive Bayes​​.

Para el dataset obtenido cuando ​TRAIN LENGTH PER ACTIVITY = 30​ obtenemos los
siguientes resultados.

En primer lugar, al realizar un test de tipo ranking para determinar qué algoritmo resulta ser
mejor que el resto un mayor número de ocasiones, sale victorioso el algoritmo ​Naive-Bayes
(empatando con el algoritmo OneR). Como se ha mencionado antes, en este caso el
algoritmo ZeroR también resulta ser el peor, tratándose de un resultado esperado.
Finalmente, al realizar un estudio sobre los resultados obtenidos en el testeo, se puede
observar también que, tomando como base el algoritmo ZeroR, el algoritmo ​Naive-Bayes
ofrece un 100% de accuracy (precisión) con una desviación típica nula (0.00). En este caso
hay un empate con el algoritmo OneR, por lo que cualquiera de los dos sería igual de válido.

CONCLUSIONES

Para finalizar, se puede observar que para ambos valores de ​TRAIN LENGTH PER
ACTIVITY (15 y 30),​ se obtiene como victorioso el algoritmo ​Naive Bayes​​. Este resultado
resulta ser bastante bueno a priori, ya que es indicativo de que se han realizado los dos
experimentos de forma adecuada, al obtener un resultado final similar.

También podría gustarte