Отбраковка мошеннических объявлений о продаже квартир

Загрузка данных, разметка по 21 метрике, обучение модели и анализ объявлений

Загрузка данных

📖 Справка — что происходит на этом шаге?

На этом шаге вы загружаете данные — таблицу объявлений о продаже квартир — в базу данных системы. После загрузки данные можно размечать и обучать на них модель.

Датасет
Именованный набор данных — таблица объявлений, хранящаяся в БД. Можно создать несколько датасетов (например, «март 2026» и «апрель 2026») и сравнивать результаты обучения на разных данных.
CSV / TSV — формат файла
CSV (Comma-Separated Values) — таблица, где столбцы разделены запятой. TSV (Tab-Separated Values) — то же самое, но разделитель — символ табуляции (⇥). Это обычный текстовый файл, который можно открыть в Excel или блокноте.
Разделитель
Символ, отделяющий столбцы друг от друга в файле. Выберите «Табуляция» для TSV-файлов и «Запятая» для CSV-файлов. Если выбрать неправильно — все данные загрузятся в один столбец.
Столбец is_fraud
Признак мошенничества: 0 — нормальное объявление, 1 — мошенническое. Если в вашем файле этот столбец уже заполнен экспертом — разметку (Шаг 2) можно пропустить и сразу перейти к Шагу 3 «Обучение».
Статистика датасета
После загрузки можно посмотреть: сколько строк и столбцов, сколько из них размечено (есть метка is_fraud), сколько мошеннических. Помогает убедиться, что файл загрузился корректно и данные выглядят ожидаемо.

Датасеты в БД

Загрузить CSV/TSV в выбранный датасет

Выберите датасет выше, затем загрузите файл.

Статистика датасета

Разметка по 21 метрике обнаружения мошенничества

📖 Справка — что происходит на этом шаге?

На этом шаге система автоматически проверяет каждое объявление по 21 правилу и ставит метку: мошенническое (1) или нормальное (0). Это называется синтетической разметкой — автоматической, на основе правил.

Зачем нужна разметка?
Модель машинного обучения учится на примерах — нужно показать ей, какие объявления мошеннические. Разметка создаёт эти примеры автоматически, без ручной проверки каждой строки.
21 метрика
Набор из 21 правила разных типов: статистические (аномальная цена), логические (противоречия в описании), поведенческие (подозрительная активность продавца), контентные (ключевые слова мошенничества), временны́е и геолокационные. Каждое сработавшее правило добавляет очки риска — если сумма превышает порог, объявление получает метку «мошенническое».
Синтетическая разметка vs экспертная
Синтетическая — быстро, автоматически, но может ошибаться (правила не идеальны). Экспертная — вручную человеком, точнее. Если у вас есть CSV с готовым столбцом is_fraud от эксперта — используйте его и пропустите этот шаг.
Осторожно: разметка перезапишет метки
Если датасет уже содержит столбец is_fraud — запуск разметки заменит все значения новыми, сгенерированными правилами. Экспертные метки будут потеряны.
Когда разметку можно пропустить?

Если загруженный CSV уже содержит столбец is_fraud с экспертными метками (0 / 1) — запускать разметку не нужно. Перейдите сразу к шагу 3 «Обучение».
Запуск разметки перезапишет экспертные метки синтетическими.

Комплексная разметка (21 метрика)

Система из 21 метрики: статистические, логические, поведенческие, контентные, временные и геолокальные проверки.

Обучение модели

📖 Справка — что происходит на этом шаге?

На этом шаге модель машинного обучения учится отличать мошеннические объявления от нормальных. Перед обучением данные автоматически проходят конвейер предобработки — подготовку, как чистка и нарезка овощей перед готовкой.

Дубликаты
Одинаковые строки в таблице — одно и то же объявление, добавленное дважды. Удаляются автоматически, иначе модель считает его «важнее», хотя это просто технический повтор.
Пропущенные значения
Пустые ячейки в таблице — данных нет (например, не указан этаж). Большинство алгоритмов не умеют работать с пустотой: числовые заполняем средним по столбцу, текстовые — самым частым значением.
Нормализация и стандартизация
Приведение числовых признаков к сопоставимому масштабу. Пример: цены 1–50 млн и этажи 1–25 — без нормализации модель будет «слушать» только цену, потому что её числа больше. После — оба признака влияют одинаково.
Кодирование категориальных признаков (One-Hot Encoding)
Перевод текстовых значений в числа. Пример: «тип дома» = кирпичный / панельный / монолитный → три столбца (is_кирпичный, is_панельный, is_монолитный) с 0 или 1. Только одна «1» в строке — отсюда название One-Hot.
TF-IDF — обработка текстового описания
Метод превращения текста объявления в числа с учётом важности слов. TF — как часто слово встречается в этом объявлении. IDF — насколько редко оно встречается во всех объявлениях. Редкое и специфичное слово получает высокий балл; слова «и», «в», «на» — почти нулевой. Результат — числовой вектор, по одному числу на каждое слово словаря.
Мультиколлинеарность и отбор признаков
Если два признака несут одинаковую информацию (например, «цена» и «цена за м²» — зная одно, можно вычислить другое), один удаляется. Это запутывает модель: она не знает, кому «доверять». Меньше шума — лучше результат.
Разделение 80 / 20
Датасет делится на две части: 80% — обучающая выборка (на ней модель учится), 20% — тестовая (честная проверка результата). Модель не видит тестовую выборку во время обучения. Как экзамен: учишься по билетам, но сдаёшь другие вопросы.
Random Forest / Логистическая регрессия / Gradient Boosting
Три алгоритма на выбор. Random Forest — ансамбль деревьев решений, устойчив к выбросам, хорошо работает «из коробки». Логистическая регрессия — простая и интерпретируемая, быстро обучается. Gradient Boosting — мощный алгоритм, но медленнее. Для детектирования мошенничества обычно лучший результат у Random Forest или Gradient Boosting.
Вероятность, выше которой объявление считается мошенническим. Ниже → больше подозрительных (меньше пропусков), выше → меньше ложных срабатываний. Произвольный комментарий: ФИО оператора, район, цель модели и т.д. Отображается в списке моделей.

Сохранённые модели

Сравнение ROC-кривых моделей

Прогноз и экспорт

📖 Справка — что происходит на этом шаге?

На этом шаге обученная модель применяется к данным и для каждого объявления выдаёт прогноз: мошенническое или нормальное. Результаты можно скачать для дальнейшей работы.

Прогноз по датасету из БД
Применяет выбранную модель к датасету, уже загруженному в систему. Удобно для повторного анализа тех же данных другой моделью или с другими параметрами порога.
Прогноз по загруженному файлу
Позволяет загрузить новый CSV/TSV файл и сразу получить прогноз — без сохранения в БД. Удобно для разовой проверки новой порции объявлений.
Столбцы в результатах
fraud_probability — вероятность мошенничества от 0 до 1 (например, 0.85 = 85%). is_fraud_predicted — итоговая метка: 1 (мошенническое) или 0 (нормальное), зависит от порога классификации, заданного при обучении.
Экспорт CSV / Excel
CSV — универсальный текстовый формат, открывается в любой программе. Excel — отформатированный файл с цветовой подсветкой строк по результату прогноза.

Прогноз по датасету из БД

Прогноз по загруженному файлу

Экспорт CSV / Excel

Сначала выполните прогноз по датасету, затем скачайте файл.

Скачать CSV Скачать Excel

Дашборд системы

📖 Справка — что показывает этот раздел?

Дашборд — сводная страница с общей картиной работы системы: архитектура, статистика данных и результаты анализа мошеннических объявлений.

Архитектура системы
Схема того, как устроена система: браузер → Nginx → FastAPI → PostgreSQL. Nginx — «администратор на ресепшене», принимает все запросы. FastAPI — «сотрудник в кабинете», выполняет реальную работу. PostgreSQL — база данных, где хранятся объявления, модели и результаты.
Статистика по датасету
Общая сводка по загруженным данным: сколько объявлений, сколько размечено, сколько выявлено мошеннических. Помогает оценить масштаб и качество загруженных данных.
Анализ мошеннических объявлений
Детализация по конкретным объявлениям с высоким риском: какие правила сработали, какой итоговый балл риска (fraud_score). Удобно для ручной проверки подозрительных случаев.

Архитектура системы

Таблица метрик обнаружения мошенничества (21 метрика)

Пороги классификации Fraud Score

Timeline операций