我正在使用 statsmodels (statsmodels.api) 构建逻辑回归,并且想了解如何获取测试数据集的预测。这是我到目前为止所拥有的:
x_train_data, x_test_data, y_train_data, y_test_data = train_test_split(X, df[target_var], test_size=0.3)
logit = sm.Logit(
y_train_data,
x_train_data
)
result = logit.fit()
result.summary()
打印下面 y_train_data 和 y_test_data 的预测的最佳方法是什么?我不确定在这种情况下要使用或导入哪些回归指标:
in_sample_pred = result.predict(x_train_data)
out_sample_pred = result.predict(x_test_data)
此外,计算 ROC AUC 分数并为该 Logistic 回归模型绘制它的最佳方法是什么(通过 scikit-learn 包)?
谢谢
要根据您的 x_test_data 进行预测,您所要做的就是:
x_test_predicted = result.predict(x_test_data)
print(x_test_predicted)
我想如果您想很好地掌握预测,您可以查看数据框:
import pandas as pd
df_test_predictions = pd.DataFrame({
'x_test_predicted': x_test_predicted,
'y_test': y_test_data
})
然后要计算ROC-AUC,你可以这样做:
from sklearn.metrics import roc_auc_score
score = roc_auc_score(y_test_data, x_test_predicted)
print(score)