Esempio n. 1
0
void CharacterData::calculateStats()
{
    if (train_size == 0) return;

    CharacterData::resetStats();

    for (const auto &it : train_data)
    {
        char x = it.first;
        size_t it_size = it.second.size();
        vector<int> sum(16, 0);
        vector<double> sumDifference(16, 0);

        for (int i = 0; i < it_size; i++)
            for (int j = 0; j < it.second[i].size(); j++)
                sum[j] += it.second[i][j];

        for (const auto &s : sum)
            stats.mean[x].push_back((double) s / it_size);

        for (int i = 0; i < it_size; i++)
            for (int j = 0; j < it.second[i].size(); j++)
                sumDifference[j] += (it.second[i][j] - stats.mean[x][j]) * (it.second[i][j] - stats.mean[x][j]);

        for (const auto &s : sumDifference)
            stats.variance[x].push_back((double) s / it_size);

        stats.frequence[x] = (double) it_size / train_size;
    }
}
int main(int argc, char *argv[])
{
	std::cout<<sumDifference(100)<<std::endl;
}