3
$\begingroup$

A student of mine developed a heuristic supervised machine learning algorithm for highly multivariate data. It seems to work pretty well, and once the model has been derived from the training data set, we can represent it as

$X'=X\cdot L$

Where $X$ is the $n \times k$ sample matrix with $n$ samples and $k$ variables, and $L$ is a $k \times m$ loading matrix. The resulting $X'$ matrix is related (or can be understood) just like principal components matrix in a PCA, or the variates matrix in a PLS-DA.

The $X'$ matrix is then used for classification, and the assigned class is simply based on euclidean or Mahalanobis distances of the $m$-dimensional sample representations from the class centroids.

What would be, in your opinion, the best way of determining variable importance, such that we could sort the $k$ variables according to their contribution to the decision making process?

$\endgroup$
2
$\begingroup$

Usually, the variable of importance could be generally obtained, not depending on the algorithm of the machine learner.

For example, we could randomize one of the k variables to run the model, and get the difference of error compared to the original data. The larger the difference, the more the contribution such variable makes. So after repeating this procedure one by one, we can sort or order the contribution of the variables, or saying importance of variables.

$\endgroup$
  • $\begingroup$ This is true. However, it might not be practical given that we deal with hundreds of thousands of variables. $\endgroup$ – January Sep 11 '13 at 8:31
2
$\begingroup$

If I understand well, you use either PCA or PLS-DA as compression step and then use a k-nn like approach on the scores. The variables are lost in the calculations of the Mahalanobis distances, however you might have a look at their individual influence using the pseudo-samples approach initially proposed by Gower and used in metabolomics here and here. The use of kernels is equivalent to your Mahalanobis step.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.