From b3c7ac156e1c4ac5d7455ce61e89549291ac85b1 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Wed, 20 May 2015 18:53:07 -0300 Subject: Nearly complete implementation of interaction. Interaction still does not work due to signals not being correctly emitted. --- interactionhandler.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 interactionhandler.cpp (limited to 'interactionhandler.cpp') diff --git a/interactionhandler.cpp b/interactionhandler.cpp new file mode 100644 index 0000000..fab3c75 --- /dev/null +++ b/interactionhandler.cpp @@ -0,0 +1,31 @@ +#include "interactionhandler.h" + +#include "mp.h" + +InteractionHandler::InteractionHandler(const arma::mat &X, + const arma::vec &labels, + const arma::uvec &sampleIndices) + : m_X(X) + , m_labels(labels) + , m_sampleIndices(sampleIndices) + , m_technique(TECHNIQUE_LAMP) +{ +} + +void InteractionHandler::setSubsample(const arma::mat &Ys) +{ + arma::mat embedding(m_X.n_rows, Ys.n_cols); + switch (m_technique) { + case TECHNIQUE_PLMP: + case TECHNIQUE_LSP: + case TECHNIQUE_LAMP: + embedding = mp::lamp(m_X, m_sampleIndices, Ys); + break; + } + + arma::mat Y(embedding.n_rows, embedding.n_cols); + Y.cols(0, embedding.n_cols - 1) = embedding; + Y.col(Y.n_cols - 1) = m_labels; + + emit subsampleChanged(Y); +} -- cgit v1.2.3