训练数据处理方法与电子装置
文献发布时间:2023-06-19 12:21:13
技术领域
本发明涉及一种训练数据处理方法与电子装置。
背景技术
失智症等疾病,在确诊的数年或更早以前发生的其他疾病,可能是失智症的前兆。因此,如何利用疾病的历史数据预测是否有可能罹患失智症,是本领域技术人员所欲解决的问题之一。
发明内容
本发明提供一种训练数据处理方法与电子装置,可以让所建立的神经网络模型的预测效果较传统机器学习方法佳。
本发明提出一种训练数据处理方法,用于一电子装置,所述方法包括:获得包括一用户所罹患的至少一第一疾病的一病史数据;根据一目标疾病设置多个疾病种类;设置一时间区间;从所述病史数据中获得位于所述时间区间内的至少一第二疾病;根据所述疾病种类对所述第二疾病执行一前处理操作以获得一处理后数据;以及将所述处理后数据输入至一神经网络以训练所述神经网络。
本发明提出一种电子装置,包括:输入电路与处理器。所述输入电路获得包括一用户所罹患的至少一第一疾病的一病史数据。所述处理器根据一目标疾病设置多个疾病种类。所述处理器设置一时间区间。所述处理器从所述病史数据中获得位于所述时间区间内的至少一第二疾病。所述处理器根据所述疾病种类对所述第二疾病执行一前处理操作以获得一处理后数据。所述处理器将所述处理后数据输入至一神经网络以训练所述神经网络。
基于上述,本发明的训练数据处理方法与电子装置用以将用以训练模型的数据进行前处理,使得使用处理后的数据所建立的神经网络模型的预测效果较传统机器学习方法佳,并且让所建立的模型的应用情境符合真实使用情境。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1是依照本发明的一实施例的训练数据处理方法的示意图;
图2A与图2B是依照本发明的一实施例所示出的时间区间的示意图;
图3是依照本发明的一实施例所示出的词频信息的产生的示意图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
本发明的模型训练方法适用于一电子装置(未示出)。电子装置包括输入电路(未示出)与处理器(未示出)。输入电路耦接至处理器。输入电路例如是用于从电子装置外部或其他来源取得相关数据的输入接口或电路,在此并不设限。
处理器可以是中央处理单元(Central Processing Unit,CPU),或是其他可程序化的一般用途或特殊用途的微处理器(Microprocessor)、数字信号处理器(DigitalSignal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application SpecificIntegrated Circuit,ASIC)或其他类似元件或上述元件的组合。
此外,电子装置还可以包括存储电路(未示出)。存储电路可以是任何型态的固定或可移动随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、闪存(flash memory)或类似元件或上述元件的组合。
在本范例实施例中,电子装置的存储电路中储存有多个代码段,在上述代码段被安装后,会由处理器来执行。例如,存储电路中包括多个模块,通过这些模块来分别执行应用于电子装置的各个运作,其中各模块是由一或多个代码段所组成。然而本发明不限于此,电子装置的各个运作也可以是使用其他硬件形式的方式来实现。
图1是依照本发明的一实施例的训练数据处理方法的示意图。特别是,使用本发明所训练出的模型(或神经网络)可以用以预测一受测者是否会罹患一目标疾病或罹患此目标疾病的机率。
详细来说,请参照图1,首先,输入电路会获得包括一用户所罹患的疾病(亦称为,第一疾病)的病史数据(步骤S101)。之后,处理器会根据目标疾病设置多个疾病种类(步骤S103)。以下以目标疾病为失智症进行说明,但本发明并不用于限定目标疾病为何。
更详细来说,处理器会将多种预设疾病转换成多种类别数据(或多个种类)。处理器会依据欲预测的目标疾病,选取医学领域中相关程度较高并且数量适中的疾病所对应的疾病种类。例如,处理器可以依据欲预测的目标疾病从前述多种类别数据进行筛选(例如,删除或加入某些疾病)以得出步骤S103最后使用的疾病种类。须注意的是,当疾病种类的数量太小时,疾病信息会不足以预测目标疾病;而当疾病种类的数量太大时则是会让噪声变多,使得预测准确率反而降低。
举例来说,假设目标疾病为失智症,处理器可以选择CCS单阶诊断(CCS singlelevel diagnoses)疾病分类,其中共有285种疾病。处理器可以在步骤S103中设置此258种疾病所对应的疾病种类。
在步骤S101后,处理器会设置一时间区间(步骤S105),并且从病史数据中获得位于前述时间区间内的第二疾病(步骤S107)。处理器会根据前述的疾病种类对第二疾病执行前处理操作以获得处理后数据(步骤S109)。最后,处理器会将处理后数据输入至神经网络以训练此神经网络(步骤S111)。
举例来说,图2A与图2B是依照本发明的一实施例所示出的时间区间的示意图。须说明的是,在步骤S101所取得病史数据所属的用户可能是罹患目标疾病或未罹患目标疾病。而针对此两种不同的用户,可以使用不同的方式来获得时间区间中的第二疾病。
举例来说,请参照图2A,图2A是描述如何定义时间区间以使用此时间区间从罹患目标疾病的用户的病史数据中取得第二疾病的范例。如图2A所示,时间点t0例如是用户罹患(或第一次被诊断出)目标疾病的时间点,时间点t1(亦称为,第一时间点)距离时间点t0为Z年(即,时间点t1为时间点t0的Z年前),且时间点t2(亦称为,第二时间点)距离时间点t1为X年(即,时间点t2为时间点t1的X年前),Z与X为正数,此设计可因应实际情境需求中,时间单位可能是数年或数个月等。而图2A中用以取得第二疾病的时间区间是介于时间点t1以及时间点t2之间。
此外,请参照图2B,图2B是描述如何定义时间区间以使用此时间区间从未罹患目标疾病的用户的病史数据中取得第二疾病的范例。如图2B所示,时间点k例如是获得用户的病史数据的时间点,时间点t3(亦称为,第三时间点)距离时间点k为Z年(即,时间点t3为时间点k的Z年前),且时间点t4(亦称为,第四时间点)距离时间点t3为X年(即,时间点t4为时间点t3的X年前),Z与X为正数,此设计可因应实际情境需求中,时间单位可能是数年或数个月等。而图2B中用以取得第二疾病的时间区间是介于时间点t3以及时间点t4之间。然而须注意的是,在其他实施例中,时间点t3可以是早于时间点k的其他任意时间点。
须说明的是,上述时间区间的定义方式的意义在于若观察起点(例如,时间点t1)太早,罹患目标疾病的用户可能身体状况差异尚未出现,病史无法用以建模预测;而观察起点(例如,时间点t1)太晚的话,即使成功预测,距离罹患目标疾病已近,亦无法达到事先预防目标疾病的功效。在本实施例中,由于目标疾病为失智症,处理器可以将前述的Z值设定为5,并将前述的X值设定为1。也就是说,以图2A的范例为例,时间区间是位于罹患失智症的时间点t0的前五年至前六年之间。
在此说明如何从病史数据中获得位于时间区间内的第二疾病。在此可以分为两种方式:(1)疾病序列;以及(2)词频信息等两种不同的方式,以下分别进行说明。
[疾病序列]
疾病序列的产生方式可以有两种。在一实施例中,处理器会根据病史数据中的每一疾病(即,第一疾病)的最早发生时间,从此些疾病中找出位于时间区间内的疾病。并从时间区间内的疾病找出由至少一疾病(亦称为,第二疾病)所组成的疾病序列。特别是,在此疾病序列中的第二疾病是依照最早发生时间排序,第二疾病的数量小于或等于一预设数量,且第二疾病中的每一疾病仅出现一次。
举例来说,假设预设数量为5,并且假设某人病史中在时间区间内所看诊(或患病)的先后“病2→病2→病1→病2→病4→病3→病3”。若使用最早发生时间排序则可以得到“病2→病1→病4→病3”的疾病序列。而在此序列中,疾病的数量(即,4)会小于预设数量(即,5)。而且在此疾病序列中,每一疾病仅出现一次。
第二种方式,处理器会根据病史数据中每一疾病的所有发生时间,从此些疾病中找出位于时间区间内的疾病,并且依照发生时间先后进行排序。此方式产生的疾病序列中的疾病可能重复。
此外,在一实施例中,处理器会删除病史数据中部分疾病(亦称为,第三疾病)以获得由多个疾病(例如,前述的第二疾病)所组成的疾病序列。其中,第三疾病的发生时间是早于疾病序列中的疾病的发生时间。在疾病序列中的疾病是依照最早发生时间排序,且疾病序列中疾病的数量是小于或等于一预设数量。
举例来说,假设预设数量为5,并且假设采取前述第二种方式,某人病史中在时间区间内所看诊(或患病)的先后为“病2→病2→病1→病2→病4→病3→病3”,由于病史数据中的疾病(或看诊)数量(即,7)大于预设数量,处理器例如可以删除病史数据中较早出现的疾病“病2→病2”而得到“病1→病2→病4→病3→病3”的疾病序列。
在经由前述方式获得时间区间内的第二疾病后,可以在步骤S109中根据疾病种类将疾病序列中的第二疾病编码为一维或二维的编码后数据(或称为,向量),并将所述编码后数据作为处理后数据,并在步骤S111中将此处理后数据输入至神经网络以训练神经网络。
在此以将第二疾病编码为一维的编码后数据为例进行说明。假设疾病类别总共有5种,且“病1”、“病2”、“病3”、“病4”与“病5”会被分别定义为“[1,0,0,0,0]”、“[0,1,0,0,0]”、“[0,0,1,0,0]”、“[0,0,0,1,0]”与“[0,0,0,0,1]”。假设经由前述方式所获得的疾病序列为“病2→病1→病4→病3”,则处理器可以将疾病序列转换为:“[0,1,0,0,0]→[1,0,0,0,0]→[0,0,0,1,0]→[0,0,1,0,0]”,并将进而将而产生一维数据“[0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0]”。之后,可以将此一维数据输入至以一维数据作为输入的神经网络。
在此以将第二疾病编码为二维的编码后数据为例进行说明。假设疾病类别总共有5种,且“病1”、“病2”、“病3”、“病4”与“病5”会被分别定义为“[1,0,0,0,0]”、“[0,1,0,0,0]”、“[0,0,1,0,0]”、“[0,0,0,1,0]”与“[0,0,0,0,1]”。假设经由前述方式所获得的疾病序列为“病2→病1→病4→病3”,则处理器可以将疾病序列转换为:“[0,1,0,0,0]→[1,0,0,0,0]→[0,0,0,1,0]→[0,0,1,0,0]”,并将进而将而产生如下述矩阵的二维数据:
之后,可以将此二维数据输入至以二维数据作为输入的神经网络(例如,LSTM)。
特别是,由于上述的一维或二维数据是依照时间先后顺序的方式来编码各个疾病,而在编码后的数据中仍会保留各个疾病间的先后关系。
而在训练神经网络的过程中,例如可以使用Sentence embedding的方法,设置转换后向量长度M,与神经网络(例如,LSTM)一起训练。
[词频信息]
图3是依照本发明的一实施例所示出的词频信息的产生的示意图。
请参照图3,在一实施例中,处理器可以直接取病史数据DD中位于前述时间区间内的疾病D1~D2作为构成前述疾病序列的第二疾病。处理器会对此些疾病D1~D2加权后(在此不限权重),将此些疾病视为字词(word)并使用TF-IDF算法分别转换为词频信息E1~E2。
须说明的是,本发明并不用于限定如何对疾病加权。在一实施例中,可以基于是否曾经看过诊进行加权。例如,看诊过的疾病的权重可以被设为1,否则=0。
在另一实施例中,可以基于看诊过的次数进行加权。假设某人病史为:“病2→病2→病1→病2→病4→病3→病3”,则此人病1的权重值为1,病2的权重值为3,病3的权重值为2,病4的权重值为1。
在另一实施例中,可以基于其他病史信息进行加权。其他病史数据如:个别疾病用药量、手术信息、标志慢性病、其他处置等等,在此并不作限制。
在另一实施例中,也可以使用疾病用药量进行加权。假设某甲、乙、丙三人曾看过糖尿病,用药量分别为2单位、1单位、3单位,则三人的糖尿病权重分别为2、1、3。
在另一实施例中,也可以先以其他机器学习方法排序疾病重要性,再以此重要性进行加权。
在分别将加权后的第二疾病转换为词频信息后,处理器会将词频信息作为处理后数据,并将此处理后数据输入至神经网络以训练神经网络。特别是,词频信息的格式通常符合一般机器学习输入数据格式,故可直接输入神经网络进行训练。
在经由上述方式将神经网络训练完成后,当神经网络收到一受测者的病史数据时,可以通过此神经网络判断是否会罹患目标疾病(例如,失智症)或罹患目标疾病的机率。
综上所述,本发明的训练数据处理方法与电子装置用以将用以训练模型的数据进行前处理,使得使用处理后的数据所建立的神经网络模型的预测效果较传统机器学习方法佳,并且让所建立的模型的应用情境符合真实使用情境。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 训练数据处理方法与电子装置
- 话音数据处理方法以及支持该话音数据处理方法的电子装置