I have two datasets, one of animal migration patterns (collected over the course of a couple years) that consists of many points on an x, y plane (latitude, longitude), and the other of ocean surface temperatures (also a set of lat, long points). What kind of neural network can be used, if any, to see some pattern, or correlate the two sets, so that I could alter the temperature data and have the network predict how the migration pattern changes? Is this a feasible use of an artificial neural network?

  • 2
    $\begingroup$ Questions of the form "I have some data, what can I do to see anything?" are notorious for having no (good) answer. You should be more specific; what kinds of patterns do you expect? What do you want to look for? $\endgroup$ – Raphael Sep 17 '15 at 13:49
  • $\begingroup$ @Raphael I want to see if warm water in the north of the pacific will drive out the migrating animals (seals) into colder water away from the blob of warm water that currently exists on the coast of California. $\endgroup$ – jeshaitan Sep 17 '15 at 18:50
  • 2
    $\begingroup$ What have you considered? What research have you done? In addition to Raphael's comment, questions of the form "I have some data, I haven't tried anything yet, any suggestions?" usually aren't a good fit here: the number of possible answers is too broad, and you haven't given us enough information and context to make a judgement or evaluate candidate answers. I suggest you start by doing research about types of neural networks, learn about the options, assess which ones seem most promising, and then see if you have a specific question -- if so, ask that and tell us what you've considered. $\endgroup$ – D.W. Sep 17 '15 at 19:00
  • $\begingroup$ @D.W. I've primarily researched two methods - particle swarm optimization and association rule learning. I think that the later really suits my problem, but I don't exactly know how to use that to predict how one set changing (ocean temperatures) will affect the other (animal patterns). $\endgroup$ – jeshaitan Sep 17 '15 at 19:20
  • $\begingroup$ Well, those aren't neural networks, so I'm not sure how they apply to this question, as this question seems to be about neural networks. If you want to ask about types of neural networks, I'd suggest you first doing a little research about types of neural networks, so you can ask a more focused question. $\endgroup$ – D.W. Sep 17 '15 at 19:23

Try a common feed-forward neural network with one hidden layer and train it with error backpropagatin to find a coherence between your input (temperature values) and output (migration patterns). In order to train a neural network, you have to have pairs of input and output vecors, i.e. in your case, one temperature measurement position corresponds to one migration position. If you cannot assign single input-output pairs, you might do some preprocessing (for example, simply grouping your data into a grid on the x-/y- plane and taking the mean of each grid). The question to find a suitable number of neurons in the hidden layer is discussed here.

Note that there exist many machine learning techniques to learn relations between input and output data. Furthermore, there exists a notable variety of artificial neural networks in structure as well as in training algorithms. As your question explicitly demands a neural network, this answer tries to provide a rather straightforward standard method.

For pattern analysis (in order to understand and/or visualize the patterns/correlations) some statistical approaches might be more suitable, e.g. clustering the data with k-means/EM-algorithm.

| cite | improve this answer | |
  • $\begingroup$ Thanks! Would a feed-foward ANN be able to predict the output vectors if I change the input vectors? In other words, after it was trained, if I feed it a new temperature map will it be able to give the corresponding migration pattern? $\endgroup$ – jeshaitan Sep 20 '15 at 12:49
  • 1
    $\begingroup$ Given a new input vector, the ANN will predict the corresponding output(-vector). The prediction accuracy depends on many factors: data quality (e.g. measurement errors), size of the available data set, how well the real model is represented by the the ANN to name a few of them. To test the performance of your model you could split your data set in a training and a test partition; train your ANN with the training data and after training feed your ANN with the test input. Then you can compare the ANN output with the test output. A standard measure is e.g. the root mean squared error (RMSE). $\endgroup$ – Nikolaus Sep 20 '15 at 17:50

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.