How to predict a class between uneven datasets I am trying to predict obesity using two datasets. The first (Diet) has 20k values in two columns:
Diet [ID, Calories(float)]
The second dataset also has two columns:
Obesity [ID, Level(1,2,3)]
Calories is the feature I am trying to use to predict the class Level. However the second dataset (Obesity) contains only 5k values total that share the same corresponding ID in the Diet dataset. Data was not inputted for the remaining 15k values not classified as obese.
What would be the best method to train a classifier on the Diet dataset to predict Levels in the Obesity dataset. Is it okay to merge the two together and fill the 15k na's with 0? What would be the optimal approach to structuring the data when feature and class sets don't have the same number of values?
Ideally after this step is complete I would like to split the data into train and tests sets for predictive modeling.

If those unlabeled IDs in the Obesity dataset are "not obese", and if those classes 1, 2, 3 are "a bit obese", "obese" and "very obese", then I think a decent first step is to make those NaNs into zeros. If they aren't ordinal values, just unordered categories, then you might order them or just use the labels directly so nobody gets confused.
Now you need to make sure your data meet the IID assumption. If there is exactly one row per ID, and exactly one ID per individual person, then you can probably use a holdout strategy for validation and testing (you usually want two holdouts sets, not just one). Just be sure to check the distributions of both the Calories feature and the Level labels across the datasets — they need to be comparable.
If you have multiple rows per person, then you're going to need to be careful not to spread individuals across your dataset. That's called 'leakage' and it's not allowed.
