I have a dataset X which consists of two parts: X1 and X2. X2 is believed to depend on X1. And there is a resulting dataset Y which depends on both X1 and X2. For every training sample X1 and X2 are vectors of integers from limited range - roughly speaking, 50 numbers in X1 and about 1000 in X2. Y is a single integer also within some range.

The problem is predicting Y based on both X1 and X2 in a training set and only X1 in a test set.

I'm going to use neural networks, but I doubt what type of NN should I choose to be able to predict Y having only partial data X1, while training on both X1 and X2. That's because training only on X1 doesn't give a good accuracy, so I decided to engage additional data X2, which, I believe, could tell more about features from X1. However, data from X2 are not available when predicting new samples.

My idea is elaborate new features using X2, which are associated with particular values from X1, and hence will be useful for predicting new samples. Say, I assign kind of score to each particular value from X1. My assumption is that score will remain valid for all new samples with unknown X2, but well known values from X1 which have assigned "scores". In this case we get an additional features, which can be useful.

Does such a problem have a common name and what methods would you suggest to solve it?

See comments below for details of my particular case.

Originally posted at StackOverflow.

  • 1
    $\begingroup$ Can you provide a small example dataset to illustrate your situation? What are the variables? $\endgroup$ Commented Mar 5, 2017 at 14:23
  • $\begingroup$ Please do not cross-post. That is against SE policy. You should decide which site you think is appropriate & delete the other one. $\endgroup$ Commented Mar 5, 2017 at 14:40
  • $\begingroup$ @gung deleted on SO. Regarding the dataset, it's about hockey. X1 is a two teams (IDs) with a list of their members. X2 is a sequence of actions, like goal, puck takeover, player change and so on (as I wrote, about 1000 for each match). Y is score of both teams. However, I believe, the problem is more broad. $\endgroup$
    – stop-cran
    Commented Mar 5, 2017 at 15:00
  • $\begingroup$ So if i'm understanding correctly, you're trying to predict a score based on just the two team ID's right now? If X2 is believed to depend on X1, why not use a neural network to approximate X2 and then feed X1 and X2 to another neural network to create Y? Please give some more specific info, switching X1 and X2 to the real example (hockey team and actions) would make the problem more understandable. $\endgroup$ Commented Mar 5, 2017 at 20:31
  • $\begingroup$ @ThomasW I tried to predict a score based on team IDs, their player IDs and roles IDs of that players (attacker, defender, goaltender etc.) - that's what I called X1. X2 is a list of key actions for given match - type of action (puck takeover, goal etc.), its time, IDs of involved players. To me it doesn't make much sense trying to predict those X2 based on X1, just because of much higher dimensionality (~1000). Moreover, that data are quite random. $\endgroup$
    – stop-cran
    Commented Mar 6, 2017 at 7:21

1 Answer 1


If you predict on partial data, then use partial data to train!

X2 is believed to depend on X1


Y which depends on both X1 and X2

This means that Y only depends on X1.

In your particular case, X1 are player/team id's and X2 are the actions of the game. You have stated that these actions include goals. Then why do you need a neural network to compute score Y from X2? You literally have an array saying which teams scored.

X2 is something that you should let the neural network figure out. The only thing that you should supply is X1 in both training and prediction.


If you want to predict how well a student scores on a test (Y), the data you have available is X1, including sleep, previous scores, hours of learning and amount of coffee. That's all you need. You don't need X2, which in this case, is what the student wrote down on the test. With X2 you could compute Y directly, without a neural network.


What you should do is make X1 include as much details about players and team as possible. For players, include average amount of goals, average takeover, average distance travelled, average swings made etc. Also include stuff like the environment; the season in which their playing, the amount of supporters.

Do not compute the resulting actions of the teams, that is the 'magic' happening in the neural network already.


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.