深度学习用于医学预后-第二课第四周1-4节随堂作业

news2024/11/27 7:31:31

作业名:C2_W4_lecture.ipynb

作业地址:
github --> bharathikannann/AI-for-Medicine-Specialization-deeplearning.ai --> AI for Medical Prognosis --> Week 4

One-hot encode categorical variables

首先我们来看一下哪些特征是分类特征?

import pandas as pd
df = pd.DataFrame({'ascites': [0,1,0,1],
                   'edema': [0.5,0,1,0.5],
                   'stage': [3,4,3,4],
                   'cholesterol': [200.5,180.2,190.5,210.3]
                  })
df


在这个小样本数据集中,“腹水”、“水肿”和“分期”是分类变量

  • 腹水(ascites): 取值为0或1
  • 水肿(edema):值为0、0.5或1
  • 阶段(stage):是3或4
    “胆固醇”(cholesterol)是一个连续变量,因为它可以是大于零的任何十进制值。

哪些分类变量要进行one-hot编码?

在分类变量中,哪一个应该进行 one-hot 编码(变成虚拟变量)?

  • 腹水:已经是0或1,所以没有必要进行 one-hot 编码。
    • 我们可以对腹水进行 one-hot 编码,但当只有两个可能的值是0或1时,就没有必要了
    • 当值为0或1时,1意味着存在疾病,而0意味着正常(无疾病)。
  • 水肿: 水肿是指身体任何部位的肿胀。这个数据集的 "水肿 "特征有3个类别,所以我们要对它进行one-hot编码,使三个可能的值都有一个特征列。
    • 0:无水肿
    • 0.5:患者有水肿,但没有接受利尿剂治疗(用于治疗水肿)
    • 1:患者有水肿,接受了利尿剂治疗(所以病情可能更严重)。
  • 阶段:有3和4的值。我们要对这些进行one-hot编码,因为它们不是0或1的值。
    • 癌症的 "阶段 "是0、1、2、3或4。
    • 0期意味着没有癌症。
    • 第1阶段是仅限于身体的一个小区域的癌症,也被称为 “早期癌症”
    • 第2阶段是已经扩散到附近组织的癌症
    • 第3阶段是已经扩散到附近组织的癌症,但比第2阶段更严重
    • 第4阶段是已经扩散到身体远处的癌症,也被称为 “转移性癌症”。
    • 为了训练模型,我们可以将第3阶段转换成0,第4阶段转换成1。这可能会让审查我们代码和数据的人感到困惑。我们将对 "阶段 "进行one-hot。-实际上你会看到,我们最终用0代表第3阶段,1代表第4阶段(见下一节)。

one-hot 特征的多重共线性

让我们看看当我们对“阶段”特征进行one-hot编码时会发生什么?

df_stage = pd.get_dummies(data=df,
               columns=['stage']
              )
df_stage[['stage_3','stage_4']]


你注意到“stage_3”和“stage_4”特征有什么不同?

考虑到stage只有stage_3和stage_4这两个可能的值,
如果你知道病人0(第0行)的stage_3的值为1,那么你可以说些什么关于该病人的stage_4特征的值?

  • 当stage_3为1时,stage_4必须为0;
  • 当stage_3为0时,stage_4必须为1。
    这意味着其中一个特征列实际上是多余的。我们应该删除这些特征中的一个,以避免多重共线性(其中一个特征可以预测另一个特征)。
    可以使用下面方法
df_stage_drop_first = df_stage.drop(columns='stage_3')

也可以直接在刚才的地方添加新的参数drop_first

df_stage = pd.get_dummies(data=df,
               columns=['stage'], drop_first=True,
              )
df_stage

pd.get_dummies函数有多个参数,下面列举其中几个常用的参数:

  • data:要进行编码的DataFrame或Series对象;
  • columns:指定要编码的列名,可以是单个列名或列名列表;
  • prefix:为生成的哑变量列添加指定的前缀;
  • prefix_sep:用于在前缀和列名之间添加分隔符的字符串;
  • dummy_na:指定是否在生成的哑变量中包含缺失值,默认为False;
  • drop_first:指定是否删除生成哑变量的第一列,以避免多重共线性,默认为False;
  • dtype:生成的哑变量的数据类型。

这些参数可以根据需要进行设置,以满足不同的数据分析和机器学习任务的需求。

Hazard function

风险函数的公式为:
λ ( t , x ) = λ 0 ( t ) e θ T X i \lambda(t, x) = \lambda_0(t)e^{\theta^T X_i} λ(t,x)=λ0(t)eθTXi
这样我们就有了变量 X i X_i Xi中的特征的系数 θ \theta θ
如果你有一个新的病人,我们可以预测他们的风险函数 λ ( t , x ) \lambda(t,x) λ(t,x)


文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

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

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

相关文章

Maven高级篇

分模块开发与设计 ssm_pojo拆分 新建模块拷贝原始项目中对应的相关内容到ssm_pojo模块中 实体类(User)配置文件(无) ssm_dao拆分 新建模块拷贝原始项目中对应的相关内容到ssm_dao模块中 数据层接口(UserDao&#x…

spring学习笔记(2)

目录 RESTful Web 服务是干啥用的? 这个是什么意思?“OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.” 构建一个RESTful Web服务 GB有多大 点击…

IBM 创新方案+SNP数据转型助一汽大众实现数据平稳、高效迁移

近日,IBM 采用基于SNP Bluefield技术迁移的IBM Rapid Move创新数据迁移方案, 成功为一汽-大众实施了企业运营数据系统从 ECC 到 S/4 的升级项目。该项目系统切换耗时仅三天,不仅助客户高效、平稳迁移了系统数据,升级了数据底座,还…

第六讲:“声音”写具体

爸爸又打呼了!“呼噜一呼噜一像一股巨浪腾空而起,以每秒八十米的速度向上冲刺,力图掀开天花板,掀翻整座住宅楼;“呼噜一一呼噜一-”,像一台轰鸣的坦克在穿行,床垫在抖动,吊灯在摇晃,墙灰在簌籁(…

【办公软件篇】Listary搜索神器清除搜索历史记录

【办公软件篇】Listary搜索神器清除搜索历史记录 装机必备搜索神器—【蘇小沐】 文章目录 【办公软件篇】Listary搜索神器清除搜索历史记录1.实验环境 (一)删除搜索历史记录总结 1.实验环境 官网地址:Listary Discussions 系统版本Windows…

chatgpt赋能Python-pycharm怎么添加库函数

PyCharm怎么添加库函数 作为一位拥有10年python编程经验的工程师,我可以告诉大家,PyCharm是一个非常优秀的Python集成开发环境,它可以帮助我们更加高效地编写Python代码。但是在使用PyCharm的时候,我们经常需要使用一些库函数&am…

Vue3——简易个人空间(下半部分)

书接上回: 好友列表页面实现: 根据提供的api从云端将10个用户读进来 根据提供的api获得如下的json格式的数据,里面有四个用户的信息。 这里使用ajax进行实现要先在项目中安装jquery,使用命令行安装 npm i jquery然后在用户列表页面要先引入jquery i…

数据结构——插入排序与希尔排序

🌇个人主页:_麦麦_ 📚今日名言:喜你成疾,药石无医。——《玫瑰与鹿》 一、前言 在本篇文章,我们将为小伙伴们进行排序概念的基本讲解并具体讲解其中的两种基础排序:插入排序和希尔排序&#xff…

BSQ格式数据转换为RSD缺省的BIP格式数据

李国春 RSD内部统一以BIP格式排列数据,并且文件格式(非TFS)数据倒放(North Down)。早期是为了和设备无关位图(DIB)一致节省一点处理时间。现在设备处理能力增强了这点时间已经无关紧要&#xf…

目标检测复盘 -- 1.mAP及其他评价指标

前言 为什么想单独做一个目标检测篇,主要是感觉自己是个半吊子,满瓶不响、半瓶晃荡,找工作的过程中,也被很多面试官问到哑口无言,基础真的不扎实,自己非常虚,想好好地、静下心来捋一下&#xf…

Linux环境搭建及问题解决方案

本文介绍了Linux环境搭建的过程以及遇到的问题和解决方案,并且介绍了常用的Linux命令. 一、Linux环境搭建 整体所需的环节 安装VMware安装Linux (这边我选的是Server版本)安装配置Samba(Samba是一种Linux和Windows之间进行文件共…

基础知识(王爽老师书第一章)

文章目录 基础知识1.1 引言1.2 机器语言1.2 引言汇编语言的产生1.3 汇编语言的组成1.4 存储器1.5 指令和数据1.6 存储单元1.7 CPU对存储器的读写1.8 地址总线1.9 数据总线1.10 控制总线小结检测点1.11.11 内存地址空间1.12 主板1.13 接口卡1.14 各类存储器芯片1.15 内存地址空间…

【Linux】在Ubuntu中下载jdk以及卸载oraclejdk

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

短视频矩阵系统源码/开发技术文档

短视频矩阵系统技术文档: 可以采用电子文档或者纸质文档的形式交付,具体取决于需求方的要求。电子文档可以通过电子邮件、远程指导交付云存储等方式进行传输、 短视频矩阵{seo}源码是指将抖音平台上的视频资源进行筛选、排序等操作,进而提升…

【AcWing刷题】蓝桥杯专题突破-动态规划-dp入门(17)

目录 写在前面: 题目:821. 跳台阶 - AcWing题库 题目描述: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 方法一:暴力搜索 代码…

chatgpt赋能Python-pandas_归一化

Pandas归一化是什么? 数据归一化是数据预处理中的一个重要步骤,它能够将不同范围的数值转化为相同的数值范围。Pandas是一种数据处理工具,因此它提供了许多函数来实现数据归一化。其中最常用的函数是Normalization。 Normalization函数的使…

树形结构数据扁平化js方法

最近在公司项目中遇到树形结构数据,在进行遍历查找指定的数据的时候一搬进行递归调用的查询,因为递归是效率很慢的方式,尤其是在数据量特别大的时候是及其浪费性能,所以我想了一个树形结构扁平化的方法,代码如下: /**** param {Array} arrs 树形数据* param {string} childs 树…

Java面向对象程序设计实验报告(实验五 接口的练习)

✨作者:命运之光 ✨专栏:Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) demo5类 Instrument类 Piano类 …

SpringSecurity入门

SpringSecurity 为什么要有SpringSecurity?SpringSecurity入门案例SpringSecurity基本原理SpringSecurity两个重要接口 SpringSecurity-web权限方案认证整合数据库 为什么要有SpringSecurity? 正如你可能知道的关于安全方面的两个主要区域是“认证”和“…

Linux:如何在虚拟机中装配JDK 与Tomcat服务器?【2023最新版】

Linux系统版本:centos 7.5 x64位 VMware版本: VMware Workstation Pro 16 Xshell工具版本:Xshell 7 (for home and free) Xftp工具版本:Xftp 7 (for home and free) 文章目录 一、如…