Кажется, что в питоне не так много пакетов с квантильной регрессией...
Похоже, пакетов в питоне с квантилем не очень много
регресс...
Почему это должно идти в scikit-learn?
Если возможно, то почему бы и нет?
Потому что у нас уже есть много кода, который нужно поддерживать, и мы включаем только популярные алгоритмы машинного обучения. Это популярно? Имеет ли он явные преимущества для задач машинного обучения по сравнению с другими подходами?
(Кстати , VW имеет квантильную регрессию с потерями ℓ(p,y) = τ(p - y)[[y ≤ p]] + (1 - τ)(y - p)[[y ≥ p]], где [ [⋅]] — скобки Айверсона.)
GradientBoostingRegressor
поддерживает квантильную регрессию (с использованием loss=quantile
и параметра alpha
). Пример см. на странице http://scikit-learn.org/dev/auto_examples/ensemble/plot_gradient_boosting_quantile.html#example -ensemble-plot-gradient-boosting-quantile-py.
Я должен был это проверить. Закрытие этого вопроса.
Хотя я не согласен с тем, что это не так много пакетов для квантильной регрессии на Python, я считаю, что важно иметь чистую квантильную регрессию (не внутри метода ансамбля) в научном наборе.
Квантильная регрессия имеет то преимущество, что она ориентирована на конкретный квантиль y. При этом можно уменьшить разницу медианы y_pred и y. В этом случае это похоже на минимизацию абсолютной ошибки, но гораздо более общее и работает для других квантилей.
Банки часто используют это при работе с кредитным скорингом и другими моделями, так что это проверенная в реальных условиях модель. Эта модель реализована в R и SAS.
@prcastro вы имеете в виду линейную модель?
Точно. Сегодня sklearn реализует квантильную регрессию для ансамблевых методов. Однако обычно он используется как обычная линейная модель.
Я был бы готов добавить его. @jnothman @GaelVaroquaux?
Кажется, это действительно установлено
Я был бы готов добавить его. @jnothman @GaelVaroquaux?
Нет оппозиции. Нам просто нужен хороший PR, и время, чтобы рассмотреть его.
Что касается конкретного случая квантильной регрессии для медианы (абсолютная потеря), в отличие от более общих квантилей, кажется, что http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.HuberRegressor.html позволит это если бы мы только могли передать epsilon=0.0. Почему HuberRegressor требует epsilon : float, greater than 1.0
? ( The Huber Regressor optimizes the squared loss for the samples where |(y - X'w) / sigma| < epsilon and the absolute loss for the samples where |(y - X'w) / sigma| > epsilon.
)
Потеря Хубера с epsilon=0 — это проблема негладкой оптимизации: один
не может использовать один и тот же класс решателей.
Я добавил классическую квантильную линейную регрессию в запросе на вытягивание выше. Пожалуйста, просмотрите его!
Всем привет! Пожалуйста, просмотрите мой PR, когда у вас будет на это время.
пинг
Кажется, что в питоне не так много пакетов с квантильной регрессией...
они не собираются слушать его 2020 год, и до сих пор у нас нет надлежащего пакета количественной регрессии
Самый полезный комментарий
Всем привет! Пожалуйста, просмотрите мой PR, когда у вас будет на это время.