机器学习入门:医学数据的数学编码

文摘   2024-08-05 23:10   北京  

数字数据

首先,我们考虑一个玩具数据集,它包含5名患者在入院时测量的收缩压值(以毫米汞柱为单位):

  • 患者1: 124,
  • 患者2: 227,
  • 患者3: 105,
  • 患者4: 160,
  • 患者5: 202.
在数学中,这种数据通常存储在一个叫做向量的对象中,它只是一个有序的数字列表:
向量可以是行向量(水平排列)或列向量(垂直排列)。我们可以通过转置操作在行向量和列向量之间转换。转置操作记作向量右上方的一个"T":
向量可以有任意数量的元素,这称为其维度。例如,向量x和y都是N维的列向量:
我们可以逐元素地将两个维度相同的向量相加或相减:
两个向量还可以通过内积(或点积)相乘,得到一个标量输出:
此外,向量可以乘以一个标量,这会将向量的每个元素都缩放:

向量的范数(或大小)是代表向量长度的一个数字,对于一个二维向量x,可以通过勾股定理计算其范数:

这也可以推广到任意维度的向量:

分类数据

深度学习中的数学函数需要严格的数值输入,但医疗数据有时是分类的。一个常见的方法是使用独热编码,将每个类别表示为一个只有一个位置为1,其余位置为0的向量。

例如,假设我们有三种COVID-19疫苗类别:Moderna、Pfizer和J&J。可以用如下方式编码:

  • Moderna: [1, 0, 0]

  • Pfizer: [0, 1, 0]

  • J&J: [0, 0, 1]

这种编码方式确保所有类别在几何上是等距的。

图像数据

数字图像可以是黑白图像、灰度图像或彩色图像。黑白图像由0和1构成的二维数组表示,其中0表示黑色,1表示白色。灰度图像允许每个像素存储0到255之间的整数值,代表256种灰度。

图像数据通常以矩阵形式存储,例如一个N×M的矩阵:


对于彩色图像,我们需要三维的张量来存储,这种张量有M行、N列和P层。例如,一个RGB图像可以表示为一个M×N×3的张量,其中每一层分别代表红色、绿色和蓝色。

时间序列数据

时间序列是随时间收集的一系列数值,可以表示为一系列时间-值对:
其中,t表示时间戳,x表示在每个时间点测量的数值。大多数时间序列数据是等间隔采集的,可以简化表示为:

常见的医疗时间序列数据包括心电图(ECG)和脑电图(EEG)等。

文本数据

医疗文本数据通常以电子健康记录(EHR)的形式生成,包括病人笔记、体检记录、用药记录、放射学和病理学报告等。处理文本数据通常需要大量的预处理和转换。
词袋模型(BoW)是一种常用的文本表示方法,它统计文档中每个词出现的次数。为了减少维度和计算复杂度,通常会移除停用词并将词还原为其词干形式。
例如,对于以下两句话:
  1. "Patient was sent to the ICU because of respiratory failure."
  2. "Patient's fever, respiratory rate, and respiratory alkalosis have improved."
经过预处理后可以表示为:
  1. "patient, send, ICU, because, respirate, fail"
  2. "patient, fever, respirate, rate, respirate, alkalosis, improve"

然后构建一个包含所有唯一词的向量,并统计每个词在文档中出现的次数。

基因组数据

DNA分子由四种碱基组成:腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。基因组数据可以看作是由这四个字母组成的长文本序列。
例如,一个长度为9的DNA序列:
AACTGTCAG
可以表示为一个4×9的独热编码矩阵:

Dr Leo
ENT医生的科研分享
 最新文章