-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathclassifier_thread.cpp
71 lines (65 loc) · 1.44 KB
/
classifier_thread.cpp
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
#include "classifier_thread.h"
classifier_thread::classifier_thread()
{
stopped = false;
}
void classifier_thread::run()
{
ofstream outf("data.csv");
if(!outf)
{
cerr << "Error opening data.csv" << endl;
return;
}
map<string, deque<int> >::iterator it;
map<string, double > mean;
map<string, double > std_dev;
outf << "Action,Trial,";
for(it = sensor_data.begin(); it != sensor_data.end(); it++)
outf << (*it).first << ",";
outf << endl;
for(int i = 0; i < 1000; i++)
{
outf << "(Action),(Trial),";
for(it = sensor_data.begin(); it != sensor_data.end(); it++)
{
outf << (*it).second[i] << ",";
}
outf << endl;
}
/*
outf << "\n\nSensor:\t";
for(it = sensor_data.begin(); it != sensor_data.end(); it++)
{
double mu = 0;
for(int n = 0; n < (*it).second.size(); n++)
{
mu = mu + (*it).second[n];
}
mu = mu/(*it).second.size();
int var = 0;
for(int n = 0; n < (*it).second.size(); n++)
{
var = var + ( (*it).second[n] - mu ) * ( (*it).second[n] - mu);
}
double sig = sqrt(var/(*it).second.size() );
mean[(*it).first] = mu;
std_dev[(*it).first] = sig;
outf << (*it).first << "\t";
}
cout << "2\n";
outf << "\nMean:\t";
for(it = sensor_data.begin(); it != sensor_data.end(); it++)
{
outf << mean[(*it).first] << "\t";
}
outf << "\nSTD:\t";
for(it = sensor_data.begin(); it != sensor_data.end(); it++)
{
outf << std_dev[(*it).first] << "\t";
}
outf << endl;
*/
outf.close();
stopped = true;
}