gpt4 book ai didi

python - pandas 数据框中重置索引可提高预测模型的 AUC

转载 作者:行者123 更新时间:2023-11-30 08:58:44 27 4
gpt4 key购买 nike

我的目标是找到预测模型来确定是否偿还贷款。我的来源是一个 CSV 文件,其中包含贷款特征以及是否已偿还。我使用 ROC 曲线和 AUC 评估模型的性能

df = pd.read_csv(your_path)
X = df.values
y = df.defaults
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30,
random_state=7)
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
fpr, tpr, thresholds = roc_curve(y_test, y_score)
print(auc(fpr,tpr))

当我计算此代码时,我得到的 AUC 分数约为 0.75。

但是当我添加命令行“df = df.reset_index()”时,如下所示:

df = pd.read_csv(your_path)
df = df.reset_index()
X = df.values
y = df.defaults
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30,
random_state=7)
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
fpr, tpr, thresholds = roc_curve(y_test, y_score)
print(auc(fpr,tpr))

我的 AUC 为 0.93。它只是无缘无故地增加了。

为什么重置索引会增加我的模型 AUC ?

最佳答案

按照您的方式重置索引,它将索引添加为列。然后可以在分类器中使用该列作为输入特征。然后,您的索引会影响您的预测的准确性。

考虑这个例子 df:

         class  max_speed
falcon bird 389.0
parrot bird 24.0
lion mammal 80.5
monkey mammal NaN

如果我们这样做

df = df.reset_index()
print(df)

生成的数据框如下所示。

    index   class   max_speed
0 falcon bird 389.0
1 parrot bird 24.0
2 lion mammal 80.5
3 monkey mammal NaN

为了防止这种情况发生,你可以这样做:

df = df.reset_index(drop = True)
df

生成此数据框:

    class   max_speed
0 bird 389.0
1 bird 24.0
2 mammal 80.5
3 mammal NaN

这样,以前的索引就不会作为列添加到数据框中。

编辑:此外,您可以在 LogisticRegression() 中设置 random_state 参数,以确保回归器的准确性不会受到随机影响。

关于python - pandas 数据框中重置索引可提高预测模型的 AUC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com