Get in touch

09 Juni 2020

Machine Learning and Elasticsearch empowering great marketplaces

Machine Learning and Elasticsearch empowering great marketplaces

Welcome to the fourth edition of our series on technology case studies from our portfolio companies. Check out the first, the second and the third edition in case you have missed it!

In this post, Filip Haftek, DevOps Consultant at Russmedia Consulting, and Romina Popa will show you how they improved their customer satisfaction at Russmedia Digital Romania.

This post was also published on Medium.

Enter Filip and Romina:

 

Introduction

We decided to give Machine Learning technology a try, but also wanted to experiment with one of the most powerful search engines in the world — Elasticsearch. In this article I am going to describe both approaches and compare the results we have achieved.

Proper data is a must

Also, we found some deviations in listings i.e. mileage above 1 million kilometers, so we had to remove all the entries with improper data.

After the data cleaning, we decided to go for Machine Learning regression algorithms. The idea behind our decision was to support our users in the process of posting a car listing by having our system suggest the best price for the car after the user fills in all the required fields.

Our final feature set includes:

  • car body
  • fuel type
  • horsepower
  • registration date
  • mileage
  • model

Machine Learning for car price prediction

  • LinearRegression
  • DecisionTreeRegressor
  • GradientBoostingRegressor

We first had to remove the make of the car, as every make has unique model names. I will not get into the detailed process for building the model, but instead I recommend you read this great article: predict car prices with ML. We ended up with Decision Tree Regression model with regressor score 0.85, where possible values are:

where 1 is the best possible score.

As we had our model, we were able to predict more precisely the proper price for posting the car based on the provided parameters. Our product team reviewed the solution and raised another issue:

Since we can predict the accurate price, how about going one step further? We could actually help our customers manipulate the price in order to incentivise them to post their car listing with a fairer price. This could help them get more views and sell faster.

Elasticsearch advanced features for better data understanding

But for us it all comes down to this:

How can it help our customers choose the best price for the car they want to sell on Publi24.ro platform?

In order to answer this question we had to look deeper into the capabilities of Elasticsearch. Apart from indexing the documents and making them available for different types of searches, it also provides many data aggregation features. Our product team was asking for more than single digit price recommendations; they asked for price buckets so we could suggest our users defined price ranges which would increase the probability of selling the car faster.

We looked into stats aggregation, which showed us many statistical data regarding prices for particular groups of cars, but we found out that the feature meeting our expectations was percentiles aggregation.

Percentiles show the point at which a certain percentage of observed values occur.

Apart from predefined numbers, with Elasticsearch we were able to define our own ‘points’ with such query:

This approach allowed us to place prices into 5 different ranges: very cheapcheapaverageexpensive and very expensive, based on the provided data.

Customer satisfaction first — the approach we have chosen

Which approach would help our customers most? Single recommended value or price ranges?

Our product team made a research which proved that placing the users’ price into buckets and allowing them to increase/decrease price on the website while posting the listing would result in a better user experience.

With this in mind our UX team has designed the UI which looks like this:

Car price recommendation feature on www.publi24.ro

Our users are now able to manipulate the price and choose the right price bucket for their car listing. This determines the number of ad views and influences how fast our users will be able to sell their car.

Design for failure

Summary

Feel free to reach out with any feedback or suggestions, we would love to hear from you.

You can also try our price recommendation feature on Publi24.ro or visit the Russmedia Equity Partners website.

Russmedia group is also sharing projects via open source — please visit our open source catalog.

Acknowledgements

Radu Moldovan (CTO of Russmedia Digital Romania)

Claudiu Silaghi (DevOps/Web Developer at Russmedia Digital Romania)

More from Russmedia Equity Partners

Russmedia Equity Partners acquires a majority stake in Jobiqo.

Russmedia Equity Partners accelerates Jobiqo's growth

31 Oktober 2019

Russmedia acquires a majority stake in Vienna-based Job Board software manufacturer and supports Jobiqo in further international growth and product development.
Read more

Russmedia Equity Partners Est. (RMEP) have acquired a 51% stake in calimoto

calimoto bring new shareholder on board and set their eyes on global expansion.

26 September 2022

All three founders – Sebastian Dambeck, Luca Osten und Hans Allenfort - stay on board as managing directors and shareholders, while all other shareholders have exited the company.
Read more

You’re next Let’s go