Krotos Modules 3
Loading...
Searching...
No Matches
PCA.h
Go to the documentation of this file.
1#pragma once
2
3#include <cassert>
4#include <cmath>
5#include <iostream>
6#include <vector>
7#include "../krotos_eigen_updated/Eigen/Dense"
8
9#ifndef JUCE_WINDOWS
10#pragma GCC diagnostic push
11#pragma GCC diagnostic ignored "-Weverything"
12#else
13__pragma(warning(push)) __pragma(warning(disable : 4127 4267))
14#endif
15
16#ifdef JUCE_MAC
17#pragma GCC diagnostic pop
18#else
19 __pragma(warning(pop))
20#endif
21
22namespace krotos
23{
24
25class PCA
26{
27
28 public:
29 PCA();
30 ~PCA();
31
32 void reserve(const std::size_t& n);
33 void insert(const std::vector<float>& x);
34 void fit(const std::size_t& n_components);
35 std::vector<float> getPrincipalComponents(const std::size_t& i);
36 void clear();
37 void toCSV(const std::string& filename);
38
39 private:
40 std::size_t rows = 0;
41 std::vector<float> data;
42 std::vector<float> principal_components;
43 bool is_fitted = false;
44};
45
46} // namespace krotos
__pragma(warning(pop)) namespace krotos
Definition PCA.h:19
Definition AirAbsorptionFilter.cpp:2