Background
This experiment is designed in order to obtain well labelled
data and to find which features could be useful for the actual experiment
(where we detect frustration). For this experiment, several subject are doing
basic action (e.g.: turn the wheel, press the pedal …) while distance and
pressure measures are recording. The final goal is to be able to recognize
which action the subject is performing using these measures.
Sensors
For the first part of this experiment I used 5 sensors; 3
distance sensors monitoring the head:
- BH: Behind the head
- AH: Above the head
- SH: On the left side of the head
And two pressure sensors in the lowest part of the backrest
of the chair:
- P2R: monitoring the right side of the subject
- P2L: monitoring the left side of the subject
The distance sensors record values between 4 and 30 cm. The
pressure sensors record value higher than 15.11g.
Protocol
The subject is asking to perform eleven different actions
for 6 seconds each. Between each action the subject is asked to reach a rest
position (hands on the wheel without pressing the pedals) for 4 seconds. The
subject disposes of wheel (with retroaction) and pedals from playstation game
to perform his action. A Powerpoint presentation is used in order to time the
experiment, the synchronisation between the start of the presentation and the
data recorded has been done manually, this can be source of imprecision and has
been set automatically for the future tests.
The actions performed are the following:
- Rest position
- Long pressure on the accelerator
- Rest position
- Long pressure on the brake
- Rest position
- 4 short pressures on the accelerator
- Rest position
- 4 short pressures on the brake
- Rest position
- Long turn right
- Rest position
- Long turn left
- Rest position
- Alternate small turn right and left (r-l-r-l)
- Rest position
- Lean forward
- Rest position
- Sit backward
- Rest position
- Put your left hand behind your head
- Rest position
- Put your right hand behind your head
- Rest position
Each subject (5 in total) repeated the entire protocol ten
times.
Data
Each time one of the sensor’s value changes its new value is
recorded which allows us to obtain a continuous curve of the sensor value
(limited by the physical frequency of the sensor).
Then I defined a structure to manipulate my data with the
following components:
- .S: for the subject
- .P: for the sensor’s position
- .A: for the action
- .E: for the number of the repeat
- .T: for the values; It is a table with 2 column (the number of lines is variable): time and value of the sensor
Then I have a vector of size 5 subjects * 5 sensors* 11
actions * 10 repeats = 2750 of such element.
I also normalized the sensors’ values using the formula:
Vnorm = (Value – min)/(max- min) where max and min are
defined for each sensor during one repeat for each subject.
Features
I then extract some basics features (more will come):
- Number of variations (of sensors’ value) by action (11 values)
- Mean value of the sensor by action by sensor (55 values)
- Mean value of the sensor by action by sensor by repeat (550 values)
Data Analysis
This is a classification problem with eleven classes (should we merge some of them??? E.g.:
turning wheel instead of turning right and turning left…), so for now
random guessing will have an accuracy of 9.1% (as attributing always the same
class since all the classes have the same numbers of data).
1)
KNN using mean value of the sensor by action by
sensor by repeat
Here I have 110 data points (10 repeat * 11 actions) with 5
attributes each (the 5 sensors).
My first try was to run KNN and I reach an accuracy of 35.5%
for k=30 (I’m aware that I’m kind of cheating since I did not separate the data
properly but in worst case for k=1:50 I still have accuracy of 25.5% and if
k=1:40 the worst case accuracy is 29.1%) with Euclidean measure (I just tried
this one yet).