Note · 2 min read

Learning a price and explaining a price

At Invisor I have tested CatBoost and Gemini for property valuation. Those comparisons led me to separate data extraction, numerical prediction and explanation.

What I ask each model to do

A listing mixes data, photographs and sales language. An LLM can help turn that material into usable fields: floor area, condition, floor, lift access or restrictions. When asked for an estimate, it can also produce a convincing explanation. That explanation does not measure the error in its proposed price.

I used Jev to label 50,000 properties in the database. That dataset lets me compare properties by their features and train CatBoost to learn how those features relate to price. I have also compared CatBoost and Gemini predictions. One ML approach starts with the area’s price per m² and trains a correction based on the property’s features. I can then compare what it learned with a simple baseline and measure what the model adds.

Let the evaluation decide

The experiments did not produce a universal winner. Gemini performed well on small samples but did not retain those results across more markets. Adding features to CatBoost did not consistently improve large errors either. Some simple medians performed better.

I therefore separate three tasks: extracting facts, calculating and explaining. Generation helps interpret messy information; a numerical prediction needs evaluation against held-out data. Its explanation comes after the calculation.

Training forces me to specify the target, available data and error measure. The prediction target is the advertised price. A good result on those labels does not establish knowledge of transaction prices or the value added by a renovation.

← Return to Notes