如何解决使用 PCA 和 K-MEANS
我正在尝试理解 PCA 和 K-Means 算法,以便从一组特征中提取一些相关特征。 >
我不知道计算机科学的哪个分支研究这些主题,似乎互联网上没有很好的资源,只有一些我不太了解的论文。纸张示例http://www.ifp.illinois.edu/~qitian/e_paper/icip02/icip02.pdf
我有 csv 文件的 pepole walks 组成如下:
- TIME、X、Y、Z,这些值由加速度计注册
我做了什么
- 我在 Python 中将数据集转换为表格
- 我使用了 tsfresh,一个 Python 库,从每次步行中提取特征向量,这些特征很多,每次步行 2k+ 个特征。
- 我必须使用PFA(主要特征分析)从一组特征中选择相关特征 向量特征
为了完成最后一点,我必须使用PCA降低特征集的维度(PCA会使数据与原始数据不同因为它使用原始数据的协方差矩阵的特征向量和特征值修改数据)。这里我有第一个问题:
- PCA 的输入应该是什么样的?行是行走的次数,列是特征,反之亦然,所以行是特征的数量,列是人的行走次数?
在我减少这些数据之后,我应该对减少的“特征”数据使用K-Means 算法。输入在 K-Means 中应该如何显示?使用这个算法的建议是什么?我只知道这个算法用于“聚类”一些数据,因此在每个聚类中都有一些基于某些规则的“点”。我所做和所想的是:
- 如果我在 PCA 中使用一个看起来像这样的输入:行是行走的数量,列是特征的数量,那么对于 K-Means,我应该以这种方式更改带有行的列,每个点都是一个特征(但这不是具有特征的原始数据,只是缩小的数据,所以我不知道)。那么对于每个集群,我用欧几里德距离看到谁与质心的距离较小,然后选择该特征。那么我应该声明多少个集群?如果我声明集群与特征数量相同,我将始终提取相同数量的特征。我怎么能说缩减数据中的一个点对应于原始特征集中的这个特征?
我知道我说的可能不正确,但我正在努力理解它,你们中的一些人可以帮助我吗?如果我的方式正确吗?谢谢!
解决方法
对于PCA,请确保将算法使用的方法(特征向量等)与结果分开。结果是一个线性映射,将原始空间 A
映射到 A'
,在这种情况下,维度(在您的案例中的特征数)可能小于原始空间 A
。
所以空间 A'
中的第一个特征/元素是 A
特征的线性组合。
行/列取决于实现,但如果您使用 scikit PCA,列就是特征。
您可以将 PCA 输出、A'
空间提供给 K-means,它会根据通常减少的空间对它们进行聚类维度。
每个点都是一个集群的一部分,这个想法是,如果您在 A
上计算 K-Means,您可能最终会得到与 A'
相同/相似的集群。在计算上 A'
便宜很多。您现在在 A'
和 A
上有一个聚类。我们同意 A'
中相似的点在 A
中也相似。
簇的数量很难回答,如果你什么都不知道搜索肘部方法。但是如果你想了解你拥有的不同类型的 things
,我认为选择 3~8 并且不要太多,比较最接近的 2-3 个点
每个中心,你都有一些消耗品。特征的数量可以大于集群的数量。例如如果我们想知道某个区域 (2D) 中最密集的区域,您可以轻松拥有 50 个集群,以了解 50 个城市的位置。这里我们有比空间维度更高的聚类方式,这是有道理的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。