3
$\begingroup$

A couple weeks ago I volunteered to take on a project at work to try predicting the ideal price rental cars my employer should be charging based on our historical rental data. The variables available are things like how long the rental was, how many days in advance reserved their rental, driver license demerits, etc. My approach is train a predictive model using scikit-learn against a training dataset and validate against unseen test data.

Several weeks later, I've tried removing features, combining features, generating synthetic data (SDV), hyperparameter tuning, and increasing the number of epochs and still can't generate a model with R2 >0.5 no matter what I try. My understanding is that this means the predictive power of the model would basically be a toss-up.

I'm not a data scientist by trade so I'm not really sure what to make of this. Would the correct conclusion be that there was no strong pattern in any of our previous rental pricing and therefore there is no point in training a model to predict prices based on our current practices?

$\endgroup$
3
  • 1
    $\begingroup$ stats.SE's "How to know that your machine learning problem is hopeless?" is relevant and a common duplicate target there. $\endgroup$
    – Ben Reiniger
    Feb 28 at 3:08
  • $\begingroup$ And the model aside, I think "ideal price [...] based on our historical rental data" is problematic. Your model is trying to learn historical prices, not optimal ones. $\endgroup$
    – Ben Reiniger
    Feb 28 at 3:09
  • $\begingroup$ You're right, optimal isn't the right word. The expectation is just to have a model that can take variable inputs and spit out a price. Not necessarily an optimal price. $\endgroup$
    – enmasse
    Feb 28 at 4:02

1 Answer 1

1
$\begingroup$

the short answer is that if a human can do it, then the right implementation and model can do it (see "human level performance" or "human benchmarking"). but that doesn't answer if it is feasible in any given situation due to limited time/money/expertise.

I am surprised car details are not listed in your features, surely more expensive/newer cars cost more to rent, yes?

I would suggest talking with the actual people who set these prices in the first place, assuming you have access to them. Ask them how they set prices and what features are important. as a side note I assume an automated system doesn't set the prices, otherwise you would be building a model to predict the prices of an already automated system which doesn't seem helpful unless this system is expensive or something.

a clear big-picture goal statement would be helpful, for example if you made a model with R^2 = 1 what would you do with it? sure you would set the prices, but the prices are already being set and if you had a perfect model it would replicate perfectly how you are already setting prices.

my first thought is that you may be trying to predict how to set better prices such that you always rent out all your cars at a price where demand perfectly matches supply, but you won't get that by copying what was done in the past.

finally facebook's prophet model would be great for this.

$\endgroup$
3
  • $\begingroup$ Make, model, year, color is all information I have available to me. My thought was the same as yours that they had a large influence on the way we priced rentals. But running through regression showed the correlation was weak. When I take a step back to think, you're right, the project is really more about creating an automatic pricing model and not an ideal automatic pricing model. Thanks for the heads-up on prophet, I'll give this a shot. $\endgroup$
    – enmasse
    Feb 28 at 7:26
  • $\begingroup$ I like the part: talk to real people in the business, ask them what are important and what not. Though domain experts may not always be correct, it is usually a good starting point. $\endgroup$
    – lpounng
    Feb 29 at 9:25
  • $\begingroup$ if you have the make, model, and year you can get the estimated values of this car, this should be a good feature. don't toss out features in the beginning unless you need to (like if you don't have many sample and you need to perform feature selection to prevent overfitting). in fact do the opposite, create new features!! like finding the sale price based on car details! $\endgroup$ Feb 29 at 15:59

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.