全同态加密如何应用于逻辑回归心脏病预测模型?

摘要:本文对TenSeal库的官方Tutorial 1内容进行了翻译,并对其中部分内容做了更为详细介绍,理解该示例后,可初步的掌握全同态库在线性及逻辑回归中的应用!
1 背景介绍 文章基于TenSEAL开源项目的Tutorial 1内容进行,可以直接打开最后参考1链接查看原文。主要内容是用逻辑回归算法,根据患者的身体数据,预测他未来10年是否有心脏病风险。 预测目标:10 年内患冠心病(CHD)的风险; 输出结果:是(1)或否(0)→ 二分类问题; 使用模型:逻辑回归(Logistic Regression); 1.1 数据集 该数据集可在Kaggle网站上公开获取,来源于美国马萨诸塞州弗雷明汉镇居民的一项持续进行的心血管研究。研究分类目标是预测患者在未来10年内是否存在冠心病(CHD)风险。数据集包含患者信息,共有4000多条记录和16个属性。 (1)人口统计学(Demographic) 性别(Sex):男性或女性(分类变量) 年龄(Age):患者年龄(连续变量——虽然记录为整数,但年龄本质上是连续的) 教育(Education):教育类型分为4类 (2)行为因素(Behavioral) 当前是否吸烟(Current Smoker):当前是否为吸烟者(分类变量) 每日吸烟量(Cigs Per Day):每天平均吸烟数量(可视为连续变量,因为可以是任意数量) (3)医学史(Medical - history) 是否服用降压药(BP Meds):是否服用降压药(分类变量) 是否曾中风(Prevalent Stroke):是否有中风史(分类变量) 是否高血压(Prevalent Hyp):是否患有高血压(分类变量) 是否糖尿病(Diabetes):是否患有糖尿病(分类变量) (4)当前医学指标(Medical - current) 总胆固醇(Tot Chol):连续变量 收缩压(Sys BP):连续变量 舒张压(Dia BP):连续变量 体重指数(BMI):连续变量 心率(Heart Rate):连续变量(虽然本质离散,但通常视为连续变量) 血糖(Glucose):连续变量 (5)预测变量(目标变量) 10 年冠心病风险(CHD):二分类变量(1 表示“是”,0 表示“否”)。 1.2 数据处理 在原文中提到的P-value(P值)指的是显著性水平,显著性水平是假设检验中的一个概念,是指当原假设为正确时人们却把它拒绝了的概率或风险,这里它用于判断某个特征(如“抽烟”)对结果的影响是否是真实存在的,还是仅仅因为随机巧合。显著性水平是假设检验中的一个概念,是指当原假设为正确时人们却把它拒绝了的概率或风险。它是公认的小概率事件的概率值,必须在每一次统计检验之前确定,通常取α=0.05或α=0.01。在该实例中P值量化了“虚假关联”的风险,即P值<α则认为风险低,要把特征收入预测模型里,P值>α风险高,这个特征可能是“骗子”,可以把它丢弃。文中纸用向后剔除法(Backward Elimination)剔除P值>0.05的特征,最后只保留P值小于0.05的有效特征,如性别:男性患病几率比女性高78.8%,年龄:年龄每增加1岁,风险增加 7%等。 2 理论基础 2.1 线性回归(Linear Regression) 1 概念 首先看下线性、非线性和回归的概念: 线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。 非线性:两个变量之间的关系不是一次函数关系的——图象不是直线,叫做非线性。 回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。 所以线性回归就是:用一条直线(或超平面)去拟合数据,通过已知的输入 X,预测一个连续的输出 Y。 2 解决的问题 对大量的观测数据进行处理,从而得到比较符合事物内部规律的数学表达式。也就是说寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。解决的就是通过已知的数据得到未知的结果,例如:对房价的预测、判断信用评价、电影票房预估等。 3 模型及公式 最简单的线性回归可以用公式:y = wx + b表示,这里y是预测结果,x是输入特征,w是权重(斜率),b是偏置(截距),这就是一条直线,线性回归的任务就是:找到最好的w和b,让这条直线最贴合数据。
阅读全文