【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测

逻辑回归—良/恶性乳腺癌肿瘤预测

  • 逻辑回归的损失函数、优化
    与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解
    sklearn逻辑回归API
sklearn.linear_model.LogisticRegression
  • LogisticRegression
sklearn.linear_model.LogisticRegression(penalty=‘l2’, C = 1.0)
Logistic回归分类器
coef_:回归系数
  • 只能解决二分类问题:

    广告点击率

    判断用户的性别

    预测用户是否会购买给定的商品类

    判断一条评论是正面的还是负面的


LogisticRegression回归案例-良/恶性乳腺癌肿瘤预测

良/恶性乳腺癌肿数据
原始数据的下载地址:
https://archive.ics.uci.edu/ml/machine-learning-databases/
在这里插入图片描述
7.#属性域
------------------------------------------
1.样品编号ID编号
2.团块厚度1-10
3.像元大小的均匀性1-10
4.细胞形状的均匀性1-10
5.边缘附着力1-10
6.单上皮细胞大小1-10
7.裸核1-10
8.淡色染色质1-10
9.正常核仁1-10
10.线粒体1-10
11.等级:(2代表良性,4代表恶性)

8.缺少属性值:16

第1到第6组中的16个实例包含一个缺失项
(即不可用)属性值,现在用“?”表示。

9.班级分布:

良性:458(65.5%)
恶性:241(34.5%)

此处恶性为正例,良性为反例。
哪一个类别少,判定概率值是这个类别!
在这里插入图片描述


  • 数据描述
    (1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤
    相关的医学特征,最后一列表示肿瘤类型的数值。
    (2)包含16个缺失值,用”?”标出。

  • pandas使用

pd.read_csv(’’,names=column_names)
column_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']
return:数据replace(to_replace=’’,value=):返回数据
dropna():返回数据
  • 良/恶性乳腺癌肿分类流程
    1、网上获取数据(工具pandas)
    2、数据缺失值处理、标准化
    3、LogisticRegression估计器流程
from sklearn.linear_model import LinearRegression, SGDRegressor,  Ridge, LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, classification_report
import pandas as pd
import numpy as np
def logistic():"""逻辑回归做二分类进行癌症预测(根据细胞的属性特征):return: NOne"""# 构造列标签名字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)print(data)# 缺失值进行处理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)#1-10列是特征值,最后一列10代表11列目标值# 进行标准化处理std = StandardScaler()x_train = std.fit_transform(x_train)x_test = std.transform(x_test)# 逻辑回归预测lg = LogisticRegression(C=1.0)lg.fit(x_train, y_train)print(lg.coef_)y_predict = lg.predict(x_test)print("准确率:", lg.score(x_test, y_test))print("召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"]))return Noneif __name__ == "__main__":logistic()
[699 rows x 11 columns]
[[1.35467578 0.18001121 0.74721681 0.89447017 0.38691172 1.264152650.95382046 0.53218847 0.51240579]]
准确率: 0.9707602339181286
召回率:               precision    recall  f1-score   support良性       0.97      0.98      0.98       112恶性       0.97      0.95      0.96        59accuracy                           0.97       171macro avg       0.97      0.97      0.97       171
weighted avg       0.97      0.97      0.97       171

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

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

相关文章

opencv mat初始化_【OpenCV入门之十二】看起来一样的图像竟然存在这么大的差别!...

小白导读学习计算机视觉最重要的能力应该就是编程了,为了帮助小伙伴尽快入门计算机视觉,小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善,主要是借鉴了更多大神的文章,希望让小伙伴更加容易理解。如果小伙伴觉…

LeetCode 1854. 人口最多的年份(差分)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 logs ,其中每个 logs[i] [birthi, deathi] 表示第 i 个人的出生和死亡年份。 年份 x 的 人口 定义为这一年期间活着的人的数目。 第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, dea…

服务端_说说Netty服务端启动流程

点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章本文来源:http://yeming.me/2016/03/12/netty1/netty服务端代码分析服务端启动配置对于 ServerBootstrap:ServerBootstrap继承于 AbstractBootstrap,它从父类继承…

ztree在刷新时第一个父节点消失_第一个关于中式菜谱的智能问答机器人小程序正式上线啦...

为了满足大家对菜品烹饪的各类问题能直接得到答案的需求,我开发了目前第一个真正关于菜谱的智能问答系统,并在微信小程序发布上线。这套系统支持对于8600多种菜品的问答功能,并能实现快速问答响应,整套系统后端依托于搭建的中式菜…

LeetCode 1855. 下标对中的最大距离(双指针)

文章目录1. 题目2. 解题1. 题目 给你两个 非递增 的整数数组 nums1​​​​​​ 和 nums2​​​​​​ &#xff0c;数组下标均 从 0 开始 计数。 下标对 (i, j) 中 0 < i < nums1.length 且 0 < j < nums2.length 。如果该下标对同时满足 i < j 且 nums1[i] …

【Python基础知识-pycharm版】第一节-基础

python第一节特点Python 解释器python开发环境交互模式IDLE开发环境使用入门程序基本格式图形化程序设计python程序的构成python程序的对象python的引用python的标识符标识符命名规则变量和简单赋值语句删除变量和垃圾回收机制Python 是一种解释型、面向对象的语言。 官网&…

c++对象回收string类型成员时coredump_本体技术视点 | 虚拟机中引用性动态语言对象模型思考...

1引言Ontology 的 NeoVM 虚拟机新增加了 DCALL、HAS_KEY、KEYS 以及 VALUES 等几条新的指令。因此&#xff0c;基于 NeoVM 的引用性动态语言对象的设计理论上可行&#xff0c;这可使得当前语言的支持能更接近原生语义。对象模型设计的必要性Ontology NeoVM 对用户暴露的对象语义…

LeetCode 1856. 子数组最小乘积的最大值(前缀和 + 单调栈)

文章目录1. 题目2. 解题1. 题目 一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。 比方说&#xff0c;数组 [3,2,5] &#xff08;最小值是 2&#xff09;的最小乘积为 2 * (325) 2 * 10 20 。 给你一个正整数数组 nums &#xff0c;请你返回 nums 任意 非空…

【Python基础知识-pycharm版】第二节-赋值/数据类型/时间点/运算符/字符串

python第二节链式赋值_系列解包赋值内置数据类型时间表示unix时间点多点坐标绘出折线图运算符字符串部分来源&#xff1a;1.https://blog.csdn.net/wys103158/article/details/964882382.https://www.cnblogs.com/jack-zh/p/10810569.html3.http://c.biancheng.net/view/4258.h…

LeetCode 1859. 将句子排序

文章目录1. 题目2. 解题1. 题目 一个 句子 指的是一个序列的单词用单个空格连接起来&#xff0c;且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。 我们可以给一个句子添加 从 1 开始的单词位置索引 &#xff0c;并且将句子中所有单词 打乱顺序 。 比方说&a…

java 拦截器_Spring的春天来啦——百战Java课程更新(2019.09.06)

百战程序员运营400天&#xff0c;课程突破10000节&#xff0c;周周有新课更新&#xff0c;保持行业领先&#xff0c;九大专业运营。注册人数突破70万人&#xff0c;超级VIP用户累计8358人。百战程序员&#xff0c;由50专家、精英讲师组成课程研究院&#xff0c;根据市场发展和企…

LeetCode 1860. 增长的内存泄露(等差数列)

文章目录1. 题目2. 解题1. 题目 给你两个整数 memory1 和 memory2 分别表示两个内存条剩余可用内存的位数。 现在有一个程序每秒递增的速度消耗着内存。 在第 i 秒&#xff08;秒数从 1 开始&#xff09;&#xff0c;有 i 位内存被分配到 剩余内存较多 的内存条&#xff08;如…

argumentoutofrangeexception:长度不能小于0_数组长度属性背后的魔力有哪些?

开发人员每天都会处理数组。作为集合&#xff0c;要查询的重要属性是项目数&#xff1a;Array.prototype.length。在JavaScript中&#xff0c;length它并不总是指示现有元素的数量&#xff08;对于稀疏数组&#xff09;&#xff0c;并且修改此属性可能会删除元素。让我们揭开这…

【Python基础知识-pycharm版】第四节-元组

元组元组的创建元组的元素访问和计数生成器推导式创建元组列表属于可变序列&#xff0c;可以任意修改列表中的元素&#xff0c;元组属于不可变序列&#xff0c;不能修改元组中的元素。因此&#xff0c;元组没有增加元素、修改元素、删除元素相关的方法。 因此&#xff0c;我们只…

人员离职it检查_?「市安委会第十七检查组」值班人员擅离职守,变压器房随意出入...

近日&#xff0c;市安委会第十七检查组深入浮山县隆顺矿业有限公司&#xff0c;细心查摆&#xff0c;全面梳理企业存在的安全隐患。日前&#xff0c;我们召开了安全生产工作会议&#xff0c;传达了市县相关要求和有关领导的指示批示&#xff0c;要求全体干部职工进一步提高安全…

LeetCode 1861. 旋转盒子(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的字符矩阵 box &#xff0c;它表示一个箱子的侧视图。箱子的每一个格子可能为&#xff1a; # 表示石头* 表示固定的障碍物. 表示空位置 这个箱子被 顺时针旋转 90 度 &#xff0c;由于重力原因&#xff0c;部分石头的位置会发…

quartz.net隔一天执行一次_你知多少年的轮回,中秋和国庆在同一天吗?喜相逢必备“蟹”逅礼...

中秋节与国庆节上演“喜相逢”怎么会这样呢&#xff1f;天文学专业人士表明发生这类情形主要是闰月的原因天津市天文学会理事赵之珩说&#xff0c;我国的阴历规定大月30天&#xff0c;小月29天&#xff0c;1年12个月共354或355天&#xff0c;比一个回归年的天数少十一天上下&am…

【Python基础知识-pycharm版】第五节-字典\集合

第五节-字典\集合\控制语句字典字典的创建字典元素的访问字典元素添加、修改、删除序列解包表格数据使用字典和列表存储&#xff0c;并实现访问字典核心底层原理&#xff08;重要&#xff09;集合集合相关操作字典 字典是“键值对”的无序可变序列&#xff0c;字典中的每个元素…

java使用原生语句操作mongo_Java 中 MongoDB 使用指南

MongoDB是当今非常流行的一款NoSQL数据库&#xff0c;本文介绍如何使用MongoDB的Java驱动来操作MongoDB。一、引入MongoDB Java Driver包如果需要操作MongoDB的Java项目是一个Maven项目&#xff0c;可以在依赖中加上以下的配置。<dependencies><dependency><gro…