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:

  1. taking the data, and cleaning it a bit
  2. generating synthetic data from the real data
  3. Adding a class/label to the real data (1) and synthetic data (0)
  4. Passing this to the random forest, and returning the proximity matrix
  5. Using the matrix to cluster the outcomes of the real data (labeled as 1)
  6. Use the clusters as new labels for the real data
  7. Pass this data with outcomes (from the clusters) and generate a new RF
  8. 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?

  • 2
    $\begingroup$ It is not clear to me why you are using a supervised approach, given that you do not have any real labels to use for training. $\endgroup$
    – Bitwise
    Feb 16 '16 at 19:56
  • 2
    $\begingroup$ Research that is not hypothesis-driven or does not at least make extensive use of the underlying biological mechanisms doesn't have a high chance for success. $\endgroup$ Feb 17 '16 at 12:19

Get more data or apply adequate domain knowledge. Otherwise you will be stuck with very crude models whom unlikely will represent your complex problem in any meaningful/useful way. Imagine you got 20 sentences with 1000 letters in a language you don't understand. You're not even sure of, when words start and stop. You could perform som kind of simple clustering analysis, but perhaps those sentences, that are the most different in letters, actually convey the same message.

  • $\begingroup$ I think you are very right, I will just try a few different models, with the data and see which performs the best. That is about all I can do. Can you point me in the directions of what techniques are good for different types of data? $\endgroup$
    – Kevin
    Feb 17 '16 at 14:54
  • $\begingroup$ Proteomic data is not my core expertice. If the data is e.g. microarray affinities or other numbers I guess I would try center and scale and then run a Wards hirachial clustering of observations. I may cautiously guess observations with low distance behave similarly, but I would not bet much money on it. $\endgroup$ Feb 17 '16 at 16:17

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.