TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Data Science | Вопросы собесов

21 Aug, 12:05

Открыть в Telegram Поделиться Пожаловаться

🤔 Что будет с целевой меткой с предсказаниями, если обучалась на неотрицательной целевой метке?

Если модель обучалась на неотрицательной целевой метке (например, метки, которые не могут быть отрицательными, такие как возраст, стоимость, количество и т.д.).

🟠Регрессионные модели
Могут предсказывать как положительные, так и отрицательные значения, если не наложены дополнительные ограничения. Например, линейная регрессия или случайный лес могут предсказывать отрицательные значения, даже если обучались на неотрицательных данных. Это происходит потому, что модель пытается найти лучшую аппроксимацию, минимизируя ошибку предсказания, и может выйти за пределы диапазона обучающих данных.

🟠Вероятностные модели (например, модели, предсказывающие вероятность события)
Обученные на неотрицательных целевых метках (например, 0 или 1), будут предсказывать значения в диапазоне [0, 1]. Однако, эти модели также могут иногда предсказывать значения немного ниже 0 или выше 1 из-за особенности алгоритмов (например, логистическая регрессия без дополнительных ограничений).

🚩Способы предотвращения предсказания отрицательных значений

🟠Использование функции потерь с ограничениями
Например, в регрессионных задачах можно использовать функции потерь, которые накладывают штраф за отрицательные предсказания.

🟠Постобработка предсказаний
Можно применить после предсказания функцию, которая заменяет все отрицательные значения на ноль.
predictions = model.predict(X_test)
predictions = np.maximum(predictions, 0) # Заменяем все отрицательные значения на 0

🟠Использование моделей, которые по своей природе не могут предсказывать отрицательные значения
Например, модели на основе дерева решений с соответствующими параметрами, нейронные сети с нелинейными активационными функциями, которые ограничивают выходное значение.

🟠Трансформация целевой переменной
Можно применить логарифмическую трансформацию или другую трансформацию, которая делает целевую переменную всегда неотрицательной, и потом обратную трансформацию для предсказаний.
from sklearn.linear_model import LinearRegression
import numpy as np

# Пример данных
X_train = np.array([[1], [2], [3], [4]])
y_train = np.array([10, 15, 20, 25]) # Неотрицательные целевые метки

# Обучение модели
model = LinearRegression()
model.fit(X_train, y_train)

# Предсказания
X_test = np.array([[5], [6], [7]])
predictions = model.predict(X_test)

# Применение постобработки для удаления отрицательных значений
predictions = np.maximum(predictions, 0)

print(predictions)

Ставь 👍 и забирай 📚 Базу знаний

214 0 1 2
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot