-
Notifications
You must be signed in to change notification settings - Fork 75
/
ejerciciofinal.py
73 lines (59 loc) · 2.87 KB
/
ejerciciofinal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
"""
==================
Final Assignment
==================
Todos los archivos están subidos a campus.
El largo de los registros es entre 10 y 11 minutos
Fs = 512
FECHA DE ENTREGA: 31/07/2024
SEGUNDA FECHA DE ENTREGA: 10/08/2024
|---- BASELINE --------|
|---- PESTANEO ------|
|---- INHALAR ------- |
|---- EXHALAR ----|
|---- GOLPES (ESTIMULOS) --------|
|---- MENTAL IMAGERY ------|
|---- CERRADOS --------|
* Baseline: esta parte la pueden utilizar para tener ejemplos negativos de cualquier cosa que deseen detectar. Por
ejemplo si quieren detectar que algo cambia cuando hay "imaginación en colores violeta", extraen features de ese momento y de
este e intentan armar un clasificador.
* Inhalar: Cambios en frecuencias bajas, donde se enfatice el movimiento del diafragma para inhalar.
* Exhalar: Idem pero enfatizando el movimiento del diafragma para exhalar.
* Golpes: Deberían aparecer algún evento con cierto pico en la señal. Pueden intentar detectar estos picos y ver si hay algo.
* Mental Imagery: Pueden aparecer frecuencias altas de 20-50 Hz. Aumentos en la potencia de estas bandas entre este bloque y el baseline.
* Cerrados: Debería aparecer un aumento en la frecuencia particular de 10 Hz en relación al baseline.
Objetivo:
El objetivo es dado este registro implementar un análisis de estos datos, exploratorio, superviado
o no supervisado, para intentar identificar que es lo que el sujeto está haciendo en cada bloque. Pueden
intentar separar dos bloques entre sí, un bloque particular frente al BASELINE (esto es el momento cuando el sujeto
no hace nada particular). Pueden usar una parte de dos bloques para entrenar y luego intentar predecir las otras partes.
Tienen que producir un PDF informe con gráficos/tablas breve y resumido.
"""
print(__doc__)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import requests
from io import StringIO
# El protocolo experimental que implementamos tiene 2 datasets:
# 1- Dataset de las señales de EEG
# 2- El video de las imágenes (de la grabación de la clase)
#
#
# La idea es tomar estos datasets y derivar de forma automática las diferentes secciones. Esto se puede hacer en base self-supervised, es
# decir tomar los datos de algún dataset, derivar los labels para cada secciones y luego intentar implementar un clasificador multiclase.
#
# Tienen que entregar un PDF, tipo Markdown con código, gráficos y cualquier insight obtenido del dataset.
signals = pd.read_csv('data/blinking.dat', delimiter=' ', names = ['timestamp','counter','eeg','attention','meditation','blinking'])
print('Estructura de la informacion:')
print(signals.head())
data = signals.values
eeg = data[:,2]
print(eeg)
plt.plot(eeg,'r', label='EEG')
plt.xlabel('t');
plt.ylabel('eeg(t)');
plt.title(r'EEG Signal') # r'' representa un raw string que no tiene caracteres especiales
plt.ylim([-2000, 2000]);
plt.xlim([0,len(eeg)])
plt.show()