Как структурировать регрессию там, где ввод преобразуется в Python / Scikit Learn - PullRequest
2 голосов
/ 20 января 2020

Я пытаюсь преобразовать модель Excel в Python. Модель настроена следующим образом:

1 - есть 3 столбца A, B, C, которые содержат входные переменные (столбец F содержит целевую переменную). Мы хотели бы узнать коэффициенты в функции logisti c для этих значений в столбцах A, B и C.

2 - эти столбцы объединяются с помощью функции logisti c и результат этого находится в столбце D.

3 - столбец E затем содержит оценку Z для столбца D.

4 - Наконец, столбец E выполняет линейное преобразование для оценки Z из столбца D .

Это устанавливается в Excel через надстройку решателя, которая может найти коэффициенты для A, B, C, в результате чего столбец E имеет наименьшую сумму квадратов ошибок со столбцом F. Я хотел бы узнать, как вы настроили такую ​​вещь в пакете Python / scikit-learn / Statsmodels / некотором другом python?

Последовательность уравнений по существу выглядит следующим образом:

1 / (1 + e^-(A + B + C)) -> X
z_score(X)*CONSTANT1 + CONSTANT2 -> estimate

CONSTANT1 и CONSTANT2 известны заранее.

Цель состоит в том, чтобы минимизировать квадратичную ошибку между estimate и y.

До этого я запускал регрессии в scikit, где я просто вызываю model.fit(X, y), где X - некоторая последовательность входных переменных, а y - целевая выходная переменная. Но последовательность шагов в модели Excel, похоже, не вписывается в простой вызов model.fit. Код, который я sh мог бы написать на Python / Scikit для достижения sh, это выглядело бы примерно так: model.fit(z_score(logistic(A + B + C))*CONSTANT1 + CONSTANT2, y), но я не думаю, что подобные вещи допустимы в любом из Python пакетов, которые я знаю о (поскольку scikit хочет, чтобы первый параметр model.fit был цифрой c.

Возможно ли то, что я пытаюсь сделать? Кроме того, как называется этот тип регрессионного анализа? даже знаете, что Google, чтобы получить больше информации об этом.

1 Ответ

0 голосов
/ 21 января 2020

Если вы хотите сделать это в python + sk-learn, вам следует использовать обычный способ подбора / прогнозирования. Класс LogisticRegression имеет атрибуты, которые вы можете вернуть, например, LogisticRegression.coef_, который возвращает коэффициенты объектов в функции принятия решения.

AFAIK, sk-learn не может вернуть z_scores, поскольку на самом деле не поддерживает статистический вывод (поскольку это пакет машинного обучения, а не статистический пакет). Если вам действительно нужны статистические элементы регрессии Logisti c, вам лучше использовать Statsmodels. Проверьте Этот вопрос для получения дополнительной информации об этом.

Надеюсь, это немного поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...