机器学习(四) ----------逻辑回归

news2024/12/26 10:49:49

目录

1 概述

2 极大似然估计

3 逻辑回归核心思想

3.1 对数似然损失(Log-likelihood Loss)

4 分类问题的评估方法

4.1 混淆矩阵(Confusion Matrix):

4.2 准确率(Accuracy)

4.3 精确率(Precision)和召回率(Recall)

4.3.1 精确率(Precision)

4.3.2召回率(Recall)

4.3.3 精确率和召回率的关系

4.4 ROC曲线(Receiver Operating Characteristic Curve)和AUC(Area Under the Curve)

4.4.1 ROC曲线描述

4.4.2 ROC 曲线图像中,4 个特殊点的含义

4.4.3 AUC(Area Under the Curve)

4.4.4 API

4.5 F1-score

5 逻辑回归API

6 案例


1 概述

逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学习方法,尤其在二元分类问题上表现出色。

逻辑回归通过构建一个逻辑函数(也称为Sigmoid函数),将线性模型的输出转化为一个介于0和1之间的概率值,这个概率值表示了给定样本属于某个类别的可能性。这使得逻辑回归非常适合用于分类预测任务,例如预测用户是否会购买某商品、病人是否患有某种疾病或广告是否会被用户点击等。

逻辑回归的优点之一是其解释性强。通过查看逻辑回归模型的系数,可以了解不同特征对分类结果的影响程度。这使得逻辑回归不仅可以提供分类预测,还可以用于特征选择,帮助识别出对分类结果有显著影响的特征。

此外,逻辑回归还具有计算效率高、易于实现的特点。这使得它适用于大规模数据集和实时预测场景。在经济学、商业、医疗等领域,逻辑回归被广泛应用于预测分析、风险评估和决策支持等方面。

逻辑回归虽然主要用于二元分类问题,但也可以通过一些策略(如一对多、一对一等)扩展到多分类问题中。同时,逻辑回归还可以处理线性和非线性数据,并可以通过特征转换或使用非线性模型来处理非线性关系的数据。

2 极大似然估计

极大似然估计(Maximum Likelihood Estimate,MLE),也称为最大概似估计或最大似然估计,是一种求估计的统计学方法。它的核心思想是在一次抽样中,样本出现的概率是关于某个参数θ的函数。当给定一组观测值x1,x2,...,xn时,极大似然估计法会选择参数θ的一个估计值,使得当θ等于这个估计值时,样本出现的概率达到最大。

极大似然估计的原理建立在极大似然原理之上,即如果某一事件在多次重复试验中出现的概率最大,则可以认为该事件最有可能发生。例如,在两个箱子中抽取黑球的问题中,如果从一个箱子中抽取黑球的概率远大于从另一个箱子中抽取的概率,那么可以认为这个黑球更可能来自第一个箱子。

极大似然估计的具体求解步骤通常包括:

  1. 写出似然函数,即样本观测值的联合概率密度函数或概率质量函数。
  2. 对似然函数取对数,并整理得到对数似然函数。
  3. 对对数似然函数求导数,并令其等于零,解出参数θ的极大似然估计值。

极大似然估计方法具有广泛的应用,尤其在参数估计和统计推断领域。它不仅可以用于离散型随机变量,也可以用于连续型随机变量。同时,极大似然估计方法还具有一些重要的性质,如一致性、渐进正态性、渐进有效性等。

3 逻辑回归核心思想

逻辑回归的核心思想是利用线性回归模型(虽然名为“回归”,但逻辑回归实际上是一种分类算法)的预测结果,通过Sigmoid函数将其转化为概率值,从而进行分类。

3.1 对数似然损失(Log-likelihood Loss)

对数似然损失通过惩罚错误的分类,实现对分类器的准确度的量化。为了计算对数损失,分类器必须提供对输入的每个类别的概率值,而不仅仅是最可能的类别。在二分类问题中,预测值(模型的输出)和实际标签(真实值)都是二元的,通常取值为0或1。对于每个样本,对数似然损失函数会计算预测概率的对数值与实际标签的差值,然后取负值(因为对数函数在0到1之间是负的)。

公式:

Loss\left ( L \right ) = -\sum_{i=1}^{n}\left (y_i ln\left ( p_i \right ) +(1-y_i)ln(1-p_i) \right )

p_i = \frac{1}{1+e^{-(w^T+b)}}

1.p i 表示每个样本被分类正确时的概率
2.y i 表示每个样本的真实类别(0或1)

4 分类问题的评估方法

分类问题的评估方法多种多样,每种方法都有其特定的应用场景和优点。以下是一些常用的评估方法及对应的API(以Python的scikit-learn库为例):

4.1 混淆矩阵(Confusion Matrix)

混淆矩阵(Confusion Matrix)是分类问题中常用的一种评估工具,主要用于衡量分类器(或模型)的分类性能。混淆矩阵以表格的形式记录了分类器对样本的实际分类和预测分类之间的信息,通过它可以清晰地了解分类器在各类别上的表现。

混淆矩阵的每一行代表一个实际类别,每一列代表一个预测类别。对于二分类问题,混淆矩阵通常包含四个元素:

  • 真正例(True Positives, TP):实际为正例,预测也为正例的样本数。
  • 假正例(False Positives, FP):实际为负例,预测为正例的样本数(误报)。
  • 真反例(True Negatives, TN):实际为负例,预测也为负例的样本数。
  • 假反例(False Negatives, FN):实际为正例,预测为负例的样本数(漏报)。

对于多分类问题,混淆矩阵会扩展到更多的行和列,以涵盖所有可能的类别组合。

API:sklearn.metrics.confusion_matrix(y_true, y_pred)

4.2 准确率(Accuracy)

  • 定义:分类正确的样本数占总样本数的比例。
  • API:sklearn.metrics.accuracy_score(y_true, y_pred)

4.3 精确率(Precision)召回率(Recall)

4.3.1 精确率(Precision)

精确率定义为真正例(True Positives, TP)占所有被预测为正例(包括真正例TP和假正例FP)的样本的比例。计算公式为:

[ \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} ]

精确率越高,说明分类器预测为正例的样本中真正为正例的比例越高,也就是预测为正例的可靠性越高。

API:sklearn.metrics.precision_score(y_true, y_pred) 

4.3.2召回率(Recall)

召回率定义为真正例(True Positives, TP)占所有真正例(包括真正例TP和假反例FN)的样本的比例。计算公式为:

[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} ]

召回率越高,说明分类器找出所有真正例的能力越强,也就是对正例的覆盖能力越强。

API: sklearn.metrics.recall_score(y_true, y_pred)

4.3.3 精确率和召回率的关系

精确率和召回率是一对矛盾的指标。提高精确率可能会导致召回率下降,因为分类器可能变得更为谨慎,只将那些非常确信为正例的样本预测为正例;而提高召回率可能会导致精确率下降,因为分类器可能变得更为宽松,将更多的样本预测为正例,其中也包括了更多的误报。

在实际应用中,需要根据具体的需求和场景来平衡这两个指标。例如,在垃圾邮件过滤系统中,可能更关注精确率,以避免误将正常邮件标记为垃圾邮件;而在医疗诊断中,可能更关注召回率,以尽量不遗漏任何可能的病患。

4.4 ROC曲线(Receiver Operating Characteristic Curve)和AUC(Area Under the Curve)

4.4.1 ROC曲线描述

ROC曲线(Receiver Operating Characteristic Curve)又称受试者工作特征曲线,是通过改变二分类器的判定阈值,绘制出不同阈值下真正例率(True Positive Rate, TPR)与假正例率(False Positive Rate, FPR)的关系曲线。其中,TPR是指正确分类为正例的样本占所有正例样本的比例FPR是指错误分类为正例的样本占所有负例样本的比例

ROC曲线的横坐标为FPR,纵坐标为TPR,因此ROC曲线可以用一个二维平面上的点序列来表示,点的个数取决于分类器所取的阈值数目。ROC曲线能够反映分类算法在不同阈值下的性能表现。

4.4.2 ROC 曲线图像中,4 个特殊点的含义

点坐标说明:图像x轴FPR/y轴TPR, 任意一点坐标A(FPR值, TPR值)
        1.点(0, 0) :所有的负样本都预测正确,所有的正样本都预测为错误 。相当于点的(FPR值0, TPR值0)
        2.点(1, 0) :所有的负样本都预测错误,所有的正样本都预测错误。相当于点的(FPR值1, TPR值0)
        3.点(1, 1):所有的负样本都预测错误,表示所有的正样本都预测正确。相当于点的(FPR值1,TPR值1)
        4.点(0, 1):所有的负样本都预测正确,表示所有的正样本都预测正确 。相当于点的(FPR值0,TPR值1)
曲线越靠近 (0,1) 点则模型对正负样本的辨别能力就越强

4.4.3 AUC(Area Under the Curve)

AUC(Area Under the Curve)被定义为ROC曲线下与坐标轴围成的面积,其值范围在0到1之间。AUC越接近1.0,表示分类算法的性能越好;等于0.5时,则性能最低,无应用价值。AUC值常被用作评价模型优劣的一种性能指标,尤其是在ROC曲线不能清晰区分不同分类器性能时,AUC值的大小能更直接地反映模型的性能。

4.4.4 API

API:sklearn.metrics.roc_curve(y_true, y_score) 和 sklearn.metrics.roc_auc_score(y_true, y_score)

注意,在使用这些API时,y_true通常是真实的标签,y_pred是分类器预测的标签(对于精确率、召回率和F1 Score),而y_score是分类器为每个样本分配的概率或置信度分数(对于ROC曲线和AUC)。

4.5 F1-score

F1-score(也称为F1分数或F-measure)是统计学中用来衡量二分类模型精确度的一种指标,它同时考虑了分类模型的精确率(Precision)和召回率(Recall)。F1-score可以看作是精确率和召回率的调和平均数,用于平衡这两个指标,其计算公式为:

F1 = 2 * (Precision * Recall) / (Precision + Recall)

F1-score的最大值为1,表示模型在精确率和召回率上都达到了最优;最小值为0,表示模型性能最差。当精确率和召回率接近时,F1-score会较高,说明模型在正负样本上的表现都相对较好。

F1-score在二进制分类问题中具有广泛的应用场景,例如垃圾邮件过滤、欺诈检测、疾病诊断等。在这些场景下,精确率和召回率的平衡非常重要,因为过高的精确率可能会导致召回率过低,从而漏掉一些重要的正例;而过高的召回率可能会导致精确率过低,从而引入过多的误报。

API:sklearn.metrics.f1_score(y_true, y_score)

此外,sklearn.metrics还提供了许多其他有用的分类评估方法,如classification_report(可以显示每个类别的精确率、召回率、F1 Score和支持数)和matthews_corrcoef(用于计算Matthews相关系数,一种衡量二分类问题的平衡度量)等。你可以根据自己的需求选择适合的评估方法。

5 逻辑回归API

sklearn.linear_model.LogisticRegression()

6 案例

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 1.导入数据
cancer_data = pd.read_csv('data/breast-cancer-wisconsin.csv')

# 2.数据基本处理
# 2.1 缺失值处理
cancer_data = cancer_data.replace(to_replace='?',value=np.NAN)
cancer_data = cancer_data.dropna()
# 2.2 数据集划分
x_train,x_test,y_train,y_test = train_test_split(cancer_data.iloc[:,1:-1],cancer_data.iloc[:,-1],train_size=0.8,random_state=22)


# 3.特征预处理
transfor = StandardScaler()
x_train = transfor.fit_transform(x_train)
x_test = transfor.transform(x_test)


# 4。模型训练
lg = LogisticRegression()
lg.fit(x_train,y_train)

# 5.模型评估
print(lg.score(x_test, y_test))


# 6.模型预测
print(lg.predict(x_test))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1663300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文本三剑客grep与正则表达式、元字符

正则表达式 正则表达式又称为正规表达式、常规表达式、在代码中常简写为regex、regex或RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查…

AcwingWeb应用课学习笔记

VSCode自动格式化 选中Format On Save不起作用 在设置中搜索default formatter,修改成Prettier-Code formatter meta标签 HTML 元素表示那些不能由其它 HTML 元相关(meta-related)元素((、,

全套停车场管理系统报价多少钱?停车场管理系统由哪些设备组成?

随着城市化进程的加快,汽车保有量的不断攀升,停车场的管理和运营成为城市基础设施建设的重要组成部分。一个高效、智能的停车场收费系统不仅能提升停车效率,还能增强用户体验,对城市的交通管理起到关键作用。本文将为您详细介绍全…

Linux NFS共享目录配置漏洞

Linux NFS共享目录配置漏洞 一、实验目的二、实验原理三、复现准备四、漏洞复现4.1、复现前提4.2、正式复现 一、实验目的 利用 NFS共享目录配置漏洞读取目标主机的 /etc/passwd 文件内容NFS 服务配置漏洞,赋予了根目录远程可写权限,导致 /root/.ssh/au…

TypeScript 中的类型与接口

在 TypeScript 中,定义类型有两种方式:“类型”和“接口”。 人们经常想知道该使用哪一种,答案并非适用于所有情况。有时一种更好,但在许多情况下,两者可以互换使用。 我们来详细了解一下类型和接口的不同点和相似点…

当时这样说就好了的笔记

系列文章目录 当时这样说就好了的笔记 文章目录 系列文章目录一、 不用好口才,怎么谈都讨喜的“说话金律”1、 掌握对方爱聊什么是交谈热络的第一步2、 装笨让对方当主角,和谁都能聊不停3、 “讲道理”谁都怕,坚持己见最伤感情4、 懂“聆听附…

Java——类与对象

目录 一、面向对象的初步认识 1.1 什么是面向对象 1.2 面向对象与面向过程 二、类的定义与使用 2.1 简单认识类 2.2 类的定义格式 三、类的实例化 3.1 什么是实例化 3.2 类和对象的说明 四、this引用 4.1 为什么要有this引用 4.2 什么是this引用 ​编辑 4.3 this引用…

数据增强,迁移学习,Resnet分类实战

目录 1. 数据增强(Data Augmentation) 2. 迁移学习 3. 模型保存 4. 102种类花分类实战 1. 数据集 2.导入包 3. 数据读取与预处理操作 4. Datasets制作输入数据 5.将标签的名字读出 6.展示原始数据 7.加载models中提供的模型 8.初始化…

轻松操作!ae导出mp4格式,一篇文章学会

在视频制作的过程中,Adobe After Effects作为一款强大而专业的后期处理工具,为我们提供了丰富的特效和编辑功能。然而,在完成创作后,将项目导出为通用的MP4格式是分享和展示作品的关键一步。在本文中,我们将探讨ae导出…

营销的本质是“利他”,资深运营高手分享9套消费返利玩转市场!

营销的本质是“利他”,资深运营高手分享9套消费返利玩转市场! 文丨微三云营销总监胡佳东,点击上方“关注”,为你分享市场商业模式电商干货。 - 引言:2024年移动互联网基本已经占据了核心不可篡改的地位,而…

Graphormer:Transformer用于图预测任务

文章信息 文章题为“Do Transformers Really Perform Bad for Graph Representation?”,该文章发表于2021年NeurIPS会议上。文章提出Graphormer图预测任务。 摘要 Transformer架构已经成为许多领域的主导选择,例如自然语言处理和计算机视觉。此外…

1015: 堆排序算法

解法&#xff1a; 20240510_193050 最后一个非叶子节点就是最后一个节点的父节点 进行一次最小堆调整&#xff08;如视频&#xff09; #include<iostream> #include<vector> using namespace std; void min_heapfy(vector<int>& a,int sta,int end) {i…

游戏行业被攻击的原因、攻击种类及合适的服务器

很多游戏刚上线没多久就频繁遭到同行恶意攻击。在相关数据报告中&#xff0c;2023年上半年遭受DDoS攻击的行业中&#xff0c;游戏行业占到40%&#xff0c;而且攻击方式、攻击频率、攻击峰值呈明显上升趋势。很多充满创意的游戏开发公司刚才开发上线一个很有特色的产品&#xff…

在k8s中安装Grafana并对接Prometheus,实现k8s集群监控数据的展示

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Grafana&#xff1a;让数据说话的魔术师》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …

需求规格说明书设计规范(编制实际项目案例-word)

二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口需求 5.5 其他需求 六、…

C语言(指针)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

在拥有多个同名称密码的ap环境中,如何连接到指定信道或mac的ap路由器?

在给客户做ESP32-C3入墙开关项目时&#xff0c;客户问&#xff1a;在拥有多个同名称密码的ap环境中&#xff0c;如何连接到指定信道或mac的ap路由器&#xff1f;针对这个问题&#xff0c;启明云端工程师给出下面解决方法。 1、将wifi_sta_config_t配置中的channel配置为该信道…

又一位互联网大佬转行当网红,能写进简历么?

最近半个月&#xff0c;有两个中年男人仿佛住进了热搜。 一个是刚刚辟谣自己“卡里没有冰冷的 40 亿”的雷军&#xff0c;另一个则是在今年年初就高呼“如果有可能&#xff0c;企业家都要去当网红”的 360 创始人周鸿祎。 他也确实做到了。 先是作为当年 3Q 大战的当事人&…

企业破产重整:从“至暗时刻”到“涅槃重生”

今天我们不谈星辰大海&#xff0c;而是要潜入商业世界的深海区&#xff0c;探索那些濒临绝境的企业是如何借助“破产重整”的神秘力量&#xff0c;实现惊天大逆转的&#xff01; 一、破产重整&#xff0c;到底是个啥&#xff1f; 想象一下&#xff0c;企业像是一位远航的船长…

Map按value降序并统计

package com.ldj.cloud.user.demo;import java.util.*;/*** User: ldj* Date: 2024/5/11* Time: 10:03* Description: map按value降序*/ public class Tr {public static void main(String[] args) {ArrayList<String> list new ArrayList<>();list.add("a&q…