如何在 JMP 脚本中整理 K 均值聚类你好,
我有一个 JMP 脚本,它使用 K 均值聚类匹配一对笛卡尔坐标数据集。该脚本适用于具有相同数量坐标的数据集。我正在尝试扩展脚本来处理其中一个数据集缺少坐标或少于另一个数据集的坐标的情况。我可以通过“K 均值聚类”对话框窗口手动执行此操作,首先使用“整理”,然后选择异常值并排除它们。我想通过 JMP 脚本自动执行此过程。我的计划是运行“Declutter”函数并将最近邻的数量限制为 1,然后将“Save NN Distances”保存到列并排除平均值 3 sigma 之外的行。 然后对剩余的坐标进行聚类分析。
我不确定如何通过 JMP 脚本执行此操作。通过最近邻识别和排除异常值的操作必须在聚类功能开始之前发生。这就是我被困住的地方。
将 K 均值聚类对话框与整理图一起保留并允许用户突出显示异常值、排除它们,然后运行聚类算法会更容易吗?如果是这样,脚本是否可以在用户执行这些操作时暂停,然后在集群功能完成后继续? 我对集群结果执行了其他操作。
下面是我现在拥有的 K 均值聚类函数的片段。nClusters 变量由坐标数最少的数据集中的行数定义。
对象= K 均值聚类(
是( : X , :是) ,
簇数( n簇) ,
单独缩放的列( 0 )
) ;
obj << 整理(1,1);
对象<<去;
任何帮助将不胜感激。
-Ry
回复:如何在 JMP 脚本中整理 K 均值聚类你好,ih,
谢谢。我将进一步探讨这个功能。
此致,
瑞
回复:如何在 JMP 脚本中整理 K 均值聚类我不记得 JMP 12 中的样子了,但 John Sall 引用了它这里所以我希望它能够做到。 你能检查一下 Cols->Modeling Utilities 吗? 希望您可以通过该平台进行相同的分析。
回复:如何在 JMP 脚本中整理 K 均值聚类你好,ih,
我不确定 JMP 12(我正在使用的)中是否提供此功能。当我测试您列出的代码时,“探索异常值”步骤没有结果。保存 NN 距离不会生成列。
问候,
瑞
回复:如何在 JMP 脚本中整理 K 均值聚类在 JMP 13 中,我相信您可以使用筛选平台来做到这一点:
//Use sample data
dt = Open( "$SAMPLE_DATA/Cytometry.jmp" );
//Find outliers using KNN
outliers = dt << Explore Outliers(
Y( :CD3, :CD8 ),
Name( "Multivariate k-Nearest Neighbor Outliers" )(K( 1 ))
);
//Save the distance to the nearest point
outliers << Save NN Distances;
//Make a column indicating that the point is an outlier. You could skip this and select the points over a certain value directly.
dt << New Column( "Is Outlier",
Numeric, "Nominal",
Formula(
If(
:Nearest 1 Distance > Col Mean( :Nearest 1 Distance ) + 3 *
Col Std Dev( :Nearest 1 Distance ),
1,
0
)
),
Value Labels( {0 = "No", 1 = "Yes"} ), Use Value Labels( 1 )
);
//show which points will be excluded
dt << Graph Builder(
Show Control Panel( 0 ),
Variables(
X( Transform Column( "Row", Formula( Row() ) ) ),
Y( :Nearest 1 Distance ),
Color( :Is Outlier )
),
Elements( Points( X, Y, Legend( 14 ) ) )
);
//Uncomment to Hide and exclude outliers
//dt << select where( :Is Outlier == 1 );
//dt << hide and exclude;