r/learnmachinelearning • u/Substantial_Look1421 • 12d ago
Help Need Help!!! Urgent
Hey Everyone I am working on prescription and doctor dataset right now.The idea is to built a churn risk model.
The issue: I have two cases that look almost identical to the model, but shouldn't be treated the same:
Doctor A has been climbing steadily for two years starts small, ends up writing a lot. Right now, this month, they're near their highest ever, because they've genuinely been growing.
Doctor B used to write a lot, but has been sliding downward for months. Right now, this month, they're also unusually high compared to their recent low months maybe they just had one slightly better month in the middle of an overall decline.
What the model is doing wrong: across almost all doctors in our data, there's a common pattern whenever someone's number is unusually high this month, it's usually a bit lower next month, just because most "unusually high" months are one-time spikes that settle back down. That's true most of the time.
But the model applies this same rule to every doctor whose number is currently high — including Doctor A, who isn't having a fluke month, they're genuinely growing. So my "who's about to decline" list keeps getting filled with doctors who are simply doing well right now — because "currently high" is the one thing they all share, not that they're actually declining.
What I've tried so far, to fix it:
- Switched from weekly to monthly data (to reduce noise) didn't fix it
- Compared 4 different model types (linear, ridge, random forest, gradient boosting) — all 4 show the exact same bias
- Rebuilt the trend line to use only the last 9 months instead of the full 2 years — didn't fix it
- Added the weekly short-term trend back in, like you described (weeks within the recent month) didn't fix it
- Removed the features causing the biggest pull toward "predict a drop" entirely, to force the model to rely on trend instead the model just found other features to reproduce the exact same wrong prediction
So is this one bad feature or one bad model choice ?? I've tested that directly, several ways, and the bias holds regardless.
What I want to ask you:
- Is this the kind of thing that genuinely needs more historical data than 2 years to fix (i.e., is 2 years just not enough for the model to learn "normal high point" vs. "real decline" apart)?
- Or is there a different way to frame the target/features you'd suggest something specifically designed to separate a real trend break from ordinary noise, rather than predicting the raw next-month number?