逻辑回归算法 - 乳腺癌预测

传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 传统机器学习之以威斯康辛州乳腺癌数据集为例的逻辑回归分类 阅读详情

1 目标

根据历史女性乳腺癌患者数据集(医学指标)构建逻辑回归分类模型进行良/恶性乳腺癌肿瘤预测

2 数据集

  • 2.1 数据集来源

数据集源于威斯康星州临床科学中心。每个记录代表一个乳腺癌的随访数据样本。这些是DR Wolberg自1984~1995随访搜集连续乳腺癌患者数据,数据仅包括那些具有侵入性的病例乳腺癌并没有远处转移的医学指标数据集。

  • 2.2 特征值(医学特征)
    在这里插入图片描述

3 算法

  • 3.1 应用场景
    经典的二分类算法
    广告点击率
    判断用户的性别
    预测用户是否会购买给定的商品类
    判断一条评论是正面的还是负面的
  • 3.2 算法流程

激活函数:映射到概率的函数
激活函数:映射到概率的函数

def sigmoid(z):
return 1 / (1 + np.exp(-z))

预测函数:返回预测结果值
在这里插入图片描述

def model(X, theta):
return sigmoid(np.dot(X, theta.T))

在这里插入图片描述

def cost(X, y, theta):
    left = np.multiply(-y, np.log(model(X, theta)))
    right = np.multiply(1 - y, np.log(1 - model(X, theta)))
return np.sum(left - right) / (len(X))

在这里插入图片描述

def gradient(X, y, theta):
    grad = np.zeros(theta.shape)
    error = (model(X, theta)- y).ravel()
    for j in range(len(theta.ravel())): #for each parmeter
        term = np.multiply(error, X[:,j])
        grad[0, j] = np.sum(term) / len(X)
    
return grad

梯度下降 - 模型迭代学习
在这里插入图片描述
寻找山谷的最低点,也就是我们的目标函数终点(什么样的参数能使得目标函数达到极值点)
下山分几步走呢?(更新参数)
(1):找到当前最合适的方向
(2):走那么一小步,走快了该”跌倒 ”了
(3):按照方向与步伐去更新我们的参数

4 应用

  • 4.1 核心算法

    column = ['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(
         "https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",
         names=column)
    
     # 缺失值处理:包含16个缺失值,用”?”标出
     data = data.replace(to_replace='?', value=np.nan)
     data = data.dropna()
    
     # 数据集分割
     x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]],
                                                         test_size=0.25)
     # 标准化处理:线性回归模型,w1、w2...wn系数需要标准化
     std = StandardScaler()
     x_train = std.fit_transform(x_train)
     x_test = std.transform(x_test)
    
     # 逻辑回归算法
     '''
     the whole flow, exclude mean cost: 
     1 Sigmoid function
     2 model function
     3 gradient function
     4 gradient descent
     
     @:param C 梯度下降学习率 
     '''
     lg = LogisticRegression()
    
     param = {"C": [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5]}
    
     '''
     gridsearch:sk-learn封装api带有网格搜索+交叉验证功能,搜索最优梯度下降学习率超参数
     @:param cv交叉验证折数    
     '''
     gc = GridSearchCV(lg, param_grid=param, cv=10)
     gc.fit(x_train, y_train)
    
     # 网格搜索最优模型
     model = gc.best_estimator_
    
     # 预测测试集
     y_predict = model.predict(x_test)
    
     print("模型预测结果:", y_predict)
    
  • 4.2 模型评估

    '''
     模型评估
     分类问题关键点:精确率、准确率、召回率
     恶性分类问题:现实2问题,召回率(漏查率)非常关注,混淆矩阵可视化预测结果与真实结果对比
     '''
    
     print("准确率:", model.score(x_test, y_test))
     print("召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=['良性', '恶性']))
    
     # 预测结果生成混淆矩阵,confusion matrix @also see liner regression model manual generate function
     target_names = ['begin', 'malignant']
     mat = confusion_matrix(y_test, y_predict)
     plt.title("predict-to-true confusion matrix")
     sns.heatmap(mat.T, square=True, annot=True, fmt='d', cbar=False, xticklabels=target_names,
                 yticklabels=target_names)
     plt.xlabel('true label')
     plt.ylabel('predicted label')
     plt.show()
    
  • 4.3 模型分析报告

    报告: precision recall f1-score support

      良性       0.97      0.97      0.97       109
      恶性       0.95      0.95      0.95        62
    

    avg / total 0.96 0.96 0.96 171

    混淆矩阵:
    在这里插入图片描述

  • 4.4 算法总结

逻辑回归处理样本分布不均匀-异常场景:
样本分布不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律;即使得到分类模型,也容易产生过度依赖于有限的数据样本而导致过拟合的问题,当模型应用到新的数据上时,模型的准确性和鲁棒性将很差。

样本分布不平衡主要在于不同类别间的样本比例差异,以笔者的工作经验看,如果不同分类间的样本量差异达到超过10倍就需要引起警觉并考虑处理该问题,超过20倍就要一定要解决该问题。

样本分布均匀的应用场景:
**异常检测场景。*大多数企业中的异常个案都是少量的,比如恶意刷单、黄牛订单、信用卡欺诈、电力窃电、设备故障等,这些数据样本所占的比例通常是整体样本中很少的一部分,以信用卡欺诈为例,刷实体信用卡的欺诈比例一般都在0.1%以内。

*客户流失场景。*大型企业的流失客户相对于整体客户通常是少量的,尤其对于具有垄断地位的行业巨擘,例如电信、石油、网络运营商等更是如此。

*罕见事件的分析。*罕见事件与异常检测类似,都属于发生个案较少;但不同点在于异常检测通常都有是预先定义好的规则和逻辑,并且大多数异常事件都对会企业运营造成负面影响,因此针对异常事件的检测和预防非常重要;但罕见事件则无法预判,并且也没有明显的积极和消极影响倾向。例如由于某网络大V无意中转发了企业的一条趣味广告导致用户流量明显提升便属于此类。

*发生频率低的事件。这种事件是预期或计划性事件,但是发生频率非常低。例如每年1次的双11盛会一般都会产生较高的销售额,但放到全年来看这一天的销售额占比很可能只有1%不到,尤其对于很少参与活动的公司而言,这种情况更加明显。这种属于典型的低频事件。

处理策略(详细请参阅作者的信用欺诈实例):
过抽样策略,如SMOTE算法
欠抽样策略

逻辑回归 (logistic regression) 本论文采用逻辑回归预测人类乳腺癌的良性与恶性,Logistic回归(logistic regression)属于概率型非线性回归,是分析反应变量为独立分类资料的常用统计分析方法,由于对资料的正态性和方差齐性不做要求、对自变量类型也不做要求等,使得近年来Logistic回归模型在医学研究各个领域被广泛用,如流行病学、病因学的队列研究、病例对照研究,临床诊断的判别模型,治疗效果评价,各类癌症预测等。逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。 阅读详情

相关推荐

Python数据分析-基于机器学习的乳腺癌数据分析与预测

乳腺癌,作为女性群体中一种常见的恶性肿瘤,其根源在于乳腺上皮细胞的异常增殖。近年来,这种疾病的发病率逐年攀升,已成为女性恶性肿瘤的首要威胁,对女性的整体健康造成了极大的影响。数据挖掘是一个复杂的过程,Python利用丰富的库和工具进行两个非常重要的步骤,数据预处理和可视化,通过图形的形式清晰、直观的了解各个特征与乳腺癌之间的关系,从众多的特征中选择出与乳腺癌患病和复发最相关的特征。基于UCI乳腺癌数据建立了多个不同的机器算法进行模型的训练与预测,并进行模型评估对比,选择合适的机器学习算法。

m0_69565964的博客 4693

案例:逻辑回归Logistic Regression做乳腺癌预测

使用逻辑回归算法解决乳腺癌检测问题,使用sk-learn自带的乳腺癌数据集 导入数据 from sklearn.datasets import load_breast_cancer cancer=load_breast_cancer() X=cancer.data y=cancer.target print('data shape:{0};positive:{1},negative:{2}'.fo...

ZhanZhan1231的博客 9596

小白都能看懂!Python机器学习预测乳腺癌疾病案例剖析!

Python是一种非常强大的编程语言,在大数据时代,可以帮助我们很好的应付复杂的数据,今天我们来介绍如何用Python来预测乳腺癌的案例,学会后,你可以应用到其他地方,比如通过一些数据预测某个人是否患心脏病,比如自动驾驶技术预测是否要刹车,是否能变道等。 在讲解案例之前,首先回顾我们去医院看病的场景,医生通过一系列的化验,检查,最终确定病症,我们可以将这些检查结果看做是患者的特征(feature)...

jspython的博客 6379

逻辑回归--乳腺癌数据集

逻辑回归–乳腺癌数据集 一直以为西瓜书中没有逻辑回归这一内容,原来是放在了线性模型这一章节。里面称之为“对数几率回归”。原文给出的理由是: 有文献译为“逻辑回归”,但中文“逻辑”与logistic 和 logit 的含义相去甚远,因此本书意译为“对数几率回归”,简称”对率回归“。 实验要求 实验要求: 使用乳腺癌数据集作为实验数据集(load_breast_cancer),加载并划分数据集 使用sklearn的逻辑回归分类器进行模型训练,并进行至少3个参数调参 (sklearn的线性模型的API文档:

weixin_46864174的博客 7854

乳腺癌良恶性预测--逻辑回归

一、问题背景 利用机器学习算法实现乳腺癌数据集的二分类问题,良恶性乳腺癌肿瘤预测。 二、数据集分析 乳腺癌数据集下载地址为:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/ 乳腺癌数据集中一共有699个样本,共11列数据,每个样本有10个特征和1个对应的标签 包含16个缺失值,用”?“标出 属性 含义 Sample code number 索引ID Clump Thic

Today_2018的博客 782

逻辑回归 – 癌细胞精准识别

任务描述 使用逻辑回归算法建立一个模型,并通过梯度下降算法进行训练,得到一个能够准确对癌细胞进行识别的模型。 数据集介绍 乳腺癌数据集,其实例数量是 569 ,实例中包括诊断类和属性,帮助预测的属性一共 30 个,各属性包括为 radius 半径(从中心到边缘上点的距离的平均值), texture 纹理(灰度值的标准偏差)等等,类包括: WDBC-Malignant 恶性和 WDBC-Benign 良性。用数据集的 80% 作为训练集,数据集的 20% 作为测试集,训练集和测试集中都包括特征和类别。其中特征和类别均为数值类型,类别中 0 代表良性, 1 代表恶性。 构建逻辑回归模型

机器学习算法⑥—【逻辑回归】预测乳腺癌恶性程度

由结果可知,模型的准确率是0.958,说明有95%都预测正确;恶性肿瘤的召回率是0.94,说明有94%的患者的肿瘤恶性程度可以被正确判别,6%的患者的肿瘤恶性程度无法被模型正确判别。逻辑回归算法是一种用于二分类和多分类问题的统计学习分类算法,用于预测离散的类别标签。接下来我们根据癌细胞的一些特征属性,来判断乳腺癌的恶性程度。由数据可知,细胞一共有32个特征,第1列是标签,其他列是特征,没有缺失值需要处理,不需要进行数据清洗。因此我们进行进一步分析:将数据集分割为特征值和目标值。

2301_78195908的博客 1020

Android dex, odex, oat, vdex, art文件介绍

下图可以简化将Java源转换为OAT的过程: .dex Dalvik虚拟机字节码文件 .vdex 其中包含APK的未压缩DEX代码,以及一些旨在加快验证速度的元数据 .odex .oat // JIT,Just-in-time,即时编译,边运行边编译; // AOT,Ahead Of Time,提前编译,指运行前编译。 其中包含APK中已经过AOT编译的方法代码。 原始DEX文件(例如classes.dex)被转换为另一个包含本机代码的文件。这个新文件通常具有.odex。.oat扩展名,并由ELF格式

he980725866的博客 3620

【机器学习笔记day17】3.5. 逻辑回归算法案例分析+良/恶性乳腺癌肿瘤预测

文章目录3.5. 逻辑回归算法案例分析逻辑回归算法案例分析良/恶性乳腺癌肿瘤预测 3.5. 逻辑回归算法案例分析 逻辑回归算法案例分析 良/恶性乳腺癌肿瘤预测 原始数据的下载地址为:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/ 数据预处理 import pandas as pd...

汪雯琦的博客 1660

深入解析UE5内存分析:从Memreport到Unreal Insights

本文深入解析了UE5内存分析的两大核心工具:Memreport与Unreal Insights。Memreport提供详细的内存快照,帮助定位UObject等资源的内存占用;而Unreal Insights则能进行实时监控与历史回溯,精准追踪内存泄漏。掌握这两款工具是优化UE5项目性能、确保大型项目稳定运行的必备技能。

lg888的博客 1007

三维荧光光谱(EEM)散射干扰实战:从识别到精准切除的完整流程

本文详细解析三维荧光光谱(EEM)中散射干扰的识别与精准切除流程,涵盖瑞利散射和拉曼散射的实战处理技巧。通过drEEM工具箱的应用示例和高级场景解决方案,帮助研究者有效消除散射干扰,提升数据准确性,特别适用于环境样品和生物活体样本分析。

weixin_42554042的博客 327

机器学习入门day03——逻辑回归算法及乳腺癌预测

声明:本文章将用于记录个人用户下午好556学习机器学习基本算法的过程,参考资料为:黑马程序员--机器学习。

2402_87337385的博客 311

五子棋AI算法第一篇-我对谷歌Alphago的看法

最近Google宣布他们的围棋AI以5:0的战绩打败欧洲围棋三冠王。我一直对人工智能比较感兴趣,正好趁年前空闲的几天用JS写了一个五子棋的AI。其实很久以前就用自创的算法写过一个JAVA版的五子棋AI,不过棋力很不理想。这次用的是JS写的,所以无论任何平台上只要能打开网页的都可以玩。google爆出这个新闻之后,很多人觉得这是不是意味着电脑智商已经在人类之上了,围棋已经没有意义了之类的。甚至觉得这是

言川的博客 2万+

ML之LoR&SGD:基于LoR(逻辑回归)、SGD梯度下降算法对乳腺癌肿瘤(10+1)进行二分类预测(良/恶性)

ML之LoR&SGD:基于LoR(逻辑回归)、SGD梯度下降算法对乳腺癌肿瘤(10+1)进行二分类预测(良/恶性) 目录 输出结果 设计思路 核心代码 输出结果 breast-cancer size (683, 11) 训练集情况 2 344 4 168 Name: Class, dtype: i...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7699

滤波器设计实战:Filter Solutions软件从入门到精通

本文是Filter Solutions滤波器设计软件的实战指南,从入门到精通。通过设计一个低通数字滤波器的完整流程,详细讲解了参数设置、FIR/IIR选择、窗函数及逼近函数应用。文章重点介绍了如何利用这款经典工具高效完成滤波器设计、性能权衡,并将设计成果导出至MATLAB等平台进行实际验证与应用,是信号处理工程师提升效率的实用参考。

weixin_29095049的博客 531

xctf攻防世界 MISC高手进阶区 low

1. 进入环境,下载附件 给出的一张bmp图片,没有其他信息 2. 问题分析 扔进binwalk中,没有发现有用信息 使用zsteg,没有有用信息 塞入StegSolve中,发现有点猫腻,如图: 有点二维码的感觉,emmm,需要像素处理,但不知道如何下手,参考网上的wp,发现是让使用lsb隐写,copy代码: from PIL import Image img = Image.open('./pic/low.bmp') img_tmp = img.copy() pix = img_tmp.load()

l8947943的博客 1万+

ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)

ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性) 目录 输出结果 设计思路 数据集 核心代码 输出结果 Testing accuracy (10 training samples): 0.8685714285714285 Testing accuracy (all training samples): 0.937...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 8087

【免费】最新区块链钱包和私钥的助记词碰撞器,使用python开发

最新钱包私钥助记词碰撞器,搏一搏单车变摩托!

weixin_48529185的博客 1万+

《scikit-learn机器学习》 逻辑回归算法 - 乳腺癌预测

本章小结: 首先加载sklearn中的内部的乳腺癌文件,再提取数据特征,分析已有的特征,如果特征值比较少,那么可以根据目前已有的特征构造新的特征。然后将数据集分为训练集和测试集,由于数据比较少,所以用20%的比例分离数据集,再用logistic回归算法进行预测,分别用degree = 1 或者 2 或者等等用来模拟数据,选出最适合的模型,再绘制学习曲线,对模型进行进一步的测试,最终选取合适的模型。 注意:如果特征值有差异过大,可以进行正则化表示。 导入需要的库 %matplotlib inline im

Bessie_Lee 8685

win7 vs2012+wdk8.0 搭建wdf驱动开发环境

开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建windows drivers类型的工程。 注:vs2012不能安装wdk8.1,wdk8.1必须安装在vs2013上 下载链接:http://msdn.microsoft.com/zh-cn/win...

技术联盟 5342

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Python】-- 机器学习项目 - 基于逻辑回归算法的乳腺癌数据集分类

摘要: 逻辑回归是一种用于二分类/多分类的算法,通过概率预测实现分类(如垃圾邮件识别)。其数学模型采用Sigmoid函数将线性输出映射为0-1概率。与线性回归、岭回归不同,逻辑回归本质是分类模型。文章以乳腺癌数据集为例,展示了数据清洗、标准化、训练逻辑回归模型及评估的全过程,包括Python代码实现,最终输出预测结果及准确率(如87%)。提供完整源码下载,便于实际应用调整。

银尘博客 851

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

6 逻辑回归(Logistic Regression)

在这个案例中,我们将使用逻辑回归算法来预测乳腺癌的患者是恶性(Malignant)还是良性(Benign)。使用乳腺癌数据集来训练逻辑回归模型,并使用该模型来对新的患者进行。

Kika写代码的博客 910

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

逻辑回归癌症病人预测与不均衡样本评估指标

对于“良性”类别,模型的准确率(precision)为0.99,召回率(recall)为0.99,F1值为0.99。需要注意的是,准确率、召回率和F1值都是针对二分类问题的指标,如果涉及多类别分类问题,可以计算每个类别的准确率、召回率和F1值的平均或加权平均来进行评估。整体上,模型在测试集上取得了很好的表现,准确率、召回率和F1值都达到了很高的水平。对于“恶性”类别,模型的准确率为0.98,召回率为0.98,F1值为0.98。是指在所有实际为正例的样本中,模型正确预测为正例的比例。

weixin_64435941的博客 782

实验三:乳腺癌良恶性预测

一、问题描述 利用机器学习算法实现乳腺癌数据集的二分类问题,良恶性乳腺癌肿瘤预测。 二、数据集分析 乳腺癌数据集下载地址为:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/ 乳腺癌数据集中一共有699个样本,共11列数据,每个样本有10个特征和1个对应的标签 包含16个缺失值,用”?“标出 Sample code number 索引ID Clump Thickness

1万+

逻辑回归算法梳理(从理论到示例)

逻辑回归算法的原理

cuijiekun的博客 2万+
上一篇: 机器学习系列之特征工程
下一篇: hadoop spark之基础环境
架构师老狼
博客等级 码龄14年 44粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值