ANALYTESS Telegram 493
Линейная регрессия с коэффициентами не меньше нуля📈

Небольшая хардовая заметка на полях, морали не будет. Недавно столкнулась на работе с такой задачкой: хотелось проверить (подтвердить) зависимость одной величины от нескольких продуктовых метрик при помощи наиболее простой и интерпретируемой модели из возможных. Грубо говоря, если обучится регрессия с хорошим R^2, то величины коррелируют. (Вопрос доказательства каузации сложнее, сегодня не трогаем)

И таргет, и фичи имели определённый «физический смысл» — были продуктовыми или техническими метриками — то есть временными рядами с растущим трендом. В связи с этим, а также по продуктовому здравому смыслу, хотелось, чтобы в итоговой линейной комбинации коэффициенты были неотрицательными. Так ненужные фичи получат коэффициент 0.

Оказалось, что для этого есть готовые методы😎
⚡️ можно заменить statsmodels.regression.linear_model.OLS на scipy.optimize.nnls (non-negative least squares)
⚡️ или же добавить в sklearn.linear_model.LinearRegression параметр positive=True. Если что, на intercept (свободное слагаемое, если fit_intercept=True) он не распространится, что, как правило, не нарушает замысел поставленной выше задачи.

Эти методы реализуют уже не просто линейную регрессию (метод наименьших квадратов) в классическом понимании, а решают задачу выпуклой оптимизации с ограничением:
argmin_x ||Ax - b||_2 при x>=0. Но разница не так велика.

#хардов_пост
@analytess 👩
Please open Telegram to view this post
VIEW IN TELEGRAM
221695👍21



tgoop.com/analytess/493
Create:
Last Update:

Линейная регрессия с коэффициентами не меньше нуля📈

Небольшая хардовая заметка на полях, морали не будет. Недавно столкнулась на работе с такой задачкой: хотелось проверить (подтвердить) зависимость одной величины от нескольких продуктовых метрик при помощи наиболее простой и интерпретируемой модели из возможных. Грубо говоря, если обучится регрессия с хорошим R^2, то величины коррелируют. (Вопрос доказательства каузации сложнее, сегодня не трогаем)

И таргет, и фичи имели определённый «физический смысл» — были продуктовыми или техническими метриками — то есть временными рядами с растущим трендом. В связи с этим, а также по продуктовому здравому смыслу, хотелось, чтобы в итоговой линейной комбинации коэффициенты были неотрицательными. Так ненужные фичи получат коэффициент 0.

Оказалось, что для этого есть готовые методы😎
⚡️ можно заменить statsmodels.regression.linear_model.OLS на scipy.optimize.nnls (non-negative least squares)
⚡️ или же добавить в sklearn.linear_model.LinearRegression параметр positive=True. Если что, на intercept (свободное слагаемое, если fit_intercept=True) он не распространится, что, как правило, не нарушает замысел поставленной выше задачи.

Эти методы реализуют уже не просто линейную регрессию (метод наименьших квадратов) в классическом понимании, а решают задачу выпуклой оптимизации с ограничением:
argmin_x ||Ax - b||_2 при x>=0. Но разница не так велика.

#хардов_пост
@analytess 👩

BY Аналитесса-разработчица👩🏻‍💻💅🏻


Share with your friend now:
tgoop.com/analytess/493

View MORE
Open in Telegram


Telegram News

Date: |

2How to set up a Telegram channel? (A step-by-step tutorial) For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. 1What is Telegram Channels? Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” fire bomb molotov November 18 Dylan Hollingsworth yau ma tei
from us


Telegram Аналитесса-разработчица👩🏻‍💻💅🏻
FROM American