123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef PCA_H
- #define PCA_H
- #include "Eigen"
- #include <QVector>
- class PCA
- {
- public:
- /**
- * @brief PCA
- * @param source : 输入矩阵,一行代表一个样本, 每列对应一个指标
- * @param thd
- */
- 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
|