数据缺失的坑,无监督学习这样帮你补了

简介:


9


无监督学习(UL)有很多没开发的潜力。它是一门从“未标记”数据中推导一个函数来描述其隐藏结构的艺术。但首先,从数据中找到其结构是什么意思呢? 让我们来看以下两个例子:


8

气泡状分布:这个简单。任何人看到这张图都会认为它是由三个不同的簇组成的。如果你对统计学非常熟悉,你可能还会猜想它由三个隐藏的高斯分布构成。对一个新的数据样本,查看它的位置,人们就能推断出它属于哪一簇。


7

波浪分布:这个就有难度了。它有明确的结构,但我怎么教计算机提取出这一结构呢?为了让你更好地理解这个问题,想象一下我找来1000人,问他们在这张图中看到了几个簇。结果很可能是这样,回答2的人最多,也有人回答3、4,甚至1!

所以说对数据的结构,连人都无法达成共识,那怎么可能教计算机学会呢?这里的症结在于,对于什么是簇,或者广义地说什么是“结构”,没有统一的定义。人们可以研究一下日常生活的某个方面,看它有没有结构,但这也会根据环境或其中涉及的人的变化而变化。

很多著名的无监督学习算法,比如层次聚类,K-Means,混合高斯模型或隐马尔可夫模型,对同一问题可能得到不同的答案,依我拙见,对于找结构问题,没有所谓更好的或更正确的普适方法(真的吗?又是没有免费的午餐定理?)

那么让我们动手探索吧——


聚类方法

  1. K-Means(scikit learn)
  2. 模糊K-Means(scikit fuzzy)
  3. 混合高斯模型(scikit learn)

用K-Means算法产生簇通常被称为“硬划分”,因为对一个样本和一个簇,只有属于和不属于两种关系。K-Means的改进版模糊K-Means算法是“软划分”或“模糊”,因为一个样本对每个簇都有隶属度。基于这些隶属度来更新簇的质心。

混合高斯模型https://github.com/abriosi/gmm-mml
这个包是论文Unsupervised learning of finite mixture models(有限混合模型的无监督学习)中提出的方法,用一个算法实现估计和模型选择。


数据集

1. 占有率检测:

这是一个没有缺失值的时间序列数据集,因此要人为刻意地进行空缺数据补全。

这一数据集相对较小,有20560个样本和7个特征,其中一个模型预测变量为是否占有。(二元分类问题)。

2. Sberbank俄罗斯房价市场数据集:

这也是一个时序数据集,来自数月前结束的Kaggle竞赛。

将训练数据与俄罗斯宏观经济和金融部门的数据合并后,得到30471个样本,389个特征,其中一个是要预测的价格(回归问题)。

它有93列有缺失数据,有些NaNs(非指定类型数据)占比很大(> 90%)。

3.子宫颈癌(危险因素)数据集:

这一数据集有858个样本和32个特征,4个目标变量(不同医学测试指标的二元输出)取众数转化成1个目标变量。

它有26个特征有空缺值,有些NaNs(非指定类型数据)占比很大(> 90%)。


数据缺失值补全过程

先删去训练集和测试集中所有含有缺失数据的特征。利用留下的特征,对训练集应用聚类算法,并预测两组中每个样本的簇。加上删去的列,计算按照簇分组后每个特征的平均值(或均值,如果是定性的话)。所以现在我们有了每个簇未补全时的特征的平均值。


6

“普通”和加权补全方法:

这里“普通补全”指的是每个样本都用以计算其所属簇的平均值/众数。

加权方法则用样本对每个簇的“归属度”。比如,在混合高斯模型(GMM)中,归属度是样本属于各个簇的可能性,在K-Means方法中,归属度基于样本与各个簇的质心的距离。


评分方法

除标准化之外,几乎没对数据集做任何处理。

对于时间序列数据集,从第一个样本算起对时间标记排序,在占有率检测数据集中转化成按秒计数,同理在俄罗斯房价市场数据集中按天计数。

完成插补后,用XGBoost在测试集进行评分。用负对数损失和均方误差作为评分度量。


得到簇的数目

最初考虑了“肘”或者说“膝”方法。当簇的数量取值在一定范围内时,画出不同聚簇方法的得分并从图中寻找肘部。

5

比如,上图的肘部在8到12之间。缺点是这种方法需要人的参与来选择肘部,而实际应用上应该自动。但自动选择肘部效果并不理想,因此可以考虑一种新方法。

通过交叉验证,得到了一种比较有效但计算成本昂贵的方法。它是怎么工作的呢?首先选择一个分类器,然后对于一系列质心数目,进行无监督插补,并用该分类器进行K-fold交叉验证。最后选择在交叉验证中表现更好的质心数目。


结果

在条形图中,用红线标记平均值插补的分数,以便进行比较。

占有率检测数据集:

诚如之前提到的,这个数据集并没有缺失数据,所以只能模拟补缺行为。

对将要补缺的数据特征和样本应当谨慎挑选。不仅特别选择了数据特征,而且对是否选择样本设定了概率。如果概率为0.5,有50%的机会该样本将被丢弃。由于每次填补缺失值的样本选择都不同,我们将每三轮不同样本补缺的评分结果取均值,最后再对所有结果取均值。

4

房产市场数据集:

由于该数据集的数据量过大,怎样在有限的内存中完成聚类分析值得研究一番。我们放弃了使用全量数据做归类计算的打算,随机抽取了适合电脑内存的样本数据量(本次测试我选用了5000条记录)。

在原始数据集中使用随机抽样的方法抽取样本,也尽量保持了数据的时间结构。样本的数据量越大,反映的时间结构越准确。


3

子宫颈癌数据集:

2


结果分析

根据结果,在数据分群的基础上选择补缺方式的表现比一般方法要好。

对于占有率检测数据集,表现最优的是GMM_MML分类算法,而对于房产市场数据和宫颈癌数据集,K_Means聚类算法更好。我们并没有对房产市场数据使用GMM_MML算法,因为它包含太多特征,而协方差的计算对于多特征数据比多样本量数据更加困难。

在增加占有率检测数据集的缺失数据后,整体上可以观测到,无监督的补缺方法比均值补缺表现要好。因此, 当数据集有缺失值占比较高时,先探索数据结构再补缺方法反而形成一种优势。

大家会注意到,当使用检测数据集的缺失数据特征从2个增加到4个,且用于聚类的特征数量减少时,无监督补缺方法比均值补缺表现稍好。这种反常的现象可能是由于特定的数据集和选择的特征造成的。

同时,自然的,当缺失数据占比增加时,评分与基线分数的差距越来越大。

在三种K_Means算法中,普通型表现优于其他两种。这种算法每次迭代的计算量也最小,是最佳选择。

基于GMM方法的表现优于K-Means算法,这一现象十分合理,因为K-Means算法是GMM算法在欧式距离计算上的启发式算法。欧式距离能有效测量低维数据,但在高维空间上,其含义开始失真。如想了解更多信息,请看这里(https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions/)。GMM算法是基于样本所属概率密度函数的可能性,能更好的衡量高维空间距离。


结论

尽管基于聚类的缺失值补充算法没有明显高过其他算法的优胜者,我们还是建议选择基于GMM的算法。

想找到模型混合的最佳数量,使用交叉验证法会更好。尽管AIC准则和BIC准则需要大量计算,他们可以用于检测模型混合数量的范围。最佳数量会令准则值达到最小。

计算协方差矩阵有很多方法。这里介绍两种最常使用的:


1


对角协方差:每个部分都有自己的对角矩阵。
全协方差:这种协方差用于统计检测。每个部分有自己的广义协方差矩阵。

数据集中如果特征维度太多,使用GMM算法计算协方差矩阵,可能因为样本量不足计算错误,也可能因为使用全量数据耗时太久。因此建议使用对角协方差,更加平衡模型大小和计算质量。

如果数据量大大超过内存容量,应当从训练集中生成随机样本做聚类分析。

均值补缺的表现没有比基于聚类补缺方法差很多,因此也可以考虑使用。

后续工作

数据整理也可以尝试新方法:不再丢弃有缺失数据的特征,可以用均值或中位数填补缺失值,对修改后的数据集使用聚类分析。补缺可以在每个样本被标记后完成。

Finite Mixture Models (McLachlan和Peel著)这本书中提到NEC和ICL都是很好的方法。

也有更多无监督方法值得研究检测,例如,不同距离度量方法下的分级聚类。当然,普适的方法可能并不存在,毕竟没有免费的午餐。

原文发布时间为:2017-11-7
本文作者:文摘菌
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

相关文章
|
Linux 数据安全/隐私保护
Linux命令setfacl详解
`setfacl`是Linux中用于设置文件访问控制列表的命令,提供比传统权限更细粒度的控制。它允许为特定用户或组添加、修改或删除权限,适用于多用户环境和复杂场景。常用参数包括`-m`(修改规则)、`-x`(删除规则)、`-R`(递归设置)和`-d`(设置默认ACL)。例如,`setfacl -m u:user1:rw- file.txt`给用户`user1`赋予文件`file.txt`的读写权限。记得在使用前确认文件系统支持ACL,并谨慎规划和审查权限设置。
|
机器学习/深度学习 人工智能 机器人
语音克隆达到人类水平,微软全新VALL-E 2模型让DeepFake堪比配音员
【8月更文挑战第10天】微软的VALL-E 2模型标志零样本语音合成新高度,通过重复感知采样与分组编码建模,显著提升语音合成的稳定性与效率。在LibriSpeech等数据集上,VALL-E 2的语音自然度与说话者相似度超越前代和其他系统,达到人类水平。然而,其卓越性能也引发了潜在滥用风险的关注。尽管如此,VALL-E 2在辅助沟通、教育、娱乐等领域的应用前景广阔。[论文](https://arxiv.org/pdf/2406.05370)
411 64
|
供应链 安全 搜索推荐
Web3医疗科技之数字健康管理的创新前沿
Web3作为新一代互联网技术的代表,不仅在金融和供应链等领域展现了巨大的潜力,也在医疗科技方面带来了前所未有的创新。
418 3
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的付费自习室管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的付费自习室管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
227 0
基于SpringBoot+Vue+uniapp的付费自习室管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
JavaScript Java 测试技术
基于SpringBoot+Vue的高校社团管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的高校社团管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
292 0
|
SQL 数据库 数据安全/隐私保护
修改SAP数据库用户密码的参考
修改SAP数据库用户密码的参考
312 0
|
移动开发 数据可视化 搜索推荐
MindManager2023软件功能特色介绍
MindManager思维导图软件是一款创造、管理和交流思想的思维导图软件,界面友好功能强大,头脑风暴、会议管理及项目管理工具帮您轻松创建思维导图,有序组织思维、资源和项目进程。
1116 0
|
机器学习/深度学习 算法 搜索推荐
cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)
cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)
cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)
|
移动开发 小程序 JavaScript
小程序开发(随机课堂点名系统)
小程序开发(随机课堂点名系统)
542 0
小程序开发(随机课堂点名系统)
|
数据采集 安全 大数据
未来2年,70%用户将选择云WAF防护
WAF就是Web应用防火墙,那WAAP又是什么?为何 Gartner发布的2021年WAF魔力象限预测:到2024年,70%的组织将青睐云WAAP服务?本文有解读,笔者坚信这个比例一定是90%以上!
589 0
未来2年,70%用户将选择云WAF防护