0
$\begingroup$

I want to build a model that recognizes the species based on multiple indicators. The problem is, neural networks (usually) receive vectors, and my indicators are not always easily expressed in numbers. For example, one of the indicators is not only whether species performs some actions (that would be, say, '0' or '1', or anything in between, if the essence of action permits that), but sometimes, in which order are those actions performed. I want the system to be able to decide and classify species based on these indicators. There are not may classes but rather many indicators. The amount of training data is not an issue, I can get as much as I want. What machine learning techniques should I consider? Maybe some special kind of neural network would do? Or maybe something completely different.

$\endgroup$
3
  • 1
    $\begingroup$ If you can come up with some meaningful notion of similarity between actions, you can try kernel methods or other similar approaches. You can also try recurrent neural networks, possibly with LSTM; I think that's the standard sequence model in that community. If you give some examples of what the data looks like and what you know about it, we can maybe give more specific suggestions. $\endgroup$
    – Danica
    Commented Apr 22, 2015 at 20:06
  • $\begingroup$ What is about kernel methods that you think is going to "make it"? $\endgroup$
    – nix
    Commented Apr 24, 2015 at 6:00
  • $\begingroup$ Kernel methods will simply allow you to do whatever you want, assuming you can come up with a kernel on action sequences. There are many such kernels existing; for example ,word sequence kernels might be a reasonable place to start. $\endgroup$
    – Danica
    Commented Apr 24, 2015 at 19:00

1 Answer 1

0
$\begingroup$

There are a lot of different types of classification algorithms. You mentioned neural networks, but there are also:

  • decision trees (e.g. J48),
  • probabilistic classifiers (e.g. Naive Bayes) and
  • support vector machines (with different kernels - linear, nonlinear, soft margin etc.)

Usually, the best all-round algorithm is SVM, but it really depends on the problem itself - some problems are best solved using neural networks, some by decision trees and so on.

It also depends on what you are willing to achieve. If you would like to be able to interpret the classification rules, then decision trees are the most straightforward way to do this. On the other hand, neural networks are the most difficult to understand/interpret.

I can see from your question that you don't seem to know exactly how to execute this, therefore I can recommend Weka. It is a free and open source tool for machine learing and data mining. With it you can import your data in various formats (CSV etc.) and can quickly benchmark various machine learning algorithms with various settings (parameters). This way you can find the machine learning algorithm, which suits your problem most.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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