我正在尝试将Excel模型转换为Python。该模型设置如下:
1-有3列A,B,C包含输入变量(列F包含目标变量)。我们想在逻辑函数中针对这些A,B和C列中的值学习系数。
2-那些列通过逻辑函数合并,并且其输出在列D中。
3-列E然后保存列D的Z分数。
4-最后,E列对D列的Z得分进行线性变换。
这是在Excel中通过求解器插件进行设置的,该插件可以找到导致列E与列F的平方误差之和最小的A,B,C系数。我想知道如何设置这样的值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
调用。我希望我可以用Python / Scikit写的代码看起来像这样:model.fit(z_score(logistic(A + B + C))*CONSTANT1 + CONSTANT2, y)
,但是我认为这种事情在我所知道的任何Python软件包中都不合法(因为scikit想要第一个参数到model.fit
为数字。
我正在尝试做的可能吗?另外,这种回归分析称为什么类型?我什至不知道该如何用Google来获取更多有关此的信息。
如果要在python + sk-learn中执行此操作,则应使用常规的拟合/预测方法。 LogisticRegression
类具有可以返回的属性,例如LogisticRegression.coef_
,它返回决策函数中要素的系数。
AFAIK,sk-learn无法返回z_scores,因为它实际上不支持统计推断(因为它是机器学习软件包,而不是统计软件包)。如果您确实需要Logistic回归的统计元素,那么使用Statsmodels可能会更好。请查看This问题以获取更多信息。
希望有所帮助