0
$\begingroup$

I am doing research on proteins.

I have 17,000 *.CSV files on my hard disk. These files represent the chains of proteins. I want to use these *.CSV files to train an ML algorithm.

   5 CYS C  6.291   8.720 11.751 0 0 0 0  0  0
   6 TRP C  6.400   9.519 11.188 0 0 0 0  0  0
   7 VAL C  6.095   8.796 11.456 0 0 0 0  0  0
   8 ASP C  5.517   7.230  9.510 0 0 0 0  0  0
   9 ASN C  5.843   8.836 10.235 0 0 0 0  0  0
  10 GLU C  5.553   6.811 10.546 0 0 0 0  0  0
  11 GLU C  6.594   7.723  8.656 0 0 0 0  0  0
  12 ASP C  6.034   8.717 10.241 0 0 0 0  0  0
  13 ILE H  5.367   5.205  7.790 0 0 0 0  0  0
  14 ASP H  5.407   5.105  6.383 0 0 0 0  0  0
  15 VAL H  5.417   5.108  6.146 0 0 0 0  2  0
  16 ILE H  5.474   5.196  6.168 0 0 0 0  5  0
  17 LEU H  5.427   5.188  5.997 0 0 0 0  1  0
  1. Residue number (for debug purpose only, NOT A FEATURE)
  2. Residue type (for debug purpose only, NOT A FEATURE)
  3. Secondary structure (TRUE LABEL)
  4. r13
  5. r14
  6. r15
  7. Neighbor count within 4Å
  8. Neighbor count within 4.5Å
  9. Neighbor count within 5Å
  10. Neighbor count within 6Å
  11. Neighbor count within 8Å
  12. Hydrogen bonds count

I have been using neural networks thus far. However, I am fed up with the amount of time needed for each training run. Coz, the extensive amount of time hinders the progress of my research.

Which ML algorithm will take the least amount of time to train and produce results?

$\endgroup$
6
  • $\begingroup$ Probably it depends on the task and the goal you want to achieve and the data you got? $\endgroup$
    – Dave
    Apr 9 at 6:27
  • $\begingroup$ I think it also depends on the programming language the algorithm is implemented in, and if (+how) the implementation makes use of parallelization . $\endgroup$
    – knb
    Apr 9 at 10:13
  • $\begingroup$ same question as @Dave. At least some examples of what the input and output look like? It is hard to tell what are feasible without knowing what the problem is. $\endgroup$
    – lpounng
    Apr 10 at 10:43
  • $\begingroup$ @Dave, Edited... $\endgroup$
    – user366312
    Apr 10 at 11:28
  • $\begingroup$ @user366312 can I take that basically you have 4-12 as features and trying to predict the label 3? $\endgroup$
    – lpounng
    Apr 11 at 1:37

2 Answers 2

2
$\begingroup$

From the description it sounds like a usual classification problem, which implies you can try every classification algorithm you want e.g. those listed on Scikit-Learn's doc.

In terms of speed linear model should be fastest (let alone dummy classifier). In terms of performance the state of the art is the gradient-boosted tree family e.g. Lightgbm. You can experiment and see what fits your scenario.

The rule of thumb is to test your ideas on simple (and fast) methods first before going deep and complex.

$\endgroup$
1
$\begingroup$

Which ML algorithm will take the least amount of time to train and produce results?

usually training time, prediction time and performances, don't really go along with eachother:

  • KNN has O(1) training, O(n log k) complexity in evaluation, but doesn't really work most of the times
  • linear regression has O(n^3) training time, O(1) evaluation, but most of the times it's too simple

But all of this bounds are theoretical, and they are off by a constant, thus it definitely depends on the hyperparameters that you use, and the use case that you have to do with them

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .