[机器学习]逻辑回归

[机器学习算法]逻辑回归模型、优缺点及spark ml机器学习库实现LR 目录 一、逻辑回归模型-log损失函数 1.1 模型定义 1.2 损失函数 1.3 梯度下降求解参数 二、利用最大似然估计求解逻辑回归模型参数 三、逻辑回归模型优缺点分析 四、spark ml机器学习库实现逻辑回归模型 五、离散特征作为模型输入 一、逻辑回归模型-log损失函数 1.1 模型定义    1.2 损失函数                    ... 阅读详情

1 前置知识

  • 逻辑回归解决二分类问题。
  • sigmoid函数:非线性,值域(0,1)概率值

2 逻辑回归原理

3 癌症分类案例

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
# 获取数据
data=pd.read_csv('breast-cancer-wisconsin.csv')
# 基本数据处理
data=data.replace('?',np.NAN)
data=data.dropna()
x=data.iloc[:,1:-1]
# y=data[:,-1]
y=data['Class']
# 分割数据
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)
# 逻辑回归
LR=LogisticRegression()
LR.fit(x_train,y_train)
# 模型评估
y_predict=LR.predict(x_test)
print(y_predict)
acc=LR.score(x_test,y_test)
print(acc)

4 分类问题评估

4.1 混淆矩阵

4.2 精确率&召回率

from sklearn.metrics import confusion_matrix,accuracy_score,precision_score,recall_score,f1_score
import pandas as ps
# 真实值
y_true=['恶性','恶性','恶性','恶性','恶性','恶性','良性','良性','良性','良性']
# 预测值
y_predict_A=['恶性','恶性','恶性','良性','良性','良性','良性','良性','良性','良性']
y_predict_B=['恶性','恶性','恶性','恶性','恶性','恶性','恶性','恶性','恶性','良性']
labels=['恶性','良性']
# 构建混淆矩阵
m_A=confusion_matrix(y_true,y_predict_A,labels=labels)
m_B=confusion_matrix(y_true,y_predict_B,labels=labels)
df_A=pd.DataFrame(data=m_A,columns=labels,index=labels)
df_B=pd.DataFrame(data=m_B,columns=labels,index=labels)

# 混淆矩阵
print(df_A)
print(df_B)
print('*'*20)
# 准确率
print(accuracy_score(y_true,y_predict_A))
print(accuracy_score(y_true,y_predict_B))
print('*'*20)
# 精确率
print(precision_score(y_true,y_predict_A,pos_label='恶性'))
print(precision_score(y_true,y_predict_B,pos_label='恶性'))
print('*'*20)
# 召回率
print(recall_score(y_true,y_predict_A,pos_label='恶性'))
print(recall_score(y_true,y_predict_B,pos_label='恶性'))
# f1-score
print('*'*20)
print(f1_score(y_true,y_predict_A,pos_label='恶性'))
print(f1_score(y_true,y_predict_B,pos_label='恶性'))

4.3 AUC指标&ROC曲线

5 电信客户流失案例

import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score,roc_auc_score,classification_report
# 获取数据
data_df=pd.read_csv('churn.csv')
# data_df.info()
# print(data_df.describe())
# 数据预处理
# one-hot编码
# data_df=pd.get_dummies(data_df)
data_df=pd.get_dummies(data_df)
# 去除热编码后意义重复的列
data_df.drop(['Churn_No','gender_Male'],axis=1,inplace=True)
# print(data_df.iloc[:5, 13:])
# 修改列名
data_df.rename(columns={'Churn_Yes':'label'},inplace=True)
# 样本均衡查看(查看标签分布情况)
data_df.label.value_counts(1)
# 特征筛选
x=data_df[['Contract_Month','Dependents_att','internet_other']]
y=data_df['label']
# 数据集划分
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=22)
# 模型训练
LR=LogisticRegression(class_weight='balanced')
LR.fit(x_train,y_train)
# 模型预测评估
y_predict=LR.predict(x_test)
print(y_predict)
# 准确率
print('*'*20)
accuracy_score=accuracy_score(y_test,y_predict)
print('accuracy_score',accuracy_score)
# 精确率
print('*'*20)
precision_score=precision_score(y_test,y_predict)
print('precision_score',precision_score)
# 召回率
print('*'*20)
recall_score=recall_score(y_test,y_predict)
print('recall_score',recall_score)
# f1_score
print('*'*20)
f1_score=f1_score(y_test,y_predict)
print('f1_score',f1_score)
# AUC
print('*'*20)
roc_auc_score=roc_auc_score(y_test,y_predict)
print('roc_auc_score',roc_auc_score)
# 分类评估报告
classification_report=classification_report(y_test,y_predict)
print(classification_report)

第L3周:ML | 逻辑回归 LogisticRegression 逻辑回归(Logistic Regression)是一种广泛应用的机器学习算法,特别适用于分类问题。尽管名字中带有“回归”,但它主要用于解决二分类或多分类问题,而不是回归问题。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 核心思想是将输入特征通过一个线性函数映射到输出,然后使用逻辑函数(Sigmoid函数或Softmax函数)将线性函数的输出转换为概率,从而实现分类。 用于将数据分为两个类别,例如判断邮件是否为垃圾邮件、病人是否患有某 阅读详情

相关推荐

【机器学习】什么是逻辑回归

本文主要讲述了逻辑回归算法的基本原理和应用。首先介绍了逻辑回归在机器学习领域的重要地位,然后解释了其名称的由来和如何利用样本特征和概率之间的关系进行分类。通过与线性回归的对比,解释了概率值的概念和如何进行分类。强调了逻辑回归只能解决二分类问题,并介绍了如何通过转换函数将线性回归的结果转换为概率值。最后通过实例说明了如何应用逻辑回归模型进行肿瘤类型的预测。逻辑回归是一种常用的机器学习算法,在各个行业中广泛使用,尤其在非军事和安全领域。逻辑回归的简单性使其易于理解和实现,但同时也非常有用。

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 1032

spark 逻辑回归算法案例_黄美灵的Spark ML机器学习实战

原标题:黄美灵的Spark ML机器学习实战本课程主要讲解基于Spark 2.x的ML,ML是相比MLlib更高级的机器学习库,相比MLlib更加高效、快捷;ML实现了常用的机器学习,如:聚类、分类、回归等算法。本课拒绝枯燥的讲述,将循序渐进从Spark2.x的基础知识开始,然后再透彻讲解各个算法的理论、详细展示Spark实现,最后均会通过实例进行解析实战,帮助大家真正从理论到实践全面掌握Spar...

weixin_29174385的博客 486

Spark ML机器学习算法svm,als,线性回归,逻辑回归简单试验

线性回归 导入训练集数据,将其解析为带label的RDD,然后使用LinearRegressionWithSGD 建立一个简单的线性模型预测label的值,最后计算了均方差来评估预测值与实际值的吻合度 object LinearRegressionModelDemo { def main(args: Array[String]): Unit = {

Nougats的博客 1808

OpenCV机器学习(5)逻辑回归算法cv::ml::LogisticRegression

cv::ml::LogisticRegression 是 OpenCV 机器学习模块中的一个类,用于实现逻辑回归算法。逻辑回归是一种广泛应用于分类问题的统计方法,特别适合二分类任务。尽管名字中有“回归”二字,但它主要用于预测数据点属于某个类别的概率。

jndingxin的专栏 883

【ML】基于机器学习的心脏病预测研究(附代码和数据集,逻辑回归模型)

基于机器学习的心脏病预测研究(附代码和数据集,逻辑回归模型)

学无止境、积少成多、厚积薄发 5771

基因ID转换避坑指南:如何用org.Hs.eg.db把ENSEMBL ID变成可读的gene symbol

本文详细介绍了如何将RNA-seq等数据中常见的ENSEMBL ID转换为可读的基因符号(Gene Symbol),重点对比了biomaRt与org.Hs.eg.db两大工具的优劣,并深入剖析了多对多映射、版本号失效及非编码基因Symbol缺失三大核心陷阱。文章提供了针对TCGA、GEO等不同数据源的定制化处理方案与完整的稳健转换流程,帮助生物信息学分析者避免常见错误,确保下游分析的准确性。

weixin_28223453的博客 701

php-ml 逻辑回归,机器学习之逻辑回归

逻辑回归将样本特征和样本发生的概率联系起来,用于解决分类问题。Sigmoid 函数在最简单的二分类中,逻辑回归里样本发生的概率的值域为 [0, 1],对于线性回归 $\hat{y} = \theta^T·x_b$,为了将 $\hat y$ 映射到值域 [0, 1] 中,引入了 $\sigma$ 函数得到了概率函数 $\hat p$,即:$$\hat p=\sigma(\theta^T·x_b), ...

weixin_35820423的博客 384

使用QGIS提取天地图遥感影像中的建筑物轮廓,及AI方案

用QGIS的插件提取遥感影像中的建筑轮廓,并提供了几个AI提取建筑轮廓的方案。

cky_123的博客 2万+

ML算法——逻辑回归随笔【机器学习】

计算假阳率的方法是,将预测为正例的样本数量除以所有的负例样本数量。在实际应用中,假阳率高的模型可能会导致过多的误判,因此需要尽可能降低模型的假阳率。假阳率主要出现在分类问题中。在评估分类模型的性能时,假阳率是一个重要的指标,特别是在模型应用于关键决策时。例如,在医疗诊断中,高假阳率可能会导致对病人进行不必要的治疗或手术,因此需要尽可能降低模型的假阳率。Logic Regression (LR),逻辑回归的因变量是二分类的,而不是连续的。参照线性回归中的θ,这里的θ也是个向量,涵盖所有提到过的θ分量,θ=

cold的博客 2309

0032期基于深度学习的大米识别-含数据集

083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型。117nlp自然语言处理-文本情感分类-joy-sadness-anger-fear-love-surprise。运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地。

grehtsfrs的博客 1508

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 471

[ML skill]机器学习(machine learning)之逻辑回归

刚刚上篇多元线性回归的文章写了大半天 - - 发表了之后不知道为啥只有最初保存在草稿箱里的几个字 - - 不会出bug了吧 同学们大噶好! 今天跟大家介绍一下逻辑回归问题,前面文章好像提了一嘴。 所谓逻辑回归问题就是,生活中我们常常遇到一些问题并非呈现一种线性化的分布,比如说生一个小孩是男孩还是女孩,我在抽一张扑克是黑桃红桃方片梅花,这一类问题就是分类问题。可能有一些数值分析基础的同学们对于...

DESOLATION ROW 378

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

mllib逻辑回归 spark_Spark中ml和mllib的区别

Spark中ml和mllib的主要区别和联系如下:ml和mllib都是Spark中的机器学习库,目前常用的机器学习功能2个库都能满足需求。spark官方推荐使用ml, 因为ml功能更全面更灵活,未来会主要支持ml,mllib很有可能会被废弃(据说可能是在spark3.0中deprecated)。ml主要操作的是DataFrame, 而mllib操作的是RDD,也就是说二者面向的数据集不一样。Dat...

weixin_29468281的博客 237

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3485

基于MATLAB的数字滤波器之低通滤波器

本文首先介绍了数字低通滤波器的概念和原理,其次论述了低通滤波器的技术指标和设计步骤,最后给出了数字低通滤波器应用于信号去噪的MATLAB代码。

总结论文中的算法并给出论文的复现代码 3万+

机器学习之逻辑回归(Logistic Regression)

在公众号「python风控模型」里回复关键字:学习资料,免费领取。 python风控模型 持牌照金融公司模型专家,教学主页 https://ke.qq.com/teacher/231469242?tuin=dcbf0ba

fulk6667g78o8的专栏 2万+

人工智能面试总结-Python

B站:啥都会一点的研究生 公众号试读:啥都会一点的研究生 目录说说Python程序运行过程?说说Python的作用域?说说Python的数据结构?说说Python中可变与不可变类型?说说进程与线程?说说Python中的多线程?说说Python中的多进程?说说Python互斥锁与死锁?说说Lambda?说说Python的深拷贝与浅拷贝?说说Python多线程是否能用多个CPU,为什么?说说Python垃圾回收机制?说说Python里的生成器?说说迭代器与生成器的区别?说说Python 列表的 del,rem.

啥都生的博客 1万+

机器学习——逻辑回归

本模型要查看的评估指标为recall(召回率)。由结果发现,模型训练集和测试集上的recall值都不是很高,原因是为什么呢?我们发现数据集中正负样本个数相差太大,标签为0的样本有284315个,标签为1的样本数仅仅只有492个。这样的数据集我们称为不平衡数据集,它可能导致模型偏向于多数类,从而影响少数类的预测性能。那么我们该怎么解决这一问题呢?之后的两篇文章我们会采用两种不同方法来解决这类情况。

zdx2585503940的博客 5492

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ML-逻辑回归

*ML-逻辑回归 当z≥0 时,y≥0.5,分类为1,当 z<0时,y<0.5,分类为0,其对应的y值我们可以视为类别1的概率预测值。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为: 对于模型的训练而言:实质上来说就是利用数据求解出对应的模型的特定的ω(利用线性回归算)。从而得到一个针对于当前数据的特征逻辑回归模型。 而对于多分类而言,将多个二

weixin_43250159的博客 206

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spark ml pipline交叉验证之逻辑回归

Spark ml pipline交叉验证之逻辑回归 1.1 模型训练 1.1.1 输入参数 { "modelName ": "逻辑回归_运动状态预测1 ", "numFolds ": "5 ", "labelColumn ": "activityId ", "maxIters ": [ 10, 20, 50, ...

码上中年的博客 753

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【机器学习】机器学习之逻辑回归

本次实验运用逻辑回归算法进行学生考试成绩和录取结果的分类预测,实现了数据可视化、参数初始化、代价函数计算、梯度下降优化、预测和决策边界绘制等关键步骤。数据可视化阶段通过matplotlib库创建散点图,生动展示通过和不通过考试学生在两次考试成绩上的分布特征,直观呈现数据的分布情况。参数初始化和代价函数计算中,将逻辑回归参数初始化为0,定义sigmoid函数和代价函数,用于映射输入值、度量预测与实际标签的差距,以及评估模型准确性。

朝花夕拾 2万+

[ML]机器学习_逻辑回归算法

输出变量只能取少数可能值中的一个,而不是无线数字范围内的任何数字。也指得到的输出变量的值是的而并非连续的。

iazzz的博客 166

[机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)

引言  机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归、逻辑回归、Softmax回归、神经网络和SVM等等。主要学习资料来自Standford Andrew Ng老师在Coursera的教程以及UFLDL Tutorial,Stanfor...

aoe41606的博客 255

机器学习之逻辑回归

逻辑回归(Logistic回归)又称Logistic回归分析,是机器学习中的一种分类模型,虽然名字中带有回归,但其是用来解决分类问题的。常用于数据挖掘,疾病自动诊断,经济预测等领域。逻辑回归根据给定的自变量数据集来估计事件的发生概率,由于结果是一个概率,因此因变量的范围在 0 和 1 之间。logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。

2301_80045923的博客 937
上一篇: [机器学习]线性回归算法
下一篇: [机器学习]决策树
Letmooning
博客等级 码龄2年 503粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值