如何将 scikit 指标用于 statsmodel,反之亦然?

数据挖掘 机器学习 深度学习 统计数据 逻辑回归 机器学习模型
2022-02-26 19:45:25

正在研究 5K 记录的二进制分类问题。标签 1 是 1554,标签 0 是 3558。

我确实参考了这篇文章,但不确定它现在是否已更新或任何人有任何方法来计算此指标

目前我使用如下所示的logit模型

model = smm.Logit(y_train, X_train_std)
result=model.fit()
y_pred = result.predict(X_test_std)
print("Accuracy is ", accuracy_score(X_test_std, y_pred))  #throws error from here and all the line below
print(classification_report(X_test_std, y_pred))
print("ACU score is ",roc_auc_score(X_test_std, y_pred))
print("Recall score is",recall_score(X_test_std,y_pred))
print("Precision score is",precision_score(X_test_std,y_pred))
print("F1 score is",f1_score(X_test_std,y_pred))

我尝试这样做的原因是因为 statsmodel 有p-values,coeffintervals,我希望通过scikit metrics如上所示的常规指标,但它不被接受。

另一方面,通过scikit logistic regression我可以得到usual metricsand coeff,但是p-values,conf intervals呢?反正有没有做相反的事情?

有人可以帮我弄这个吗?

1个回答

解释代码(因为没有提到收到的错误),看起来代码正在将 X 矩阵和 y-pred 传递给指标。根据文档,指标需要 y-true 和 y-pred。这将导致错误提及不正确的尺寸。

我使用了 statsmodels 并调用了 scikit 指标。许多 scikit 示例(如上述文档)显示传入的数组,而不是来自特定模型的数组。

如果不是这样,请发布收到的错误。