Я пытаюсь преобразовать модель 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, чтобы получить больше информации об этом.