如何在kmeans之前将重要性系数放在特征上?

How to put importance coefficients to features before kmeans?

假设我有给定的数据框

   feature_1  feature_2  feature_3  feature_4  feature_5  feature_6  feature_7  feature_8
0   0.862874   0.392938   0.669744   0.939903   0.382574   0.780595   0.049201   0.627703
1   0.942322   0.676181   0.223476   0.102698   0.620883   0.834038   0.966355   0.554645
2   0.940375   0.310532   0.975096   0.600778   0.893220   0.282508   0.837575   0.112575
3   0.868902   0.818175   0.102860   0.936395   0.406088   0.619990   0.913905   0.597607
4   0.143344   0.207751   0.835707   0.414900   0.360534   0.525631   0.228751   0.294437
5   0.339856   0.501197   0.671033   0.302202   0.406512   0.997044   0.080621   0.068071
6   0.521056   0.343654   0.812553   0.393159   0.217987   0.247602   0.671783   0.254299
7   0.594744   0.180041   0.884603   0.578050   0.441461   0.176732   0.569595   0.391923
8   0.402864   0.062175   0.565858   0.349415   0.106725   0.323310   0.153594   0.277930
9   0.480539   0.540283   0.248376   0.252237   0.229181   0.092273   0.546501   0.201396

我想在这些行中找到集群。为此,我想使用 Kmeans。但是,我想通过更重视 [feature_1feature_2] 来找到集群数据框中的特征。 假设 [feature_1feature_2 的重要性系数为 0.5 ] 和 0.5 用于剩余的特征。

我考虑过将 [feature_3, ..., feature_8] 转换为单列通过使用主成分分析。通过这样做,我想 Kmeans 对单个特征的重视程度低于对 6 个独立特征的重视程度。

这是个好主意吗?您是否看到将此信息提供给算法的更好方法?

Kmeans 所做的是尝试找到质心并将点分配给那些与质心欧氏距离最小的质心。当最小化欧氏距离或将它们用作机器学习中的损失函数时,通常应确保不同的特征具有相同的尺度。否则,较大的特征将在寻找最近点时占主导地位。这就是为什么我们通常在训练我们的模型之前进行一些缩放。

但是,在您的情况下,您可以首先使用一些 minmax 或 standarscaler 将所有特征调整到相同的比例,然后将前 2 个特征放大 > 1 或缩小其余 6 个特征的系数 < 1.