AI-逻辑回归模型

😆😆😆感谢大家的支持~😆😆😆

逻辑回归的应用场景

逻辑回归(Logistic Regression)是机器学习中的 一种分类模型 ,逻辑回归是一种分类算法,虽然名字中带有回归。由于算法的简单和高效,在实际中应用非常广泛☺️

  • 广告点击率,预测用户是否会点击某个广告,是典型的二分类问题。逻辑回归可以根据用户的特征(如年龄、性别、浏览历史等)来预测点击概率。
  • 是否为垃圾邮件,电子邮件服务提供商使用逻辑回归来判断邮件是否为垃圾邮件,根据邮件内容特征和发送者信息来进行分类。
  • 是否患病,在医疗领域,逻辑回归可以帮助预测患者是否有发病的风险,例如基于患者的各种生理指标来预测糖尿病或冠心病的风险。
  • 信用卡账单是否会违约,金融机构利用逻辑回归模型来评估信用卡用户是否存在违约风险,这通常涉及对用户的信用历史、交易行为等进行分析。

逻辑回归是一种用于分类问题的统计模型,特别是适合于处理二分类问题。

逻辑回归的输入🥰

逻辑回归模型的核心在于它使用了一个线性方程作为输入,这个线性方程通常称为logit函数。具体来说,逻辑回归模型首先通过一个线性方程对输入特征进行加权求和,然后使用Sigmoid函数将这个线性方程的结果映射到(0,1)区间内,从而得到一个概率值。这个过程可以用以下数学公式表示:

[ P(y=1|x) = \frac{1}{1 + e^{-(\beta_0 + \beta_1x_1 + \ldots + \beta_nx_n)}} ]

激活函数 

Sigmoid函数的数学表达式通常写为 ( sigma(x) = \frac{1}{1 + e^{-x}} ),其中 ( x ) 是输入变量。

  • 回归的结果输入到sigmoid函数当中

逻辑回归的损失,称之为 对数似然损失 

在逻辑回归中,损失函数是用来度量预测值与真实值之间的差异的。具体来说,逻辑回归通常使用的损失函数是交叉熵(Cross Entropy),这是一种衡量两个概率分布之间差异的函数。交叉熵损失函数可以写成以下形式:

[ L(y, p) = -frac{1}{N} \sum_{i=1}^{N} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)] ]

其中,( y_i ) 是样本的真实标签(0或1),( p_i ) 是模型预测该样本为正例的概率,N是样本数量。这个损失函数的目的是使得模型输出的概率尽可能接近真实标签。当模型预测的概率与真实标签一致时,损失函数的值会很小;反之,如果预测的概率与真实标签相差较大,则损失函数的值会比较大。

优化同样使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率。 

from sklearn.linear_model import SGDRegressor

# 创建SGDRegressor实例
estimator = SGDRegressor(max_iter=1000)

# 使用训练数据拟合模型
estimator.fit(x_train, y_train)

 案例🤔

 sklearn.linear_model.LogisticRegression(solver='liblinear', penalty=‘l2’, C = 1.0)

💎l2作为正则化项(惩罚项),以及C=1.0作为正则化强度的倒数。 

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

names = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape','Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']

data = pd.read_csv("wisconsin.data")
data.head()


x = data.iloc[:, 1:10]
x.head()
y = data["Class"]
y.head()

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22)

transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

estimator = LogisticRegression()
estimator.fit(x_train, y_train)

y_predict = estimator.predict(x_test)
y_predict
estimator.score(x_test, y_test)

分类评估指标

ROC曲线(Receiver Operating Characteristic Curve):ROC曲线描绘了不同阈值下的真正例率和假正例率,用于评估模型在不同阈值下的表现。在机器学习领域,ROC曲线和AUC指标广泛应用于模型选择和性能评估。

💎ROC曲线,全称为接收者操作特征曲线(Receiver Operating Characteristic Curve),是一种用于评估二分类模型性能的图形化工具。它以假正率(False Positive Rate, FPR)为横轴,真正率(True Positive Rate, TPR)为纵轴绘制而成。ROC曲线上每个点反映了在不同判定阈值下,模型对正类和负类样本分类的能力。通过观察ROC曲线,我们可以直观地了解分类器在不同阈值下的性能表现。

💎AUC(Area Under Curve)则是ROC曲线下的面积,用于量化地衡量模型的整体分类性能。AUC的取值范围在0.5到1之间,其中0.5表示模型没有区分能力,而1表示模型具有完美的分类能力。AUC越大,说明模型在区分正负样本上的表现越好。在实际应用中,一个AUC值接近1的模型通常被认为具有较高的预测准确性和可靠性。

  1. 正样本中被预测为正样本的概率,即:TPR (True Positive Rate)
  2. 负样本中被预测为正样本的概率,即:FPR (False Positive Rate)

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

  1. (0, 0) 表示所有的正样本都预测为错误,所有的负样本都预测正确
  2. (1, 0) 表示所有的正样本都预测错误,所有的负样本都预测错误
  3. (1, 1) 表示所有的正样本都预测正确,所有的负样本都预测错误
  4. (0, 1) 表示所有的正样本都预测正确,所有的负样本都预测正确

绘制 ROC 曲线

在网页某个位置有一个广告图片或者文字,该广告共被展示了 6 次,有 2 次被浏览者点击了。

 

绘制 ROC 曲线:

阈值:0.9

  1. 原本为正例的 1、3 号的样本中 3 号样本被分类错误,则 TPR = ½ = 0.5
  2. 原本为负例的 2、4、5、6 号样本没有一个被分为正例,则 FPR = 0

阈值:0.8

  1. 原本为正例的 1、3 号样本被分类正确,则 TPR = 2/2 = 1
  2. 原本为负例的 2、4、5、6 号样本没有一个被分为正例,则 FPR = 0

 阈值:0.7

  1. 原本为正例的 1、3 号样本被分类正确,则 TPR = 2/2 = 1
  2. 原本为负类的 2、4、5、6 号样本中 2 号样本被分类错误,则 FPR = ¼ = 0.25

 

💎 图像越靠近 (0,1) 点则模型对正负样本的辨别能力就越强且图像越靠近 (0, 1) 点则 ROC 曲线下面的面积就会越大。

  1. 当 AUC= 1 时,该模型被认为是完美的分类器,但是几乎不存在完美分类器

案例 

y=churn['flag']
x=churn[['contract_month','internet_other','streamingtv']]


from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=100)

from sklearn import linear_model
lr=linear_model.LogisticRegression()
lr.fit(x_train,y_train)

y_pred_train=lr.predict(x_train)
y_pred_test=lr.predict(x_test)
import sklearn.metrics as metrics
metrics.accuracy_score(y_train,y_pred_train)
from sklearn.metrics import roc_auc_score
roc_auc_score(y_test, y_pred_test)    

# 网格搜索参数
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import GridSearchCV
kfold = StratifiedKFold(n_splits=5, shuffle=True)
lr = linear_model.LogisticRegression()
param_grid = {'solver': ['newton-cg', 'lbfgs', 'liblinear'],
              'C': [0.001, 0.01, 1, 10, 100],'class_weight':['balanced']}
search = GridSearchCV(lr, param_grid, cv=kfold)
lr = search.fit(x_train, y_train)

LogisticRegression(class_weight='balanced')参数的作用是在拟合模型时自动调整类别权重,以帮助处理不平衡的数据集。当使用class_weight='balanced'时,Scikit-learn的LogisticRegression会在计算损失函数时自动为每个类分配权重,使得较少出现的类别(少数类)获得更高的权重,以此来平衡各类别之间的样本数量差异。这样做有助于改善模型对少数类的识别能力,特别是在数据集中某些类的样本数量远少于其他类时,这种权重调整可以防止模型偏向于多数类。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国沈阳综合门户网站建设服务说明(2016年10月23日)

1 宏锦大厦412室 联系电话:***-******38 综合门户网站建设服务说明 中国沉阳 综合门户网站建设服务说明 门户网站策划公司地址:沉河区宏锦万柳塘路36-1号412号楼 联系电话:***-******38 综合门户网站建设服务说明 中国沉阳 海丰科技 联系电话…

当“新质生产力”遇上“CAE仿真”,将激起什么样的火花?

在刚刚闭幕的全国两会上,新质生产力无疑是最为“滚烫”的热词。发展新质生产力是推动高质量发展的内在要求和重要着力点,此次更被列为2024年政府重点任务的第一条。 新质生产力是创新起主导作用,摆脱传统经济增长方式、生产力发展路径&#…

GPT-SoVITS开源音色克隆框架的训练与调试

GPT-SoVITS开源框架的报错与调试 遇到的问题解决办法 GPT-SoVITS是一款创新的跨语言音色克隆工具,同时也是一个非常棒的少样本中文声音克隆项目。 它是是一个开源的TTS项目,只需要1分钟的音频文件就可以克隆声音,支持将汉语、英语、日语三种…

电竞游戏行业有哪些媒体资源?活动发布会如何宣传?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 电竞游戏行业的媒体资源主要包括:游戏门户网站、综合资讯网站、社交媒体平台、电视和网络直播等。 在电竞游戏行业中,媒体资源是丰富多样的。游戏门户网站如游民…

蜜源加入飞桨技术伙伴计划,共同打造“智能导购助手”电商应用新模式

近日,蜜源(广州)新媒体科技有限公司正式加入飞桨技术伙伴计划,双方将共同努力在电商导购智能化服务领域,创新升级打造“AI导购”新模式。基于大模型赋能电商,持续挖掘出AI电商导购领域的潜力和应用价值&…

pip 配置镜像加速安装

在使用pip安装Python第三方库时,默认是使用pip官网的非常慢,可通过配置国内镜像源加速下载速度,以下是如何使用国内镜像源安装Python库的两种常见方式: 临时使用镜像源安装 如果你只是想临时使用某个镜像源安装单个或几个库&…

『scrapy爬虫』04. 使用管道将数据写入excel(详细注释步骤)

目录 1. excel文件的初始化与保存2. 配置管道使用运行测试总结 欢迎关注 『scrapy爬虫』 专栏,持续更新中 欢迎关注 『scrapy爬虫』 专栏,持续更新中 1. excel文件的初始化与保存 安装操作excel文件的库 pip install openpyxl钩子函数(Hook…

C++面试问题收集

0 持续更新中 目录 0 持续更新中 1 C语言相关 1.1 malloc/free和new/delete区别 1.2 内存泄漏 1.3 堆区和栈区的区别 1.4 宏定义和const的区别 1.5 多态 1.6 类中的静态成员变量 2 操作系统相关 2.1 进程和(用户)线程的区别 2.2 系统调用 2.3…

Rockchip android10.1默认开启虚拟键盘

Rockchip android10.1默认开启虚拟键盘 问题描述解决方法 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip OS:Android 10.1 Kernel: 4.19 问题描述 客户需要在插上外接实体键盘的时候&#xff…

QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录 1.C#的dll注册为COM,采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

Element-Plus: Select组件实现滚动分页加载

Element-Plus的select组件并没有自带滚动分页加载的功能,其虽然提供了自定义下拉菜单的底部的方式可以自定义上一页及下一页操作按钮的方式进行分页加载切换: 但如果不想通过点击分页按钮的方式,利用滚动触底进行下一页加载的话,…

近视用什么灯对眼睛好?多款防近视护眼台灯推荐

随着社会竞争愈发激烈,对于办公族、学生党而言,用眼过度是最频繁不过的事情了,不少低年级的学生都已经早早佩戴上了近视眼镜。所以想要保护眼睛健康,一款光源舒适的台灯是必不可少的,不过市面上也有很多劣质台灯&#…

注意力机制Attention、CA注意力机制

一、注意力机制 产生背景: 大数据时代,有很多数据提供给我们。对于人来说,可以利用重要的数据,过滤掉不重要的数据。那对于模型来说(CNN、LSTM),很难决定什么重要、什么不重要,因此…

案例分析篇06:数据库设计相关28个考点(17~22)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Kafka-生产者报错javax.management.InstanceAlreadyExistsException

生产者发送消息到 kafka 中,然后控制台报错 然后根据日志查看 kafka 的源码发现了问题原因 说的是MBean已经注册了,然后报异常了,这样就会导致生产者的kafka注册失败, 原因是项目上生产者没有配置clientId,默认都是空导致的, 多个生产者(项目)注册到kafka集群中的 id 都相同。 …

Spring Boot 中@Scheduled是单线程还是多线程?

在开发Spring Boot应用程序时,定时任务是一项常见的需求。Spring Boot提供了Scheduled注解,可用于将方法标记为定时任务,并在预定的时间间隔内执行。那么Scheduled注解的执行方式是单线程执行,还是多线程执行?Schedule…

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

文章目录 需求所需第三方库requests模块lxml模块了解 lxml模块和xpath语法xpath语法-基础节点选择语法 实战教程完整代码 需求 目标网站: https://movie.douban.com/top250 需求: 爬取电影中文名、英文名、电影详情页链接、导演、主演、上映年份、国籍、类型、评分、评分人数, …

振弦采集仪的操作方法及数据处理技术的一般步骤

振弦采集仪的操作方法及数据处理技术的一般步骤 岩土工程监测中,河北稳控科技振弦采集仪是用来测量土壤或岩石中的振动特性的仪器。下面是振弦采集仪的操作方法及数据处理技术的一般步骤: 1. 准备工作:安装振弦采集仪的支架或支架&#xff0…

文心一言 VS 讯飞星火 VS chatgpt (215)-- 算法导论16.2 2题

二、设计动态规划算法求解 0-1 背包问题,要求运行时间为 O(nW),n为商品数量,W是小偷能放进背包的最大商品总重量。如果要写代码,请用go语言。 文心一言: 0-1 背包问题是一个典型的动态规划问题,其目标是在…