Background: I have some proteomic data and I want to analyze it for biomarker discovery. The data consists of about 1000 rows, and 20 observations. I want to see which of the expressed proteins (I apologize I am a cs student, not a biologist) have the most influence on the outcome (y) of this dataset.
The problem: This data does not have outcomes, and the company did not want to share this information with us. All I have are the expressed proteins.
What I have tried: I have tried several different attempts to see what I can do with this data. I have tried with Random forest: by doing the following:
- taking the data, and cleaning it a bit
- generating synthetic data from the real data
- Adding a class/label to the real data (1) and synthetic data (0)
- Passing this to the random forest, and returning the proximity matrix
- Using the matrix to cluster the outcomes of the real data (labeled as 1)
- Use the clusters as new labels for the real data
- Pass this data with outcomes (from the clusters) and generate a new RF
- Use this new RF as my model
The problem I found is that when I pass this data to the random forest I get a new RF but when I try to predict on the same data (use the model trained with the training set, and test with the training data) I get a bunch of garbage (everyone is the same class, not what the training data classes are).
Questions: This doesn't seem to be working with random forest. Should I be trying to cluster the variables instead (transpose the matrix)? What other techniques can I use? Should I use PCA and do a k-means clustering to get the clusters? How would I get the most important variables? What about SVM?