12345678910111213141516171819202122232425262728293031 |
- #ifndef PCA_H
- #define PCA_H
- #include "Eigen"
- #include <QVector>
- class PCA
- {
- public:
- PCA(const QVector<QVector<double>> &source, double thd = 0.85);
- void compute();
- QVector<double> weights() const;
- QVector<double> scores() const;
- private:
- Eigen::MatrixXd X; // 输入矩阵
- Eigen::MatrixXd C; // 协方差矩阵
- Eigen::MatrixXd reduced_;
- double variance_remain_;
- int rows_;
- int cols_;
- Eigen::MatrixXd contribution_rate_; // 特征贡献率
- Eigen::MatrixXd scores_; // 指标综合得分系数
- Eigen::MatrixXd weights_; // 指标权重
- };
- #endif // PCA_H
|