sklearn——逻辑回归、ROC曲线与KS曲线

本文介绍了sklearn库中的逻辑回归模型,重点讨论了LogisticRegression和LogisticRegressionCV类的主要参数,以及如何计算AUC和绘制ROC曲线。讲解了roc_auc_score和roc_curve函数的使用,并提供了代码示例。
摘要由CSDN通过智能技术生成

一、sklearn中逻辑回归的相关类

  在sklearn的逻辑回归中,主要用LogisticRegression和LogisticRegressionCV两个类来构建模型,两者的区别仅在于交叉验证与正则化系数C,下面介绍两个类(重要参数带**加绿):

  

  sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’liblinear’, max_iter=100, multi_class=’ovr’, verbose=0, warm_start=False, n_jobs=1)

  •  **penalty:可选'l1'、'l2',正则化系数。注意'l1'不适用于MVM的情况。
  • dual:一个布尔值。如果为True,则求解对偶形式(只是在penalty='l2' 且solver='liblinear' 有对偶形式);如果为False,则求解原始形式。这个参数一般不需要理会。
  • **C:一个浮点数,它指定了正则化系数的倒数。如果它的值越小,则正则化越大。建议为10。
  • fit_intercept:一个布尔值,制定是否需要截距 值。如果为False,则不会计算b值(模型会假设你的数据已经中心化)。一般都需要截距,这个也可以不理会。
  • intercept_scaling:一个浮点数,只有当 solver='liblinear' 才有意义。当采用 fit_intercept 时,相当于人造一个特征出来,该特征恒为 1,其权重为 b 。在计算正则化项的时候,该人造特征也被考虑了。因此为了降低人造特征的影响,需要提供 intercept_scaling。不需要理会。
  • **class_weight:Y的类别权重,一个字典或者字符串'balanced'。 如果为字典:则以字典方式给出了每个分类的权重,如{class_1:0.4,class_2:0.6}。 如果为字符串 'balanced':则自动计算权重,样本量越小的权重越高。 如果未指定,则每个分类的权重都为 1。
  • random_state:一个整数或者一个RandomState实例,或者None。 •如果为整数,则它指定了随机数生成器的种子。 •如果为RandomState实例,则
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答您的问题。您可以按照以下步骤在sklearn中绘制ROC曲线: 1. 准备数据:首先,您需要准备测试数据集和训练数据集。您还需要使用训练数据集来训练逻辑回归模型。 2. 训练模型:使用训练数据集训练逻辑回归模型。您可以使用以下代码: ``` from sklearn.linear_model import LogisticRegression # 创建逻辑回归对象 lr = LogisticRegression() # 使用训练数据集来训练模型 lr.fit(X_train, y_train) ``` 3. 预测概率:使用测试数据集来预测类别概率。您可以使用以下代码: ``` # 预测测试数据集的类别概率 y_pred_proba = lr.predict_proba(X_test)[:,1] ``` 4. 计算ROC曲线数据:计算真阳性率(TPR)和假阳性率(FPR)。您可以使用以下代码: ``` from sklearn.metrics import roc_curve, auc # 计算ROC曲线数据 fpr,tpr,thresholds = roc_curve(y_test, y_pred_proba) roc_auc = auc(fpr,tpr) ``` 5. 绘制ROC曲线:使用Matplotlib库绘制ROC曲线。您可以使用以下代码: ``` import matplotlib.pyplot as plt # 绘制ROC曲线 plt.title('Receiver Operating Characteristic') plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc) plt.legend(loc = 'lower right') plt.plot([0, 1], [0, 1],'r--') plt.xlim([0, 1]) plt.ylim([0, 1]) plt.ylabel('True Positive Rate') plt.xlabel('False Positive Rate') plt.show() ``` 这是在sklearn中绘制ROC曲线的简单步骤。同时,您还可以使用KS曲线来评估模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值