如何在 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;