# Machine learning model for determining whether a transaction is cheap, fair, or expensive,

I am currently working on a final project related to data science and would like some advice.

I have a second hand bike selling data set that consists of around 100,000 observations with the attributes: {Brand, Model, Machine Capacity, Mileage, Sold Date, and Price}.

Now, I need to decide on what to do with this data. Obviously, I could use a regression model to predict the price of a given bike. However, I would like to do something different, such as, for a particular type of bike getting the information on the price range that is considered cheap (e.g.: from 1000 - 2000 dollars), fair, and expensive.

I know that this can be solved by some simple statistics such as using normal distribution, and then using the empirical rule to divide the curve into 3 categories mentioned above.

However, if I want to take the machine learning approach, what kind of technique should I use to solve this problem?

Thank you.

• I mean, using a probability distribution (probably skewed distribution, cheaper bikes are probably more frequently sold, so not normal. Maybe try the lognormal instead) and determining categories by percentiles is not inherently wrong...but its arbitrary. What percentiles will be used for cheap, expensive, etc? You lose a ton of information by discretizing your problem. I think a better approach is to predict the actual selling price like you propose, using some right skewed distribution to define categories, and group accordingly based on the predicted sale price. Don't actually... – aranglol Jun 11 '19 at 18:55
• ...predict discrete groups like in classification. Keep the problem as a regression one. – aranglol Jun 11 '19 at 18:55
• Thanks for the idea. Making the prediction of discrete groups a classification problem is one of the approach that I consider before, the problem is my data has no label (e.g.: the bike in this observation was sold cheap etc). Any idea on how to label it automatically? using clustering perhaps – ruka Jun 12 '19 at 3:25
• I am in fact suggesting the opposite. Why is it absolutely necessary to make your predictions discrete? Is there a reason why we cannot keep the target variable continuous and then decide for yourself what is considered cheap/expensive? Like, simply analyzing a frequency histogram and deciding for yourself what should be considered cheap, expensive, etc. These kinds of things are completely subjective at this point and basically up to you. Selling price is something observable in your data (what a bike is sold for is a fact of reality)...to me, cheap, expensive, etc. are arbitrary terms... – aranglol Jun 12 '19 at 4:22
• that you should decide for yourself based on your own opinion and use cases. People ultimately will define cheap, expensive, differently depending on their own circumstances. Essentially what I am proposing: use a regression model to predict sale price of x bike. Then, decide for yourself whether predicted selling prices for future bikes are cheap/expensive. No need to do anything further at this point. – aranglol Jun 12 '19 at 4:23