引言
人工智能作为当前最具革命性、颠覆性的技术之一,智能模型的强大性能源自于对高质量数据集的充足学习。然而,实际工程应用中,由于经济成本和人力成本的限制,获取大量典型的有标签的数据变得极具挑战,造成了训练样本数量非常有限。数据增强方法为解决此类问题提供了简单但有效的思路。基于马尔科夫链蒙特卡洛Markov Chain Monte Carlo,MCMC的数据增强方法,在学习复杂高维数据分布方面表现出了极其优越的性能,为解决数据问题提供了一个新视角。
马尔科夫链蒙特卡洛Markov Chain Monte Carlo,MCMC,是一种基于概率统计的数值模拟方法,该方法将马尔科夫(Markov)过程引入到Monte Carlo模拟中,实现抽样分布随模拟的进行而改变的动态模拟,弥补了传统的蒙特卡罗积分只能静态模拟的缺陷。它主要利用马尔可夫链的性质来探索复杂系统中难以直接计算的高维度概率分布。在概率统计、机器学习等领域广泛应用,尤其在估计难以积分的概率密度函数、计算后验概率、寻找贝叶斯模型的参数等方面。具体理论请参阅相应的论文。
本期分享了基于马尔科夫链蒙特卡洛Markov Chain Monte Carlo,MCMC的数据生成方法的matlab代码,通过基于条件概率迭代更新状态从目标分布生成样本,有效地解决数据不充足的问题。
本期利用机器学习中的经典数据集iris数据集:该数据集有3类,每类50个样本,每个样本4个特征,共150个样本*4个特征。利用MCMC生成一些数据,并选择用SVM作为分类器(也可以使用其他的分类器)进行分类,用以简单地验证MCMC数据的生成质量。生成数据作为训练集用以训练分类器SVM,原始数据作为测试集用以测试。最后结果展示包括了原始数据,和生成数据的分布,概率密度函数分布,每个特征的分布boxplot等。
最后svm的分类精度:训练精度99%,测试精度100%。
结果可视化展示:
生成效果可以,类外特征分离明显,类间特征较为聚集,适合分类任务。以上结果只运行了1次,结果有一定的随机性。为获得更为说服力的结果,还需运行多次求均值。
Matlab代码下载
微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
基于马尔科夫链蒙特卡洛Markov Chain Monte Carlo,MCMC的数据生成方法(附Matlab代码)
点击链接跳转:
cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!
175种群智能优化算法python库
求解cec测试函数-matlab
解决12工程设计优化问题-matlab
求解11种cec测试函数-python
解决12种工程设计优化问题-python
用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)
沙场大点兵:24种信号分解方法(附matlab代码)
沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd