首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >预测疾病药物

预测疾病药物
EN

Data Science用户
提问于 2021-11-08 02:56:38
回答 4查看 118关注 0票数 2

我有一个格式的数据集:

代码语言:javascript
运行
复制
Keywords                                                         Disease/Drugs
bradycardia, insomnia, hypotension, hearinglos...                 NSAIDS Poisoning
vomiting, nausea, diarrhea, seizure, edema, an...                 NSAIDS Poisoning

pancreatitis, gi, symptoms, restlessness, leuk...                 Chronic abacavir use (Nucleoside Analog Revers..
ards, apnea, hepatotoxicity, dyspnea, pulmonar...                 Chronic stavudine and didanosine use (Nucleosi...

有许多数据,但它是以这种格式。

将上述数据转换为格式,爆炸,并根据,创建新行

代码语言:javascript
运行
复制
Keywords                          Disease/Drugs
bradycardia                        NSAIDS Poisoning
insomnia                           NSAIDS Poisoning

pancreatitis                       Chronic stavudine and didanosine use (Nucleosi...

现在,在对输入列Keywords进行编码之后,我使用DecisionTreeClassifier创建了预测系统。

此外,我还发现了十大预测:

代码语言:javascript
运行
复制
p_probability = model.predict_proba([[t]])
best_n = np.argsort(p_probability, axis=1)[:,-10:]   

当我输入像bradycardia这样的单一症状时,它显示了10个最好的预测。

另外,当我输入一个5种症状的列表时,它会显示出50个最好的预测。

由于一份症状清单可能有常见的疾病/药物,我想创建一个系统,当输入任何数量的症状列表时,只显示10个最佳预测。

EN

回答 4

Data Science用户

回答已采纳

发布于 2021-11-14 12:08:14

我知道你有疾病的关键词和给那个病人的药物。考虑到问题的质量,我真诚地建议你不要做任何ML,而只是做一些基本的统计。

如果你想看bradicardia的前10名最佳药物,最好的方法可能是做一次频率计数。这样你就可以找到治疗bradicardia的最常用的药物了。

给出一份症状清单,找出以前的症状,然后关闭过去提供的药物。就像查询一样,如果一个人表现出与您的新病人相同的症状,如果您发现过去的查询具有相同的症状,则可能需要推荐相同的症状。然后将下一个关闭查询排序到查询。

这将没有ML。使用ML时,您需要对数据集进行适当的清理,并构建一个排名系统。首先,我将推荐您使用逐点排序系统

尽管如此,我仍然认为你应该先尝试没有ML。

票数 1
EN

Data Science用户

发布于 2021-11-15 03:22:42

你应该以不同的方式准备你的训练数据。通过将关键字在不同的行中爆炸,您将丢失有关疾病/药物症状相关性的信息。

例如:恶心+失眠症->睡眠障碍患者。而1例恶心+腹泻->食物中毒患者。

给定您的数据集,您必须对关键字进行一次热编码,并将它们用作训练模型的功能。

然后给出一个新的病人信息:

你把它编码为:

用你的模型来预测它,和以前一样。

代码语言:javascript
运行
复制
p_probability = model.predict_proba([[t]])
best_n = np.argsort(p_probability, axis=1)[:,-10:] 

通过这种方法:

  1. 您可以将症状列表输入到模型中。
  2. 每次预测都得到前10名的结果。
票数 0
EN

Data Science用户

发布于 2021-11-16 14:59:13

我想这是一个特殊的NLP问题,您基本上处理的是将x“转换”为y的问题。因此,您可以查看“序列到序列”学习(神经翻译模型),其中您试图“翻译”一个关键字或一组关键字为药物:

bradycardia -> NSAIDS Poisoning

Keras/Tensorflow有许多有用的来源,例如:

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/103922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档