30、利用机器学习算法识别睡眠阶段

利用机器学习算法识别睡眠阶段

1. 相关概念定义

在进行睡眠阶段的自动识别时,需要用到一些关键概念来评估机器学习算法的性能。
- 真正例(True Positives,tp) :属于正类(PC)且被正确分配到正类的项目数量。
- 真反例(True Negatives,tn) :属于负类(NC)且被正确分配到负类的项目数量。
- 假正例(False Positives,fp) :属于负类(NC)但被错误分配到正类的项目数量。
- 假反例(False Negatives,fn) :属于正类(PC)但被错误分配到负类的项目数量。

基于这些定义,F - 分数的计算公式如下:
[F\ score = \frac{tp}{tp + 0.5 \cdot (fp + fn)}]

对于包含多个类别的数据集,第 (i) 类的 F - 分数 (F_i) 的计算方法是将该类视为正类,其余所有类视为负类。然后,整个数据集的 F - 分数是所有 (F_i) 值的加权平均值,其中第 (i) 类的权重等于该类项目在数据集中所占的百分比。F - 分数的取值范围是 ([0.0 - 1.0]),值越高表示分类质量越好。

2. 数值结果

通过在测试集上运行多种机器学习算法,得到了如下的数值结果:
| 算法 | 成功运行次数 | 平均值 | 标准差 | 最大值 | 最小值 |
| — | — | — | — | — | — |
| BN | 1/1 | 0.756 | – | 0.756 | 0.756 |
| NB | 1/1 | 0.776 | – | 0.776 | 0.776 |
| Logistic | 0/1 | NaN | – | NaN | NaN |
| MLP | 1/25 | 0.825 | NaN | 0.825 | 0.825 |
| RBF | 0/25 | NaN | – | NaN | NaN |
| SVM | 0/25 | NaN | – | NaN | NaN |
| Wisard | 16/25 | 0.714 | 0.015 | 0.755 | 0.690 |
| Ibk | 1/1 | 0.733 | – | 0.733 | 0.733 |
| AdaBoostM1 | 0/25 | NaN | – | NaN | NaN |
| Bagging | 25/25 | 0.808 | 0.012 | 0.828 | 0.785 |
| OneR | 0/1 | NaN | – | NaN | NaN |
| Jrip | 25/25 | 0.789 | 0.010 | 0.816 | 0.770 |
| PART | 25/25 | 0.784 | 0.000 | 0.784 | 0.784 |
| RIDOR | 25/25 | 0.792 | 0.009 | 0.810 | 0.774 |
| J48 | 25/25 | 0.784 | 0.000 | 0.784 | 0.784 |
| Random Forest | 25/25 | 0.807 | 0.003 | 0.814 | 0.802 |
| REPTree | 25/25 | 0.791 | 0.011 | 0.815 | 0.771 |

从表格中可以看出:
- MLP 算法的平均性能在所有算法中表现最好,但它在 25 次运行中只有 1 次避免了产生 NaN 值,这意味着在大多数情况下,它无法为每个类别分配至少一个项目,导致无法计算有效的 F - 分数。
- 就平均性能而言,Bagging 算法紧随 MLP 之后,其次是 Random Forest。这两种算法在 25 次运行中都成功提供了有效的 F - 分数值,因此可以认为它们是平均表现最好的算法。
- 在单次最佳运行方面,Bagging 算法取得了最高的 F - 分数值,其次是 MLP(仅有的一次成功运行),然后是 JRip。
- 在最小 F - 分数值方面,MLP 在其唯一的一次运行中取得了最高值,其次是 Random Forest,Bagging 排名第三。

综合以上结果,Bagging 算法可以被认为是表现最佳且最可靠的算法,其次是 Random Forest。此外,在总共 305 次运行中,有 110 次运行不成功,占比约 36.06%。这表明即使是一些知名的算法,如径向基函数(RBF)、支持向量机(SVM)、AdaBoostM1 和多层感知器(MLP),在处理这个分类问题时也遇到了不小的困难。

3. 统计分析

为了探究不同算法的结果是否存在统计学差异,我们对执行 25 次且每次都能计算出 F - 分数值的算法进行了统计分析,这些算法包括 Bagging、JRip、PART、Ridor、J48、Random Forest 和 REPTree。

首先进行单因素方差分析(One - way ANOVA),假设 (H_0) 为所有算法的平均 F - 分数值在统计学上是等价的,即各算法平均 F - 分数值之间的差异足够小,不具有统计学意义。我们在显著性水平 (\alpha = 0.05) 下进行测试,该值表示在原假设 (H_0) 实际成立的情况下,错误拒绝原假设的最大允许概率。

ANOVA 测试结果如下:
| 自由度 | 平方和 | 均方 | F 统计量 | p 值 |
| — | — | — | — | — |
| 组间 | 6 | 0.0150983 | 0.00251638 | 38.249764 | 0.00000 |
| 组内 | 168 | 0.0110524 | 0.0000657882 | | |
| 总计 | 174 | 0.0261507 | 0.000150292 | | |

由于 p 值小于 (\alpha),我们拒绝原假设 (H_0)。这意味着从统计学角度来看,某些算法的平均 F - 分数值之间存在显著差异,即部分算法的平均 F - 分数值不相等。而且,由于 p 值为 0.00000,犯第一类错误(拒绝正确的 (H_0))的概率很小。

接下来,我们对这七种算法两两组合进行独立样本 t 检验,同样在显著性水平 (\alpha = 0.05) 下进行,原假设 (H_0) 为被测试的两个算法的平均 F - 分数值在统计学上是等价的。t 检验的完整结果如下表所示:
| | Bag | JRip | PART | Ridor | J48 | RF | REPT |
| — | — | — | — | — | — | — | — |
| Bag | – | < 0.0001 (Y) | < 0.0001 (Y) | < 0.0001 (Y) | < 0.0001 (Y) | 0.46152 (N) | < 0.0001 (Y) |
| JRip | – | – | 0.01595 (Y) | 0.12191 (N) | 0.01595 (Y) | < 0.0001 (Y) | 0.17851 (N) |
| PART | – | – | – | < 0.0001 (Y) | NaN (N) | < 0.0001 (Y) | 0.00068 (Y) |
| Ridor | – | – | – | – | < 0.0001 (Y) | < 0.0001 (Y) | 0.44462 (N) |
| J48 | – | – | – | – | – | < 0.0001 (Y) | 0.00068 (Y) |
| RF | – | – | – | – | – | – | < 0.0001 (Y) |
| REPT | – | – | – | – | – | – | – |

在表格中,每个单元格包含两个信息:一是 t 检验得到的 p 值,二是一个字母,用于表示通过 t 检验发现这两个算法的均值是否存在显著差异(Y 表示存在显著差异,N 表示不存在显著差异)。如果单元格中计算得到的 p 值小于 (\alpha = 0.05),则拒绝原假设 (H_0),表明这两个算法在统计学上存在显著差异,标记为 Y;否则标记为 N。

结果显示,对于 Bagging 算法,唯一不能拒绝统计等价假设的算法是 Random Forest,Random Forest 也是如此。这进一步证实了这两种分类器在统计上的优越性以及它们之间的统计等价性。此外,PART 和 J48 算法的单元格中包含 NaN,这是因为这两种算法在 25 次运行中获得的 F - 分数值相同,均为 0.784,这意味着它们在统计上的等价性可以被明确接受。

下面是统计分析的流程 mermaid 图:

graph LR
    A[选择算法] --> B[One - way ANOVA分析]
    B --> C{p 值 < α?}
    C -- 是 --> D[拒绝 H0]
    D --> E[两两 t 检验]
    C -- 否 --> F[接受 H0]
    E --> G{判断算法等价性}

综上所述,通过利用机器学习算法对心电图(ECG)传感器采集的信号进行处理,得到心率变异性(HRV)值,能够实现对睡眠阶段的自动识别。在众多机器学习算法中,Bagging 和 Random Forest 算法表现出色,且在统计学上具有等价性。然而,许多算法在处理这个分类问题时遇到了困难,无法正确识别低数量类别的项目。未来,我们计划将 Bagging 和/或 Random Forest 分类器集成到设备(如智能手机或平板电脑)中,先进行离线训练,然后在基于物联网的全自动监测电子健康系统中进行在线使用,实现对睡眠阶段的实时监测和医疗人员的及时通知。

利用机器学习算法识别睡眠阶段(续)

4. 总结与展望

在尝试自动识别被监测对象的不同睡眠阶段的过程中,我们发现利用机器学习能力,结合从放置在对象身上的心电图(ECG)传感器收集的信号,并对其进行适当处理以获得心率变异性(HRV)值,是一种可行的方法。我们使用了公开可用的真实世界睡眠心脏健康研究(SHHS)数据集,其中包含有关 ECG 信号和睡眠阶段的信息,来验证这一方法。

本次探索的主要创新点在于使用了大量不同的机器学习算法,并对它们的有效性进行了比较。我们以 F - 分数作为分类能力的评估参数,因为在处理高度不平衡的数据集时,F - 分数具有重要意义,而本次使用的数据集正是这种情况。

通过在 WEKA 工具中进行的实验,我们得出以下结论:
- 算法性能 :Bagging 算法被证明是表现最佳且最可靠的算法,紧随其后的是 Random Forest 算法。统计分析进一步证实了这两种算法在该数据集上的统计等价性。
- 算法问题 :许多算法在正确分类数据集项目时遇到了困难。在多次运行中,至少有一个类别没有被分配到任何项目,这意味着低数量类别的项目没有被识别出来。即使是一些广泛使用的算法,如径向基函数(RBF)、支持向量机(SVM)、AdaBoostM1 和多层感知器(MLP),也出现了这种不理想的行为。这表明本次面临的分类问题并非易事。

以下是不同算法性能的简单总结表格:
| 算法 | 平均性能表现 | 单次最佳运行表现 | 最小 F - 分数值表现 | 可靠性 |
| — | — | — | — | — |
| Bagging | 优 | 优 | 优 | 高 |
| Random Forest | 优 | 良 | 优 | 高 |
| MLP | 优(但可靠性低) | 良 | 优 | 低 |
| 其他部分算法 | 差 | 差 | 差 | 低 |

展望未来,我们有以下计划:
- 集成到设备 :将 Bagging 和/或 Random Forest 分类器添加到设备中,如智能手机或平板电脑。具体操作步骤如下:
1. 准备工作:确保设备具备足够的计算能力和存储空间,安装必要的开发环境和机器学习库。
2. 数据准备:将 SHHS 数据集进行预处理,包括数据清洗、特征提取等,以适应设备的处理能力。
3. 模型训练:在设备上使用预处理后的数据对 Bagging 和/或 Random Forest 分类器进行离线训练。可以使用交叉验证等方法来优化模型参数。
4. 模型部署:将训练好的模型部署到设备上,并进行测试和验证,确保其在设备上能够正常运行。
5. 在线使用:在基于物联网的全自动监测电子健康系统中,让设备实时收集 ECG 信号,处理数据得到 HRV 值,通过 Bagging/Random Forest 进行睡眠阶段识别,并及时通知医疗人员。

  • 持续优化 :不断改进算法和模型,以提高分类的准确性和可靠性。可以尝试调整算法的参数、使用更多的特征或采用更先进的机器学习技术。

下面是未来计划的流程 mermaid 图:

graph LR
    A[选择分类器] --> B[集成到设备]
    B --> C[离线训练]
    C --> D[模型部署]
    D --> E[在线使用]
    E --> F[持续优化]

总之,利用机器学习算法识别睡眠阶段是一个有前景的研究方向,但仍面临许多挑战。通过不断的研究和实践,我们有望提高睡眠阶段识别的准确性和可靠性,为医疗健康领域提供更有效的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值