Select 与 PCA 和 K-MEANS 相关的特征
Select relevant features with PCA and K-MEANS
我正在尝试理解 PCA 和 K-Means 算法以提取一些相关 一组特征中的特征。
我不知道计算机科学的哪个分支研究这些主题,网上似乎没有很好的资源,只是一些我不太了解的论文。论文范例http://www.ifp.illinois.edu/~qitian/e_paper/icip02/icip02.pdf
我有 pepole walks 的 csv 文件,组成如下:
- TIME, X, Y, Z, 这些值由加速度计记录
我做了什么
- 我将数据集转换为 Python
中的 table
- 我用了tsfresh,一个Python库,从每一次行走中提取特征向量,这些特征很多,2k+个特征 每次步行。
- 我必须使用 PFA,主要特征分析,select 相关 特征
矢量特征
为了完成最后一点,我必须使用 PCA 减少特征遍历集的维数(PCA 将使数据与原始数据不同,因为它使用原始数据的协方差矩阵的特征向量和特征值修改数据)。这里我有第一个问题:
- PCA 的输入应该是什么样子?行是行走的次数,列是特征,反之亦然,所以行是特征的数量,列是人的行走次数?
我减少了这个数据后,我应该对减少的'features'数据使用K-Means算法。输入在 K-Means 中应该如何看待?使用这个算法的目的是什么?我只知道这个算法用于 'cluster' 一些数据,所以在每个集群中都有一些 'points' 基于一些规则。我做的和想的是:
- 如果我在 PCA 中使用如下所示的输入:行是步数,列是特征数,那么对于 K-Means,我应该用行更改列,因为这样每个点它是一个特征(但这不是具有特征的原始数据,它只是减少的数据,所以我不知道)。因此,对于每个集群,我看到的欧几里得距离与质心的距离更短,并且 select 该特征。那么我应该申报多少集群?如果我声明聚类与特征数量相同,我将始终提取相同数量的特征。我怎么能说减少数据中的一个点对应于原始特征集中的这个特征呢?
我知道我说的可能不对,但我正在努力理解它,你们中的一些人可以帮助我吗?如果我是在正确的方式?谢谢!
对于 PCA,请确保将对算法使用的方法(特征向量等)的理解与结果分开。结果是一个线性映射,将原始 space A
映射到 A'
,其中维度(您的情况下的特征数)可能小于原始 space A
.
所以spaceA'
中的第一个feature/element是A
.
的特征的线性组合
row/column 取决于实现,但如果您使用 scikit PCA,则列就是特征。
您可以将 PCA 输出、A'
space、K-means 和它将根据通常降低维度的 space 对它们进行聚类。
每个点都是一个集群的一部分,这个想法是,如果你在 A
上计算 K-Means,你可能最终会得到 same/similar 个集群,就像 A'
。在计算上 A'
便宜很多。您现在在 A'
和 A
上有了一个聚类。我们同意 A'
中的相似点在 A
中也相似。
簇数比较难回答,不懂就搜肘法吧。但是如果你想感受一下你拥有的 things
的不同类型,我认为应该选择 3~8 而不要太多,比较最接近的 2-3 点
每个中心,你都有一些消耗品。特征的数量可以大于集群的数量。例如如果我们想知道某个区域 (2D) 中最密集的区域,您可以轻松地拥有 50 个集群,以了解 50 个城市可能位于何处。这里我们有比 space 维度更高的集群数量,这是有道理的。
我正在尝试理解 PCA 和 K-Means 算法以提取一些相关 一组特征中的特征。
我不知道计算机科学的哪个分支研究这些主题,网上似乎没有很好的资源,只是一些我不太了解的论文。论文范例http://www.ifp.illinois.edu/~qitian/e_paper/icip02/icip02.pdf
我有 pepole walks 的 csv 文件,组成如下:
- TIME, X, Y, Z, 这些值由加速度计记录
我做了什么
- 我将数据集转换为 Python 中的 table
- 我用了tsfresh,一个Python库,从每一次行走中提取特征向量,这些特征很多,2k+个特征 每次步行。
- 我必须使用 PFA,主要特征分析,select 相关 特征 矢量特征
为了完成最后一点,我必须使用 PCA 减少特征遍历集的维数(PCA 将使数据与原始数据不同,因为它使用原始数据的协方差矩阵的特征向量和特征值修改数据)。这里我有第一个问题:
- PCA 的输入应该是什么样子?行是行走的次数,列是特征,反之亦然,所以行是特征的数量,列是人的行走次数?
我减少了这个数据后,我应该对减少的'features'数据使用K-Means算法。输入在 K-Means 中应该如何看待?使用这个算法的目的是什么?我只知道这个算法用于 'cluster' 一些数据,所以在每个集群中都有一些 'points' 基于一些规则。我做的和想的是:
- 如果我在 PCA 中使用如下所示的输入:行是步数,列是特征数,那么对于 K-Means,我应该用行更改列,因为这样每个点它是一个特征(但这不是具有特征的原始数据,它只是减少的数据,所以我不知道)。因此,对于每个集群,我看到的欧几里得距离与质心的距离更短,并且 select 该特征。那么我应该申报多少集群?如果我声明聚类与特征数量相同,我将始终提取相同数量的特征。我怎么能说减少数据中的一个点对应于原始特征集中的这个特征呢?
我知道我说的可能不对,但我正在努力理解它,你们中的一些人可以帮助我吗?如果我是在正确的方式?谢谢!
对于 PCA,请确保将对算法使用的方法(特征向量等)的理解与结果分开。结果是一个线性映射,将原始 space A
映射到 A'
,其中维度(您的情况下的特征数)可能小于原始 space A
.
所以spaceA'
中的第一个feature/element是A
.
row/column 取决于实现,但如果您使用 scikit PCA,则列就是特征。
您可以将 PCA 输出、A'
space、K-means 和它将根据通常降低维度的 space 对它们进行聚类。
每个点都是一个集群的一部分,这个想法是,如果你在 A
上计算 K-Means,你可能最终会得到 same/similar 个集群,就像 A'
。在计算上 A'
便宜很多。您现在在 A'
和 A
上有了一个聚类。我们同意 A'
中的相似点在 A
中也相似。
簇数比较难回答,不懂就搜肘法吧。但是如果你想感受一下你拥有的 things
的不同类型,我认为应该选择 3~8 而不要太多,比较最接近的 2-3 点
每个中心,你都有一些消耗品。特征的数量可以大于集群的数量。例如如果我们想知道某个区域 (2D) 中最密集的区域,您可以轻松地拥有 50 个集群,以了解 50 个城市可能位于何处。这里我们有比 space 维度更高的集群数量,这是有道理的。