我使用 python,我有一个包含 19 个元素的数字列表,我想将此列表分成 6 个或更少的组。
该列表可能包含 0 和 1 之间的数字。它不能被订购,我需要保持它的形式并被切断
列表:
Numbers : [[ 0.867 - 0.808 - 0.740 - 0.746 - 0.674 - 0.669 -
0.648 - 0.722 - 0.781 - 0.612 - 0.575 - 0.566 -
0.500 - 0.555 - 0.818 - 0.800 - 0.500 - 0.500 - 0.666 ]]
我想得到像这样的集群:
A: [[ 0.867 - 0.808 - 0.740 - 0.746 ]]
B: [[ 0.674 - 0.669 - 0.648 ]]
C: [[ 0.722 - 0.781 ]]
D: [[ 0.612 - 0.575 - 0.566 - 0.500 - 0.555 ]]
E: [[ 0.818 - 0.800 ]]
F: [[ 0.500 - 0.500 - 0.666 ]]
我用眼睛分裂,为此,我要求一种科学的方法来实现我的目标。
- 关于我如何定义这些集群:
我有一个从额外函数中获得的值,它等于 0.80。我需要将列表中的每个值与 0.80 进行比较以了解差异。
进行比较后,我得到下表
Numbers Difference_0.80
0.867 +0.06
0.808 0.0
0.740 -0.06
0.746 -0.06
0.674 -0.13
0.669 -0.14
0.648 -0.16
0.722 -0.08
0.781 -0.02
0.612 -0.19
0.575 -0.23
0.566 -0.24
0.500 -0.3
0.555 -0.25
0.818 +0.01
0.800 0.0
0.500 -0.3
0.500 -0.3
0.666 -0.14
当我尝试聚类方法(n_clusters = 2)时,我得到了:
0 category_Kk-mean
0.867 0
0.808 0
0.740 0
0.746 0
0.674 1
0.669 1
0.648 1
0.722 0
0.781 0
0.612 1
0.575 1
0.566 1
0.500 1
0.555 1
0.818 0
0.800 0
0.500 1
0.500 1
0.666 1
但是我也想知道这个类别(D)比类别(B)有很大的减少:
category D
0.612 1
0.575 1
0.566 1
0.500 1
0.555 1
Category B
0.674 1
0.669 1
0.648 1
我尝试使用 n_clusters=3 但结果非常糟糕
统计或数学中是否有任何方法可以帮助我获得它