36、医疗数据分类中处理不平衡问题的机器学习方法

医疗数据分类中处理不平衡问题的机器学习方法

1. Repeated Edited Nearest Neighbours (RENN) 算法

RENN 是 ENN 算法的扩展,是一种迭代的欠采样技术。它多次重复执行 ENN 算法以移除更多数据,直至无法再移除数据为止。具体操作是先对数据集应用 ENN 算法,移除不属于多数类的样本,然后多次重复该过程。这样做有助于改善数据集的平衡性,降低对多数类过拟合的风险。

2. 性能评估

2.1 所用数据集

实验使用了四个公开的医疗相关数据集,这些数据集在规模和类别比例上差异较大,具有不同程度的不平衡比率(IR)。具体如下:
| 数据集 | 多数类 | 少数类 | 不平衡比率 | 特征数量 |
| — | — | — | — | — |
| 贫血数据集 | 380 | 113 | 3.36 | 43 |
| 糖尿病数据集 | 500 | 268 | 1.87 | 9 |
| 肺癌数据集 | 238 | 38 | 6.26 | 16 |
| 肥胖数据集 | 525 | 146 | 3.60 | 43 |

  • 贫血数据集 :从 2011/12 年南非全国健康与营养检查调查(SANHANES)中提取,主要用于根据一组特征判断受访者是否患有贫血。
  • 糖尿病数据集 :包含至少 21 岁且有皮马印第安血统女性的糖尿病相关记录和关键参数,目标是诊断患者是否患有糖尿病。
  • 肺癌数据集 :是广泛使用的 Kaggle 数据,格式为 CSV,有 309 行 16 列,包含定量和定性变量。
  • 肥胖数据集 :同样来自 SANHANES 调查,用于根据特征判断受访者是否超重。

2.2 所用指标

为避免使用准确率指标评估不平衡数据集时出现的问题,采用了六个指标来评估数据集的不平衡性和机器学习模型在重采样技术上的性能:
- 不平衡比率(IR) :对于二元分类数据集,$IR = \frac{#Instances_{majority}}{#Instances_{minority}}$。IR 值为 1 表示数据集平衡,大于 1 表示数据不平衡。
- 准确率(Accuracy) :$Accuracy = \frac{Correct_predictions}{All_predictions}$,总结整个模型的表现。
- 平衡准确率(Balanced Accuracy) :$Balanced\ accuracy = \frac{TPR + TNR}{2}$,是灵敏度(召回率或真阳性率)和特异度(真阴性率)的平均值,能公平评估模型性能,范围从 0 到 1,1 为最佳。
- 受试者工作特征曲线下面积(AUC - ROC) :考虑了真阳性率和假阳性率,能清晰显示模型区分不同类别的能力。
- F1 分数(F1 Score) :$F1_score = 2 \times \frac{Precision \times recall}{Precision + recall}$,是精确率和召回率的调和平均值,适用于评估少数类为正类的不平衡数据分类问题。
- 马修斯相关系数(MCC) :$MCC = \frac{(TP \times TN) - (FP \times FN)}{\sqrt{(TP + FP) (TP + FN) (TN + FP) (TN + FN)}}$,适用于多数类可能占主导的不平衡数据集,取值范围从 -1 到 1,越远离 0 越好。

2.3 机器学习算法

使用了以下几种知名的机器学习算法来比较在健康数据集上使用重采样技术前后的分类器性能:
- 逻辑回归(Logistic Regression) :用于二元分类任务的监督学习算法,使用逻辑函数建模输入样本属于特定类别的概率,本身不处理类别不平衡问题。
- 伯努利朴素贝叶斯(Bernoulli Naïve Bayes) :专门为二元分类任务设计的朴素贝叶斯算法变体,假设特征在给定类别标签下条件独立,使用贝叶斯定理估计类别概率。
- 支持向量机(Support Vector Machine,SVM) :有效的二元和多类分类技术,在处理样本少、特征多的数据集时特别有效。

2.4 后续步骤

为全面了解不平衡数据问题,首先对数据集进行探索,然后对部分数据集进行必要的预处理,如对分类变量进行编码和对缺失值进行插补。接着,按照 80:20 的比例将数据划分为训练集和测试集,由于数据集不平衡,采用基于标签的分层抽样进行划分。具体划分后的数据分布如下:
| 数据集 | 划分 | 多数类 | 少数类 | 不平衡比率 |
| — | — | — | — | — |
| 贫血数据集 | 训练集 | 304 | 90 | 3.38 |
| | 测试集 | 76 | 23 | 3.30 |
| 糖尿病数据集 | 训练集 | 400 | 214 | 1.87 |
| | 测试集 | 100 | 54 | 1.85 |
| 肺癌数据集 | 训练集 | 190 | 30 | 6.33 |
| | 测试集 | 48 | 8 | 6.00 |
| 肥胖数据集 | 训练集 | 419 | 117 | 3.58 |
| | 测试集 | 106 | 29 | 3.66 |

整个数据处理流程可以用以下 mermaid 流程图表示:

graph LR
    A[探索数据集] --> B[数据预处理]
    B --> C[数据划分(80:20)]
    C --> D[分层抽样]

3. 结果与讨论

3.1 重采样技术的不平衡比率

对五个不平衡的健康数据集应用不同的重采样技术,结果显示,过采样和欠采样技术都能将不平衡比率调整为 1。具体如下表所示:
| 重采样技术 | 贫血 | 糖尿病 | 肺癌 | 肥胖 |
| — | — | — | — | — |
| 过采样 - SMOTE | 1.0 | 1.0 | 1.0 | 1.0 |
| 过采样 - 随机过采样 | 1.0 | 1.0 | 1.0 | 1.0 |
| 过采样 - ADASYN | 1.0 | 1.0 | 1.0 | 1.0 |
| 过采样 - Borderline - SMOTE | 1.0 | 1.0 | 1.0 | 1.0 |
| 过采样 - Borderline - SMOTE SVM | 1.0 | 1.0 | 1.0 | 1.0 |
| 欠采样 - NearMiss | 1.0 | 1.0 | 1.0 | 1.0 |
| 欠采样 - 随机欠采样 | 1.0 | 1.0 | 1.0 | 1.0 |
| 欠采样 - ENN | 1.0 | 1.0 | 1.0 | 1.0 |
| 欠采样 - RENN | 1.0 | 1.0 | 1.0 | 1.0 |
| 欠采样 - CNN | 1.0 | 1.0 | 1.0 | 1.0 |

3.2 重采样前机器学习算法的性能评估

在对训练数据集进行重采样之前,对机器学习算法在测试数据集上的性能进行了评估,结果如下:
| 数据集 | 分类器指标 | 逻辑回归 | SVM | 伯努利朴素贝叶斯 |
| — | — | — | — | — |
| 肺癌数据集 | 准确率 | 0.911 | 0.857 | 0.857 |
| | 平衡准确率 | 0.740 | 0.500 | 0.500 |
| | AUC - ROC | 0.948 | 0.956 | 0.406 |
| | F1 分数 | 0.949 | 0.923 | 0.923 |
| | MCC | 0.588 | 0.000 | 0.000 |
| 贫血数据集 | 准确率 | 0.808 | 0.768 | 0.768 |
| | 平衡准确率 | 0.678 | 0.500 | 0.500 |
| | AUC - ROC | 0.847 | 0.832 | 0.523 |
| | F1 分数 | 0.513 | 0.000 | 0.000 |
| | MCC | 0.408 | 0.000 | 0.000 |
| 糖尿病数据集 | 准确率 | 0.714 | 0.721 | 0.649 |
| | 平衡准确率 | 0.669 | 0.653 | 0.521 |
| | AUC - ROC | 0.824 | 0.784 | 0.536 |
| | F1 分数 | 0.560 | 0.517 | 0.156 |
| | MCC | 0.353 | 0.348 | 0.082 |
| 肥胖数据集 | 准确率 | 0.778 | 0.785 | 0.785 |
| | 平衡准确率 | 0.520 | 0.500 | 0.500 |
| | AUC - ROC | 0.690 | 0.580 | 0.500 |
| | F1 分数 | 0.118 | 0.000 | 0.000 |
| | MCC | 0.088 | 0.000 | 0.000 |

从这些结果可以看出,平衡准确率在大多数数据集上约为 0.5,表明性能不太理想。F1 分数和 MCC 出现较多零值,可能意味着分类器无法识别出单个真阳性或真阴性样本。逻辑回归模型在几乎所有数据集上的表现都优于其他模型。

3.3 过采样方法后分类器的性能评估

过采样方法通过向特征空间添加更多数据来平衡多数类和少数类,但可能导致数据重复和模型过拟合。这里讨论了随机过采样器和 ADASYN 过采样技术的结果。

3.3.1 随机过采样器

随机过采样器在多个指标上取得了较好的结果,提高了所有数据集的平衡准确率和 MCC。虽然对某些指标的改善不显著,但整体表现良好。逻辑回归在各个数据集的各项性能指标上平均表现最佳。具体结果如下:
| 数据集 | 分类器指标 | 逻辑回归 | SVM | 伯努利朴素贝叶斯 |
| — | — | — | — | — |
| 肺癌数据集 | 准确率 | 0.875 | 0.339 | 0.429 |
| | 平衡准确率 | 0.927 | 0.510 | 0.406 |
| | AUC - ROC | 0.964 | 0.685 | 0.406 |
| | F1 分数 | 0.921 | 0.413 | 0.568 |
| | MCC | 0.675 | 0.016 | -0.132 |
| 贫血数据集 | 准确率 | 0.747 | 0.616 | 0.455 |
| | 平衡准确率 | 0.760 | 0.568 | 0.523 |
| | AUC - ROC | 0.812 | 0.668 | 0.523 |
| | F1 分数 | 0.590 | 0.367 | 0.357 |
| | MCC | 0.451 | 0.119 | 0.041 |
| 糖尿病数据集 | 准确率 | 0.734 | 0.701 | 0.578 |
| | 平衡准确率 | 0.727 | 0.685 | 0.539 |
| | AUC - ROC | 0.823 | 0.783 | 0.547 |
| | F1 分数 | 0.650 | 0.596 | 0.404 |
| | MCC | 0.440 | 0.362 | 0.077 |
| 肥胖数据集 | 准确率 | 0.667 | 0.607 | 0.785 |
| | 平衡准确率 | 0.688 | 0.612 | 0.500 |
| | AUC - ROC | 0.724 | 0.688 | 0.500 |
| | F1 分数 | 0.483 | 0.404 | 0.000 |
| | MCC | 0.311 | 0.186 | 0.000 |

3.3.2 ADASYN

ADASYN 也是一种优秀的平衡数据类别的方法,但在许多指标上的结果不如随机过采样器。例如,在肺癌数据集上,ADASYN 的平衡准确率为 0.802,而随机过采样器为 0.927,未重采样时为 0.740。这表明 ADASYN 是一种不错的过采样技术,但可能不是最佳选择。具体结果如下:
| 数据集 | 分类器指标 | 逻辑回归 | SVM | 伯努利朴素贝叶斯 |
| — | — | — | — | — |
| 肺癌数据集 | 准确率 | 0.929 | 0.393 | 0.429 |
| | 平衡准确率 | 0.802 | 0.646 | 0.406 |
| | AUC - ROC | 0.953 | 0.701 | 0.406 |
| | F1 分数 | 0.959 | 0.452 | 0.568 |
| | MCC | 0.684 | 0.236 | -0.132 |
| 贫血数据集 | 准确率 | 0.758 | 0.626 | 0.545 |
| | 平衡准确率 | 0.751 | 0.575 | 0.477 |
| | AUC - ROC | 0.778 | 0.674 | 0.477 |
| | F1 分数 | 0.586 | 0.373 | 0.262 |
| | MCC | 0.444 | 0.131 | -0.041 |
| 糖尿病数据集 | 准确率 | 0.747 | 0.688 | 0.610 |
| | 平衡准确率 | 0.750 | 0.679 | 0.551 |
| | AUC - ROC | 0.826 | 0.780 | 0.594 |
| | F1 分数 | 0.678 | 0.593 | 0.388 |
| | MCC | 0.481 | 0.347 | 0.108 |
| 肥胖数据集 | 准确率 | 0.667 | 0.667 | 0.215 |
| | 平衡准确率 | 0.587 | 0.587 | 0.500 |
| | AUC - ROC | 0.656 | 0.635 | 0.500 |
| | F1 分数 | 0.366 | 0.366 | 0.354 |
| | MCC | 0.155 | 0.155 | 0.000 |

3.4 欠采样方法后分类器的性能评估

欠采样的核心思想是将多数类样本数量减少到与少数类样本数量相当的水平,从而实现数据的平衡。在众多欠采样方法中,RENN、ENN 和 CNN 的表现相近,且相对随机欠采样和 NearMiss 方法更优。因此,这里仅展示 RENN 欠采样方法的结果,具体如下表所示:
| 数据集 | 分类器指标 | 逻辑回归 | SVM | 伯努利朴素贝叶斯 |
| — | — | — | — | — |
| 肺癌数据集 | 准确率 | 0.946 | 0.857 | 0.857 |
| | 平衡准确率 | 0.969 | 0.500 | 0.500 |
| | AUC - ROC | 0.984 | 0.911 | 0.406 |
| | F1 分数 | 0.968 | 0.923 | 0.923 |
| | MCC | 0.826 | 0.000 | 0.000 |
| 贫血数据集 | 准确率 | 0.758 | 0.788 | 0.768 |
| | 平衡准确率 | 0.736 | 0.574 | 0.500 |
| | AUC - ROC | 0.827 | 0.634 | 0.523 |
| | F1 分数 | 0.571 | 0.276 | 0.000 |
| | MCC | 0.423 | 0.261 | 0.000 |
| 糖尿病数据集 | 准确率 | 0.727 | 0.669 | 0.532 |
| | 平衡准确率 | 0.760 | 0.702 | 0.551 |
| | AUC - ROC | 0.821 | 0.762 | 0.536 |
| | F1 分数 | 0.691 | 0.633 | 0.478 |
| | MCC | 0.498 | 0.388 | 0.097 |
| 肥胖数据集 | 准确率 | 0.704 | 0.785 | 0.785 |
| | 平衡准确率 | 0.623 | 0.500 | 0.500 |
| | AUC - ROC | 0.685 | 0.675 | 0.500 |
| | F1 分数 | 0.412 | 0.000 | 0.000 |
| | MCC | 0.224 | 0.000 | 0.000 |

从结果来看,RENN 方法在多个性能指标上表现出色,尤其是平衡准确率和 MCC。不过,对于肥胖数据集,其效果不如重采样前。逻辑回归与 RENN 结合是解决类别不平衡问题的有效途径,而伯努利朴素贝叶斯和 SVM 的整体表现相对较弱。以下 mermaid 流程图展示了欠采样处理流程:

graph LR
    A[原始不平衡数据] --> B[RENN 欠采样]
    B --> C[平衡后数据用于模型训练]

3.5 机器学习算法的性能比较

逻辑回归、支持向量分类器和伯努利朴素贝叶斯都是经典的机器学习算法,在训练和评估过程中通常表现良好。在本次研究中,逻辑回归在未对数据集进行重采样时就有不错的表现,经过过采样和欠采样处理后,其性能进一步提升。相比之下,伯努利朴素贝叶斯和支持向量分类器的结果未能超越逻辑回归。

3.6 过采样和欠采样重采样技术的比较

以逻辑回归为例,比较随机过采样器(过采样技术)和 RENN(欠采样技术)在不同数据集上的平衡准确率,结果如下:
- 肺癌数据集 :欠采样(RENN)的效果优于过采样(随机过采样器),且两者都比未重采样的原始数据集表现更好。
- 贫血数据集 :随机过采样器的准确率高于 RENN。
- 肥胖数据集 :随机过采样器的效果更佳。
- 糖尿病数据集 :RENN 的结果更优。

以下表格总结了不同数据集上两种重采样技术的平衡准确率对比:
| 数据集 | 随机过采样器平衡准确率 | RENN 平衡准确率 |
| — | — | — |
| 肺癌数据集 | 0.927 | 0.969 |
| 贫血数据集 | 0.760 | 0.736 |
| 肥胖数据集 | 0.688 | 0.623 |
| 糖尿病数据集 | 0.727 | 0.760 |

4. 结论

在医疗数据分类问题中,数据不平衡是一个常见的现象。这可能是由于数据收集不完善,以及负面案例通常多于正面案例导致的。例如,在 2023 年,感染 COVID - 19 的人数(阳性案例)可能远少于未感染的人数,从而造成数据的巨大不平衡。

为了解决这个问题,研究了多种重采样方法,包括过采样和欠采样。实验结果表明,这两种方法都能在一定程度上提高性能指标,但也存在各自的缺点。欠采样可能导致欠拟合、偏差增大和信息丢失,而过采样可能会引入外来数据到特征空间。不过,与原始数据集相比,重采样方法仍能显著改善不平衡医疗数据集的分类效果。

在使用重采样方法时,逻辑回归的整体表现优于伯努利朴素贝叶斯和支持向量分类器。因此,在处理不平衡医疗数据分类问题时,可以优先考虑将逻辑回归与重采样方法结合使用。

综上所述,重采样方法为解决医疗数据分类中的不平衡问题提供了有效的途径,但在实际应用中,需要根据具体情况权衡过采样和欠采样的优缺点,选择最合适的方法和算法。

相关推荐

基于LSTM的心电图分类实战:从时序建模到医疗AI应用

时序信号处理是深度学习的重要应用领域,其核心在于捕捉数据在时间维度上的动态依赖关系。长短期记忆网络(LSTM)凭借其独特的门控机制,能够有效建模长期依赖,成为处理此类问题的经典选择。在医疗健康领域,这项技术的价值尤为凸显,例如在心电图(ECG)自动分析中,LSTM可以学习心电信号的复杂时序模式,实现心律失常的自动初筛,从而辅助诊断、提升医疗效率。本文聚焦于**LSTM模型**在**ECG信号分类**这一具体场景的工程实践,详细阐述了从数据预处理、模型构建到训练评估的完整流程,为开发可靠的医疗AI辅助工具提供

weixin_33087827的博客 374

长尾学习实战:如何用Logit Adjustment解决类别不平衡问题(附PyTorch代码)

本文详细介绍了Logit Adjustment技术在长尾学习中的应用,通过PyTorch实现解决类别不平衡问题。文章包含从理论到实践的完整指南,涵盖数据准备、核心实现、参数调优及生产环境部署建议,帮助开发者有效提升尾部类别的识别准确率。

weixin_29198045的博客 326

ACM MM‘24 | 医学图像分类中类别增量学习的不平衡问题解决方法

深度卷积神经网络在医学图像分类领域取得了重大突破,前提是所有类别的训练样本可同时获取。然而,在现实医疗场景中,人们常常需要持续学习新疾病相关知识,这促使医学领域出现了类别增量学习(CIL)这一新兴领域。通常情况下,CIL在对新类别进行训练时会遭遇灾难性遗忘问题。这种现象主要是由新旧类别之间的不平衡导致的,并且在医学数据集不平衡的情况下,问题变得更加棘手。在这项工作中,作者介绍了两种简单却有效的插件式方法,以减轻这种不平衡带来的负面影响。

小白学视觉 281

36、智能文本分类与聚类的案例研究

本文探讨了智能文本分类与聚类技术在多个行业中的实际应用,包括医疗、金融、教育等领域的具体案例。文章详细分析了技术实现的关键步骤,如数据预处理、特征选择和算法优化,并通过实验结果展示了这些技术的高效性与准确性。此外,文章还讨论了应用过程中面临的挑战及解决方案,为未来的研究和实践提供了参考。

dapp9builder的博客 146

人工智能-算法篇36篇-机器学习之随机森林学习

随机森林(Random Forest)是一种集成学习算法,由多个决策树组成。它是由Leo Breiman和Adele Cutler于2001年提出的,是一种用于分类、回归和特征选择的强有力工具。随机森林通过随机选择数据集和特征,构建多个决策树,最终将它们组合起来进行预测。随机森林在实际应用中表现出了很好的性能和鲁棒性,被广泛应用于各种领域。可以处理高维数据集,并且不需要特征缩放。可以处理具有不平衡类别的数据集。可以评估特征的重要性,以便进行特征选择。可以处理缺失值和异常值。可以并行化处理。

GIS摆渡人 291

36、基于医疗数据集关联分类和遗传算法的心血管疾病早期预测

本文提出了一种结合关联分类与遗传算法的心血管疾病早期预测方法。通过计算属性熵值进行特征选择,利用关联规则挖掘和z-统计量评估生成优质规则,并将其作为遗传算法的初始种群,结合交叉、变异操作优化规则集,最终构建高效分类器。实验基于UCI和Kleev land医疗数据集,结果表明该方法在准确率(平均83.21%)、时间、错误率和误报率方面均优于朴素贝叶斯、GNP、NN、粗糙集和模糊集等传统方法,有效提升了心脏病的预测性能,为临床早期诊断提供了可靠的技术支持。

ansible6ops的博客 66

医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,下)

医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,下)

AllenLV的博客 1576

36、基于斑点鬣狗优化算法的降压 DC - DC 转换器供电永磁无刷直流电机新型控制方法及不平衡数据分类混合方法

本文提出了一种基于斑点鬣狗优化(SHO)算法的新型控制方法,用于降压DC-DC转换器供电的永磁无刷直流电机(PMBLDC),通过优化PI控制器参数显著降低输入电流总谐波失真(THD)并提升速度控制性能。同时,针对不平衡数据分类问题,设计了HUSCSL-Boost混合框架,结合Tomek-Link数据清理、随机欠采样(RUS)和成本敏感CSLBoost方法,在27个数据集上表现出优于RUSBoost的分类性能。实验结果表明,SHO-PI控制器将THD降至2.40%,动态响应更快,超调更小;HUSCSL-Boo

cola5的博客 61

Mac用户必看:Parallels Desktop 18.1.1最新破解版安装与优化全攻略(附资源)

本文为Mac用户提供Parallels Desktop 18.1.1的详细安装与优化指南,涵盖虚拟化技术选型、专业级配置流程及性能调优技巧。重点解析Parallels Desktop在图形加速、系统资源调度方面的核心优势,并分享生产力增强技巧与典型应用场景实战方案,帮助用户最大化利用这一高效虚拟化工具。

weixin_29240343的博客 829

68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案

这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。

baidu_25525561的博客 1330

Social-Auto-Upload实战:如何用Python+Playwright实现抖音/B站/小红书一键三连发?

本文详细介绍了如何使用Python和Playwright框架构建Social-Auto-Upload自动化上传工具,实现抖音、B站、小红书等平台的一键多发布。通过模拟真实用户操作和Cookie管理技术,该工具能有效解决内容创作者跨平台发布的重复劳动问题,提升工作效率。

day7的博客 1403

【时时三省】tessy 集成测试:小白入门指导手册

有图有文字详细介绍 tessy 集成测试 操作方法。

时时三省的博客 2518

816华为OD机试真题 新系统 - 信道资源分配与掩码运 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 信道资源分配与掩码运 (Java/Py/C/C++/Js/Go)

算法大师! 408

YoloV10改进策略:卷积篇|基于PConv的二次创新|附结构图|性能和精度得到大幅度提高(独家原创)

在PConv的基础上做了二次创新,创新后的模型不仅在精度和速度上有了质的提升,还可以支持Stride为2的降采样。改进方法简单高效,需要发论文的同学不要错过!

m0_47867638的博客 1097

笔试题-2023-加特兰-数字IC设计【纯净题目版】

笔试题-2023-加特兰-数字IC设计【纯净题目版】

w0shishabi的博客 2249

分享Charles抓包 显示<unknown> 解决方案 !

首先电脑上需要安装charles,然后需要设置手机上的WiFi设置,修改配置中的代理设置,把服务器的主机名设置成你电脑当前的ip地址(需要注意的是,你的代理服务器主机名的ip地址要和你当前连的ip地址的网段需要一致)。像 Charles 这样的工具,虽然功能强大,但仍然需要用户具备一定的配置和排障能力,以应对各种复杂的网络环境。通过将 Charles 的 SSL 证书正确安装到移动设备中,并在设置中启用“允许不安全的内容”选项,最终成功解决了这一问题,并准确抓取到所有请求数据。Charles 显示。

朱雀随云记的博客 8109

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 25、OpenCV 计算机视觉编程:显示与图像处理
下一篇: 28、基于物联网的电动汽车监控系统
vim8coder
博客等级 码龄1天 0粉丝 1693原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值