快速上手逻辑回归模型?读这篇就够了(Python机器学习)

简介: 快速上手逻辑回归模型?读这篇就够了(Python机器学习)


  逻辑回归模型是一种常用的回归或分类模型,可以视为是广义线性模型的特例。


在这里插入图片描述

1.逻辑回归简介

  关于线性回归,线性回归是最基本的回归分析方法线性回归研究的是自变量与因变量之间的线性关系。对于传统的线性回归而言,其基本假设是假设y与x直接呈线性关系。如果x与y不是线性关系,则使用线性回归模型会得到较大的误差。
为了解决这个问题,需要寻找一个函数g(y),使g(y)与x之间是线性关系。(即g(y)与y之间不是线性关系,从y到g(y)经历了非线性变换)。这种间接进行对x进行估计的回归,即称为广义线性回归

2.最大熵模型简介

  在信息论中,熵可以度量随机变量的不确定性。当随机变量呈均匀分布时,熵值最大。在一个有序的系统中,有着较小的熵值;而在一个无序的系统中存在着较大的熵值。

  在机器学习中,有最大熵原理:描述一个概率分布时,在满足所有约束条件的情况下,熵最大的模型是最好的。

对于离散随机变量x,假设其有M个取值,记$\displaystyle p_i=P(x=i),则其熵定义为:
在这里插入图片描述

经过公式推导,最大熵模型与逻辑回归模型之间是完全等价的
(这里不谈及公式推导的过程。)

3.常用评价指标

3.1混淆矩阵

对二分类问题:

真实值 预测值0 预测值1
0 True Negative(TN) False Negative(FP)
1 False Negative(FN) True Positive(TP)

其中,True/False表示判断结果正误,Positive/Negative表示预测值是正标签还是负标签。

指标 简写 描述
真阴率 TN 预测成负样本实际是负样本的个数
假阳率 FP 预测成正样本实际是负样本的个数
假阴率 FN 预测成负样本实际是正样本的个数
真阳率 TP 预测成正样本实际是正样本的个数

对于多分类问题,则迁移为:

TN 预测结果不是该标签,真实标签不是该标签的个数
FP 预测结果是该标签,真实标签不是该标签的个数
FN 预测结果不是该标签,真实标签是该标签的个数
TP 预测结是该标签,真实标签是该标签的个数

很多评价指标都是建立在混淆矩阵之上的。


3.2准确率

即预测正确的结果占总样本的百分比,


在这里插入图片描述

3.3精确率&召回率

精确率,也称查准率
在这里插入图片描述

可以描述为 预测结果是该标签的样例中,实际是该标签的所占比。


召回率,也称查全率


在这里插入图片描述

可以描述为 实际是该标签的样例中,预测结果是该标签的所占比。


3.4PR曲线

分类模型对每个样本点都会输出一个置信度。
通过设定置信度的阈值,就可以完成分类。

不同的置信度对应着不同的精确率 和 召回率
一般来说,置信度阈值较低时,大量样本被预测为正例,所以召回率较高,精确率较低;
置信度阈值较高时,大量样本被预测为负例,所以召回率较低,而精确率较高。

PR曲线就是以精确率为纵坐标,以召回率为横坐标做出的曲线。

3.5ROC曲线与AUC

3.5.1ROC曲线

对于二分类分类器,
为了衡量分类器的分类能力,ROC曲线进行了表征:

ROC曲线的横轴为假阳率(False Positive Rate, FPR)


在这里插入图片描述
描述: 实际标签为负样本的样本中,预测为正样本的比例。

ROC曲线的纵轴为真阳率(True Positive Rate, TPR)


在这里插入图片描述
描述: 实际标签是正样本的样本中,预测为正样本的比例。

通过这两句描述,不看看出,我们更想要的是y轴较大,x轴较小的情况。

  • (0, 0)假阳率和真阳率都为0,即分类器全部预测为负样本。
  • (0, 1)假阳率为0,真阳率为1,即全部完美预测正确。
  • (1, 0)假阳率为1,真阳率为0,即全部完美预测错误。
  • (1, 1)假阳率和真阳率都为1,即分类器全部预测为正样本。

ROC曲线的横走坐标都在[0, 1]之间,面积不大于1。

  • 当TPR=FPR为一条斜对角线时,表示预测为正样本的结果一般是对的,一般是错的。此为随机分类器的预测效果。
  • 当ROC曲线在对角线以下,表示该分类器效果差于随机分类器。
  • 当ROC曲线在对角线以上,表示该分类器效果好于随机分类器,我们希望ROC曲线尽可能地位于斜对角线以上,接近左上角(0,1)位置。

3.5.2AUC

AUC(Area Under Curve),即ROC曲线下与坐标轴围成的面积,根据以上表述,可知,
 AUC越大,分类器分类效果就越好

  • AUC = 1,表示 是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。完美分类器一般不存在。
  • 0.5 < AUC < 1,效果好于随机分类器。对于这个分类器,如果设置合适的阈值,则可以有预测价值。
  • AUC = 0.5,相当于随机分类器。
  • AUC < 0.5,差于随机分类器。(所以可以用于反向预测)

4.基于逻辑回归实现乳腺癌预测

以内置的乳腺癌数据集为例,实现逻辑回归:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

from sklearn.metrics import recall_score
from sklearn.metrics import precision_score
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score

# 获取数据
cancer = load_breast_cancer()
# 分割数据
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.2)

# 创建估计器(实例化逻辑回归模型)
model = LogisticRegression() 
# 训练
model.fit(X_train, y_train)

# 返回给定测试数据下的准确率(即预测正确的结果占总样本的百分比)
# 训练集准确率
train_score = model.score(X_train, y_train)
# 测试集准确率
test_score = model.score(X_test, y_test)
print('train score:{train_score:.6f};test score:{test_score:.6f}'.format(train_score=train_score, test_score=test_score))

# 再对X_test进行预测
y_pred = model.predict(X_test)
# 准确率
accuracy_score_value = accuracy_score(y_test, y_pred)

# 精确率
precision_score_value = precision_score(y_test, y_pred)
# 召回率
recall_score_value = recall_score(y_test, y_pred)


# 输出报告模型评估报告
classification_report_value = classification_report(y_test, y_pred)

print("准确率:", accuracy_score_value)
print("精确率:", precision_score_value)
print("召回率:", recall_score_value)

print(classification_report_value)

程序输出结果
在这里插入图片描述

其中,输出准确率,可以使用model对象的score方法,传入参数是特征数据对应的真实标签

也可以使用sklearn.metrics的accuracy_score方法,传入参数为真实标签预测的标签


参考:
<Python机器学习实战 吕云翔>

目录
相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
构建高效机器学习模型的五大策略
【5月更文挑战第20天】 在探索数据科学和人工智能的海洋中,构建一个高效的机器学习模型是航行的关键。本文将深入探讨五个核心策略,以优化模型性能并确保数据驱动的决策更加精准和高效。我们将从特征工程的重要性出发,逐步过渡到选择合适的算法、调参的艺术、避免过拟合以及最终的模型评估与部署。这五大策略共同构成了构建高效机器学习模型的基石,为数据科学家和工程师提供了一条清晰的路径,以应对日益复杂的数据挑战。
|
1天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的策略与实践
【5月更文挑战第20天】 在数据驱动的时代,构建高效的机器学习模型是获取洞察力和预测未来趋势的关键。本文将探讨一系列策略和技术,旨在优化模型性能,包括数据预处理、特征工程、模型选择、超参数调优以及评估方法。我们将深入分析这些步骤如何共同作用,提升模型的泛化能力并防止过拟合。通过案例研究和最佳实践的分享,读者将获得一套实用的工具集,以应对不断变化的数据科学挑战。
|
1天前
|
机器学习/深度学习 分布式计算 数据可视化
构建高效机器学习模型的五大策略
【5月更文挑战第20天】 在数据科学迅猛发展的今天,构建高效的机器学习模型已成为众多从业者追求的目标。本文将探讨五种实用的策略,帮助读者提高其模型的性能和效率。这些策略包括特征工程的精细化操作、模型选择与调优的最佳实践、集成学习的应用、大数据处理技巧以及模型解释性与可视化的重要性。通过深入分析和案例研究,本文旨在为从业者提供一套全面的指导框架,以便在面对复杂问题时能够设计出更加健壮和精准的模型。
|
2天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的最佳实践
【5月更文挑战第18天】 在数据驱动的时代,构建高效的机器学习模型已经成为企业获取竞争优势的关键。本文将深入探讨如何通过精确的数据预处理、合理的特征工程、高效的算法选择以及细致的模型调优等步骤,来提升模型的性能和预测准确度。我们还将讨论模型部署后的监控和维护策略,确保模型长期稳定运行。这些最佳实践不仅适用于初学者建立基础,也能帮助有经验的数据科学家优化现有工作流程。
|
3天前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】怎样检测到线性回归模型中的过拟合?
【5月更文挑战第17天】【机器学习】怎样检测到线性回归模型中的过拟合?
|
3天前
|
机器学习/深度学习 人工智能
【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
【5月更文挑战第16天】【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python数据分析 | 泰坦尼克逻辑回归(下)
Python数据分析 | 泰坦尼克逻辑回归
7 1
|
3天前
|
机器学习/深度学习 数据挖掘 BI
Python数据分析 | 泰坦尼克逻辑回归(上)
Python数据分析 | 泰坦尼克逻辑回归
17 0
|
4天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的策略与实践
【5月更文挑战第17天】 在当今数据驱动的时代,机器学习(ML)模型的效能成为衡量技术创新和解决实际问题能力的重要指标。本文旨在探讨构建高效机器学习模型的先进策略,并通过具体实践案例来揭示这些方法的有效性。我们将从数据处理、特征工程、模型选择、调参技巧以及模型部署等方面详细论述,旨在为读者提供一个全面而深入的视角,帮助其优化现有模型或开发新模型,以应对复杂多变的业务挑战。
11 2
|
5天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的最佳实践
【5月更文挑战第16天】 在数据驱动的时代,机器学习已成为创新的核心推动力。本文将深入探讨如何构建一个高效的机器学习模型,包括数据预处理、特征选择、模型训练与优化等关键步骤。通过实例分析和技术讲解,旨在为读者提供一套实用的技术指导和最佳实践方法,以支持其在复杂数据环境中实现准确预测和智能决策。

热门文章

最新文章