7
$\begingroup$

I'm looking into a problem where the data points have unequal features.

Each instance represents the progression of an item throughout the system. A number of them have progressed to their end point, others are still at intermediary stages. The number of stages is known (10 in total). I have the time when it enters each stage. The point is to make predictions as to when they will reach their final stage.

There are a number of ways to handle this. It seems that a decision tree might be able to handle this properly. Even if a stage's entry time isn't known, it should still be able to make a reasonable prediction from the data it does have.

Can someone point me in the right direction?

| improve this question | | | | |
$\endgroup$
  • $\begingroup$ A decision tree works, or you could introduce boolean dummy variables to mask out non-applicable features. Welcome to the site! $\endgroup$ – Emre May 8 '18 at 23:01
1
$\begingroup$

If you need to impute each missing value you could consider multiple imputation or interpolation methods for Time Series. e.g. https://stackoverflow.com/questions/49308530/missing-values-in-time-series-in-python

If the goal is to simply predict the entry time to Stage 10 and not worry about when they hit the intermediate stages, you can treat is a regression problem i.e. just predict time to Stage 10. The simplest way might be this - just treat it like a normal supervised learning problem with some missing data. The only extra step is you need to create some missingness in your training/test data to match the data you will score.

Your train/test data will consist of all records with the full data up to stage 10.

Use cross-validation or a train/test split within this data to create a predictive model to predict time to Stg10. Within this data randomly blank out data between Stg1 and Stg9 to simulate the scoring dataset but keep Stg10 as you need a label to predict. Use a tree based method such as Random Forests as they are OK with the dependence between the variables and will deal with missing data.

Use this model to score the unlabelled data (i.e. where there is no Stg10 info). The remaining problem is the level of completeness within the unlabelled dataset. If they are filled up to Stg9 you have no problem. If they all go to Stg1 you have a problem! So you will have to see if you have enough completeness in your data to support this method.

But it's a valid place to start and may turn out to be sufficient for your purpose..

| improve this answer | | | | |
$\endgroup$
0
$\begingroup$

If I understand your problem, you could formulate the problem as a Classification task with missing inputs
When some of the inputs may be missing, rather than providing a single classification function, the learning algorithm must learn a set of functions. Each function corresponds to classifying x with a different subset of its inputs missing. "but we only need to learn a single function describing the joint probability distribution of all of them".

Or you could formulate it as Imputation of missing values
An algorithm is given a new example x but with some entries of x missing. The algorithm must provide a prediction of the values of the missing entries.

| improve this answer | | | | |
$\endgroup$
0
$\begingroup$

The simplest solution is to build 10 models, one per stage. It will enable you to use different features or even different algorithms for each stage.

| improve this answer | | | | |
$\endgroup$
0
$\begingroup$

I had the same problem. you can use aggregation functions. For example use Max, Min, Avg, count, std or some calculation like the slope of the line. Then it's not related to stage anymore.

It works for me.

| improve this answer | | | | |
$\endgroup$

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.