Вопрос или проблема
Я прошу помощи по следующей проблеме.
В наборе данных есть две подсборки – одна, где целевая переменная реальная (действительная), а другая, где она приблизительная (пока не знаю, чем они отличаются, в одной выборке реальная цена квартиры, а в другой цена из объявлений, нужно предсказать реальную, конечно). Есть идеи, что с этим делать? У меня есть две идеи – нормализовать целевую переменную из объявлений (привести ожидание и дисперсию к реальной целевой) и также модифицировать функцию потерь, чтобы она больше наказывала за ошибку на реальной целевой. Больше идей нет. Поэтому я прошу о помощи.
Обновление: Извините за скупость в деталях. Проблема заключается в прогнозировании цены квартиры, что выполняется профессиональными риэлторами. Набор данных имеет множество признаков (например, количество магазинов в некотором радиусе, расстояние до ближайшей школы и т.д.), и у нас есть две подсборки в этом наборе данных: первая – это набор данных с ценами, разработанными риэлторами, а вторая – это подсборка с ценами из объявлений. Цель состоит в том, чтобы предсказать цену так, как это делают риэлторы, но, конечно, прогнозы риэлторов дорогие, поэтому у нас недостаточно данных, и мы также используем данные из объявлений. Так что я спрашиваю, какой лучший способ обработки подсборки с целевыми значениями из объявлений.
Это обычно называется слабым контролем, шумными, ограниченными или неточными целевыми значениями.
Один из вариантов – обучить заместительную модель. Используйте цены риэлторов как истинные значения, затем обучите модель, которая “переводит” цены из объявлений, чтобы имитировать цены риэлторов.
Ответ или решение
Прогнозирование цен на квартиры с использованием двух источников цен
Ваша задача заключается в прогнозировании цен на квартиры, используя две подсистемы данных: одну с ценами, установленными профессиональными риэлторами (реальные цены), и другую с ценами, взятыми из рекламных объявлений (приближенные цены). Это распространенная проблема, связанная с «слабым обучением» и наличием шума в целевых значениях. Ниже приведены несколько стратегий, которые помогут вам более эффективно использовать имеющиеся данные.
1. Нормализация целевых значений из объявлений
Ваше первое предложение о нормализации цен из рекламных объявлений является разумным. Вы можете применить статистические методы для корректировки разброса и среднего значений этих данных. Например, можно рассмотреть следующие этапы:
-
Анализ корреляции: Сначала проведите анализ корреляции между ценами риэлторов и ценами из объявлений. Это поможет вам понять, как сильно они различаются и какую корректировку нужно провести.
-
Калибровка: Используйте подходы к калибровке, такие как «построение модели» для определения функции, которая преобразует цены объявлений в более реалистичные прогнозы. Например, вы можете применить линейную или полиномиальную регрессию, которая преобразует цены из объявлений в цены риэлторов.
-
Статистическая нормализация: Примените Z-преобразование или Min-Max нормализацию для приведения обоих наборов данных к сопоставимым диапазонам.
2. Модификация функции потерь
Второе ваше предложение о модификации функции потерь также кажется многообещающим. Необходимо более строго наказывать ошибки в прогнозах реальных цен, чтобы модель училась лучше на ограниченных данных. Вы можете рассмотреть следующие подходы:
-
Взвешенная функция потерь: Разработайте функцию потерь, в которой ошибки для реальных цен будут иметь больший вес, чем ошибки для цен из объявлений. Например:
[
L = \alpha \cdot L{\text{real}} + (1 – \alpha) \cdot L{\text{ads}}
]
где ( L{\text{real}} ) — функция потерь для реальных цен, ( L{\text{ads}} ) — функция потерь для цен из объявлений, а ( \alpha > 0.5 ) определяет вес ошибок реальных цен. -
Кросс-валидация: Рассмотрите возможность использования кросс-валидации с учетом различных подмножеств данных, чтобы удостовериться в устойчивости вашей модели к шуму в данных.
3. Использование модели-суррогата
Вы также можете создать модель-суррогат, которая будет «переводить» цены из рекламных объявлений в цены риэлторов. Это может быть реализовано через несколько этапов:
-
Создание модели: Используйте данные риэлторов в качестве Ground Truth для обучения модели, которая будет направлена на прогнозирование реальных цен на основе цен из объявлений и других доступных признаков.
-
Увеличение данных: Полученные прогнозы можно использовать для увеличения объема обучающего набора, что поможет в дальнейшей калибровке и улучшении основной модели.
4. Применение методов машинного обучения
Независимо от выбранного подхода, обязательно протестируйте несколько алгоритмов машинного обучения, таких как:
- Регрессия (линейная, полиномиальная)
- Деревья решений и ансамбли (например, Random Forest или Gradient Boosting)
- Методы глубокого обучения (например, нейронные сети)
Применение ансамблей моделей может помочь повысить точность ваших прогнозов.
Заключение
Объединение данных из двух источников — это задача, требующая тщательного подхода и настройки. Нормализация, модификация функции потерь, использование модели-суррогата и применение методов машинного обучения — все эти методы могут помочь в достижении лучшего результата. Помните, что тестирование и валидация модели на различных подвыборках данных также играют критически важную роль для создания надежных и устойчивых прогнозов цен на квартиры.