The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
"[Solved] How to work on Correlation Matrix results"
Hello,
I have made a correlation matrix within my process and would like to use the Matrix results in this process. Unfortunately the only operators I've found which can use "mat" as input are the ones in Reporting addon. So I can write an Excel File, for example. I couldn't find a way to use standard operators like "Filter examples" or "Select" with the Matrix as input. Is there a way to filter the matrix for certain values without writing it to a file and reading the file within the process (This wouldn't be fast enough, because I have very very large data sets)?
I've tried also another way: I've used "Remove correlated attributes" instead "Correlation Matrix", and set filter relation to "less", to get attribute pairs which are correlating each other, but the results are confusing me:
Sometimes the result of "Remove correlated attributes" is a resultset with just one column. If I have a Result Set with two attributes: A and B and also some other attributes and column A has a high correlation to another column. Why is "Remove correlated attributes" just returning one of both columns? I would expect it to return both columns, because Correlation is a bidirectional relationship.
It would be really great, if anyone could help on this issue.
I have made a correlation matrix within my process and would like to use the Matrix results in this process. Unfortunately the only operators I've found which can use "mat" as input are the ones in Reporting addon. So I can write an Excel File, for example. I couldn't find a way to use standard operators like "Filter examples" or "Select" with the Matrix as input. Is there a way to filter the matrix for certain values without writing it to a file and reading the file within the process (This wouldn't be fast enough, because I have very very large data sets)?
I've tried also another way: I've used "Remove correlated attributes" instead "Correlation Matrix", and set filter relation to "less", to get attribute pairs which are correlating each other, but the results are confusing me:
Sometimes the result of "Remove correlated attributes" is a resultset with just one column. If I have a Result Set with two attributes: A and B and also some other attributes and column A has a high correlation to another column. Why is "Remove correlated attributes" just returning one of both columns? I would expect it to return both columns, because Correlation is a bidirectional relationship.
It would be really great, if anyone could help on this issue.
Tagged:
0
Answers
Here is an example process of what I have done:
there is currently no good way to automatically process the output of the Correlation Matrix operator. We already have an internal feature request to be able to convert the matrix object to an example set.
Concerning the Remove Correlated Attributes: if you have a set of correlated attributes, this operator *should* remove all but one of them (not all of them, that way the complete information would be lost). Does that explain your observations, or did I misunderstand something of your description?
Best regards,
Marius
Thanks for your response. Yes, that explains my observations. As I need some other columns from the matrix I have chosen to write the matrix results to Hard Drive and reload it again as CSV. That works quite well for me, now.
Best regards to Dortmund
Please be aware that the "write as text" operator will only write the first 20 attributes!! This is weird as I could not find any hints in the documentation about this. However, you can use a similar work-around with the report operator which is also explained in the forum. (see http://rapid-i.com/rapidforum/index.php?topic=2081.0)
Piece of code which shows that not all attributes are written: Cheers
Sachs