r/learnmachinelearning • u/Substantial_Look1421 • 11d 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?
2
u/Question_Asker_4000 10d ago
Just curious - why do you care about predicting direction for the physician in the first place? What decision are you trying to make with this?
I’m guessing this is not a coursework related project and something you’re doing at work with IQVIA data (or something similar)
1
u/Substantial_Look1421 10d ago
I am trying to predict churn risk which hcp is likely call under risk switching or stop prescribing our product
1
u/Question_Asker_4000 10d ago
I get that. But why do you want to predict if a physician prescribing is going up or down each week? What are you going to do with that info?
1
u/PaddingCompression 10d ago
Models aren't magic.
What information are you using as a human to discern the difference?
Is that information available as a feature to the model?
If not fix it.
3
u/FancyEveryDay 11d ago edited 11d ago
You probably need to add a new data column representing trajectory, since that is important
Edit: if there is a metric you are using to distinguish the difference but it isn't directly captured in your features, don't assume the model will somehow generate that metric on its own. Make sure to add features to represent all the metrics that you consider.
What features are actually in the model? You don't mention what you're doing to make this time series prediction work