利用SPSS、R、python建立简单的神经网络
李健民

李健民

某医学AI公司

擅长:临床研究设计和分析
已关注
关注
2020-08-17 来源:医咖会

之前我们介绍了人工智能和大数据的结合(详情请查看:写给医生的人工智能体验课(一):作为医生,怎么跟进人工智能不落伍?),深度学习的数学模型(详情请查看:写给医生的人工智能体验课(二):用比喻的方式形象讲解神经网络)。

该数据集来自医咖会之前的一篇SPSS教程(SPSS实例教程:二分类Logistic回归)。某呼吸内科医生拟探讨吸烟与肺癌发生之间的关系,开展了一项成组设计的病例对照研究。选择该科室内肺癌患者为病例组,选择医院内其它科室的非肺癌患者为对照组。通过查阅病历、问卷调查的方式收集了病例组和对照组的以下信息:性别、年龄、BMI、COPD病史和是否吸烟。

现在的任务是把344例的数据集拆分为训练集和测试集,建立一个简单的神经网络模型,看看模型的训练效果怎么样。

表1. 肺癌危险因素分析研究的变量与赋值

表2. 部分原始数据

步骤如下

1.选择分析—神经网络—多层感知器

2.变量窗口:要预测的结局变量放在因变量窗口,其他的预测变量根据自身类型放在因子或协变量窗口。连续型变量进入网络时,如果做标准化预处理可能会使模型效果更好。

3.分区窗口:一般是训练样本占70%,检验样本30%。这里软件的翻译可能存在错误,训练、检验、坚持其实分别对应:训练集、验证集、测试集。训练集用于训练模型,找出最佳的权重和偏置。验证集用以确定模型超参数,选出最优模型。测试集仅用于对训练好的最优函数进行性能评估。本案例不存在外部验证集,不需要设置,检验集就等同于测试集。

4.神经网络结构设置:我们参照上一课,隐藏层设置1层,共3个神经单元。SPSS只能设置两个隐藏层。隐藏层激活函数选择S型(sigmoid),因为输出是二分类的结果,选择softmax函数会更好。怎么设置网络隐藏层并不固定,更多的需要经验和反复尝试。