基于逻辑回归构建肿瘤预测模型

这篇具有很好参考价值的文章主要介绍了基于逻辑回归构建肿瘤预测模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用逻辑回归构建肿瘤预测模型

描述

乳腺癌数据集包括569个样本,每个样本有30个特征值(病灶特征数据),每个样本都属于恶性(0)或良性(1)两个类别之一,要求使用逻辑回归(LR)算法建立预测模型,实现准确预测新的病灶数据的类型(恶性或良性)。

样本特征数据为病灶影像的测量数据,部分特征如下:

基于逻辑回归构建肿瘤预测模型

本任务的主要实践内容:

1、 逻辑回归-肿瘤预测模型的构建、预测及评估

2、 逻辑回归-鸢尾花(Iris)分类模型的实现

源码下载

环境

  • 操作系统:Windows 10、Ubuntu18.04

  • 工具软件:Anaconda3 2019、Python3.7

  • 硬件环境:无特殊要求

  • 依赖库列表

    matplotlib	3.3.4
    numpy 			1.19.5
    pandas			1.1.5
    scikit-learn	0.24.2
    mglearn        0.1.9
    

分析

逻辑回归(LogisticRegression)虽然名字中带有“回归”,却是一个经典的分类算法, 本任务通过完成乳腺癌肿瘤预测(通过病灶特征数据预测肿瘤为恶性还是良性,属于监督学习中二分类问题),熟练掌握逻辑回归的原理及编程应用。

本任务涉及以下几个环节:

a)加载、查看乳腺癌数据集

b)数据集拆分

d)构建模型、评估并优化模型、

e)在测试集上预测结果,并输出预测概率

f)利用逻辑回归实现鸢尾花分类(多分类)

实施

1、加载、查看乳腺癌数据集

from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer() # 加载cancer数据集
print(cancer.keys()) # 查看数据有哪些keys(与鸢尾花数据集相同)

输出结果:

dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])
print('Shape of data:', cancer.data.shape) # 数据集尺寸

输出结果:

Shape of data: (569, 30)
print(cancer.target_names) # 标签名称(malingant-恶性,begin-良性)
print(cancer.target) # 标签数据(569个0或1, 0-恶性,1-良性)

输出结果:

['malignant' 'benign']
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0
 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1
 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1
 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0
 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1
 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1
 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0
 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1
 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 1
 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0
 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 0 0 0 0 0 0 1]

2、拆分数据集

from sklearn.model_selection import train_test_split

# 随机拆分数据集
# X_train 训练集
# X_test 测试集
# y_train 训练集标签(即训练集数据对应的类别)
# y_test 测试集标签(即测试集数据对应的类别)
# test_size 测试集比例
# random_state 随机状态(设置为固定值可以锁定拆分结果,用于数据复现)
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, 
                                                    test_size=0.25, random_state=0)
# 查看拆分情况
print(X_train.shape, X_test.shape)
print(y_train.shape, y_test.shape)

输出结果:

(426, 30) (143, 30)
(426,) (143,)

3、构建模型、评估

from sklearn.linear_model import LogisticRegression

# 采用默认参数创建LR模型,并拟合训练数据
model = LogisticRegression().fit(X_train, y_train)

# 评估模型在训练集和测试集上的成绩
score_train = model.score(X_train, y_train)
score_test = model.score(X_test, y_test)
print(score_train, score_test)

输出结果:

0.9553990610328639 0.958041958041958

4、在测试集上预测结果,并输出预测概率

这里我们预测测试集中的前三个样本,输出预测结果(0-恶性,1-良性),并输出0和1对应的概率值。

# 预测结果(0-恶性,1-良性)
y_pred = model.predict(X_test[:3]) # 预测测试集前三个样本
print(y_pred)

# 输出预测的概率值(0和1的概率值)
y_pred_proba = model.predict_proba(X_test[:3]) # 预测测试集前三个样本
print(y_pred_proba)

输出结果:

[0 1 1]
[[0.99284545 0.00715455]
 [0.0332907  0.9667093 ]
 [0.00271258 0.99728742]] # 该样本属于0的概率为0.002,属于1的概率为0.997,所以判断为类别1

强调:逻辑回归算法计算样本属于每个类别的概率值(即可能性),取概率值最大的类别作为预测结果。

5、扩展练习——基于逻辑回归实现鸢尾花分类(多分类问题)

from sklearn.datasets import load_iris 

# 加载Iris数据集
iris = load_iris()

# 数据集拆分
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, 
                                                    test_size=0.25, random_state=0)
# 创建LR模型
# model = LogisticRegression().fit(X_train, y_train) # 0.9821428571428571 0.9736842105263158
# 优化模型参数,提升模型性能(C正则化系数,penalty正则化类型l1 or l2)
model = LogisticRegression(C=10, penalty='l2').fit(X_train, y_train)   # 0.9910714285714286 0.9736842105263158

# 评估模型成绩
score_train = model.score(X_train, y_train)
score_test = model.score(X_test, y_test)
print(score_train, score_test)

# 预测鸢尾花种类并与实际种类做对比(前十个样本)
y_pred = model.predict(X_test)
print('预测类别:' ,y_pred[:10])
print('实际类别:' ,y_test[:10])

输出结果:

0.9821428571428571 0.9736842105263158
预测类别: [2 1 0 2 0 2 0 1 1 1]
实际类别: [2 1 0 2 0 2 0 1 1 1]

优化参数,提升模型性能:

model = LogisticRegression(C=10, penalty='l2').fit(X_train, y_train) # 0.9910714285714286 0.9736842105263158

优化后结果为:文章来源地址https://www.toymoban.com/news/detail-413318.html

0.9910714285714286 0.9736842105263158
预测类别: [2 1 0 2 0 2 0 1 1 1]
实际类别: [2 1 0 2 0 2 0 1 1 1]

到了这里,关于基于逻辑回归构建肿瘤预测模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据分析案例-基于LinearRegression回归算法构建房屋价格预测模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月03日
    浏览(54)
  • 机器学习:基于逻辑回归对优惠券使用情况预测分析

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 订阅专栏案

    2024年02月02日
    浏览(41)
  • 使用线性回归构建波士顿房价预测模型

    波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格,这些特征包括周边犯罪率、房间数量、房屋是否靠河、交通便利性、空气质量、房产税率、社区师生比例(即教育水平)、周边低收入人口比例等 。我们的任务是根据上述数据集建立模型,能够预测房

    2023年04月14日
    浏览(65)
  • 机器学习算法(一): 基于逻辑回归的分类预测

    逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有\\\"回归\\\"两个字,但逻辑回归其实是一个 分类 模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。 而对于

    2024年01月15日
    浏览(47)
  • 机器学习:基于逻辑回归对某银行客户违约预测分析

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 专栏案例:

    2024年01月17日
    浏览(50)
  • 机器学习实战:Python基于Logistic逻辑回归进行分类预测(一)

    1.1 Logistic回归的介绍 逻辑回归( Logistic regression ,简称 LR )是一种经典的二分类算法,它将输入特征与一个sigmoid函数进行线性组合,从而预测输出标签的概率。该算法常被用于预测离散的二元结果,例如是/否、真/假等。 优点: 实现简单。Logistic回归的参数可以用极大似然

    2024年02月08日
    浏览(39)
  • 基于逻辑回归及随机森林算法的冠心病预测与分析

    本文是一个课程报告,由我和另外一位同学合作完成。自我感觉做的还行决定放上来。  数据集来源:Cardiovascular Study Dataset | Kaggle 目录 1.项目背景... 3 1.1项目说明... 3 1.2需求分析... 3 2.数据挖掘准备... 3 2.1数据字段含义介绍... 3 2.2基础统计分析... 4 3.数据挖掘过程... 5 3.1数据

    2024年01月18日
    浏览(53)
  • 基于逻辑回归实现乳腺癌预测(机械学习与大数据)

    将乳腺癌数据集拆分成训练集和测试集,搭建一个逻辑回归模型,对训练集进行训练,然后分别对训练集和测试集进行预测。输出以下结果: 该模型在训练集上的准确率,在测试集上的准确率、召回率和精确率。

    2024年03月11日
    浏览(40)
  • 机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 专栏案例:

    2023年04月26日
    浏览(50)
  • 【Sklearn】基于逻辑回归算法的数据分类预测(Excel可直接替换数据)

    逻辑回归是一种用于二分类问题的统计学习方法,尽管名字中含有“回归”,但实际上是一种分类算法。它的基本原理是通过建立一个线性模型,然后将线性输出映射到一个概率值,最终将这个概率值转换成二分类的预测结果。 下面是逻辑回归的基本原理: 线性模型: 首先

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包