序:手写不方便 写到一半转电子平台。 关注点在于数据分析可视化分析
通过多个可视化工具及方案(可解释性评估)对特征进行评估,实现精准医疗(一病友一模型? 待议)。
numpy pandas matplotlib seaborn 数据分析常用库
pandas_profiling 用于生成数字探索性报告
graphriz pydotplus 用于决策树的可视化
pdpbox elis shap 机器学习可解释性分析工具
df.head() 前五行 .tail() 后五行 .colums()格列列名
.describe()统计值信息 .info()查看数据是否有缺失,数据类型
.isnull.sun() 各列缺失值统计
生成数据探索性分析EDA报告
P6
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import matplotlib.pyplot as plt
#matplotlib inline 表示绘制的图嵌入在单元格中 ?
import seaborn as sns #seaborn 可理解为在matplotlib的底层库上额外封装的一个库 本质相同
可视化内容参考代码
sns.heatmap? 一个问号查看文档 两个问号表示源代码
sns.heatmap(df.corr(),annot=True,cmap=plt.cm.plasma) #热力图
sns.pairplot(data = df)#各列之间的两两散点图,可得知各列之间的关系
sns.displot(df['age']) #单列特征数据分布直方图 概率密度曲线的离散和连续
plt.show()
df.age.unique()#不同元素的值输出
df.target.value_counts()#各元素出现的次数
sns.countplot(df['target'],data=df) #绘制柱状图
plt.show()
同样表示数据分布的箱型图及小提琴图:
这里的slope数据有种类型的数值
散点图:
红点在上半部分的分布较为集中,说明最大心率与患病之间存在联系
P7
参考类似代码文件 在附件 链接:Heart Disease UCI | Kaggle
将离散的定类和定序特征列转换为One-Hot独立热编码(仅一位为1 其余位置为0) 避免在模型中因数值的不同大小而出现问题
df = pd.get_dummies(df)# get_dummies 是利用pandas实现one hot encode的方式。
# 该函数会自动找到df中对应的object数据类型对象并将其转换为One-Hot类型
df.columns
df.to_csv('heart.csv', index=False)# 处理好的文件导出 不要索引
P8
不同条件下患病比例
有些特征值为0 说明未使用到这些特征
之前在数学建模中学到了这部分 (相关性分析)有些生疏了
P9
参照代码中使用了多个模型
混淆矩阵 TP FN FP TN 等平均指标 对接线上的两个象限具有代表性 值得关注(26TP 22FP)
ROC曲线:对角线为随机预测值,曲线愈发接近左上角 说明分类性能越好 (本人关注实现代码)
thresholds :阈值? 利用ROC 曲线寻找cut-off 值的标准很简单, ROC 曲线图中最靠近左上角的点就是cut-off 值(阈值)。
P13 可解释性分析
Permutaion Importance —— 排列重要性 - 知乎 (zhihu.com) 非常详细,简单来说,即打乱某一特征后检查是否出现性能波动,从而判断是否为有效特征。
要这么讲可解释性 也没啥啊
P14 PDP ICE图
这部分数学建模中也有类似的,即判断某一特征的重要性
8.1 Partial Dependence Plot (PDP) | Interpretable Machine Learning (christophm.github.io)???
The partial dependence plot (short PDP or PD plot) shows the marginal effect one or two features have on the predicted outcome of a machine learning model (J. H. Friedman 200130). A partial dependence plot can show whether the relationship between the target and a feature is linear, monotonic or more complex. For example, when applied to a linear regression model, partial dependence plots always show a linear relationship.
二维PDP图: 特征之间交互关系分析 ???
15 Shapely值
博弈论相关内容 机器学习中的 Shapley 值怎么理解? - 知乎 (zhihu.com)
撬动杠杆的次数,特征的重要性
17 Shapely值计算
import shap
shap.initjs() #舒适化javascript环境 绘图环境
shapely值为每个样本对预测为患病/不患病的贡献
这里与注意力机制异曲同工?
这里值越大,说明影响越大 例如在下图的值为x = 0时,其对应的shap值为正值,即对判别是否患病有帮助。
P19Shape决策图
预测错误样本分析
太高级 待消化?