JMPスクリプティングでK平均クラスタを宣言する方法こんにちは、
K平均クラスタを使用してデカルト座標データセットのペアに一致するJMPスクリプトがあります。 このスクリプトは、同数の座標を持つデータセットに適しています。 一方のデータセットの座標が足りない、または他方よりも座標が少ないシナリオを処理するようにスクリプトを拡張しようとしています。 最初に 'Declutter'を使用し、次に異常値を選択してそれらを除外することで、K Means Clusterダイアログウィンドウから手動でこれを行うことができます。 JMPスクリプトを使ってこのプロセスを自動化したいと思います。 私の計画は、'デクラッタ'関数を実行して最近傍の数を1に制限し、次に 'NN距離の保存'を列にして平均の3シグマの外側にある行を除外することです。その後、残りの座標でクラスター分析を実行します。
JMPスクリプトを使用してこれを実行する方法がわかりません。 最近傍点による異常値の識別および除外のアクションは、クラスター関数が始まる前に行わなければなりません。 これは私が立ち往生しているところです。
K Means ClusterダイアログをDeclutterプロットのままにしておき、ユーザーが外れ値を強調表示し、それらを除外してから、クラスタリングアルゴリズムを実行できるようにする方が簡単でしょうか。その場合、ユーザーがこれらのアクションを実行している間にスクリプトが一時停止し、クラスター機能が完了した後に続行することは可能ですか?クラスター結果に対して実行される追加のアクションがあります。
以下は、私が今持っているようなK平均クラスター関数の断片です。 nClusters変数は、最小の座標数を持つデータセットの行数によって定義されます。
obj = K平均クラスター (
Y ( : バツ 、 : Y ) 、
クラスター数 ( nClusters ) 、
個別にスケーリングされた列 ( 0 )
) ;
obj << Declutter(1,1);
obj << 行く ;
任意の助けは大歓迎です。
-Ry
再:どのように私はJMPのスクリプティングでKを意味クラスタを解読するのですかこんにちは
ありがとうございました。 この機能をさらに探ります。
宜しくお願いします、
Ry
再:どのように私はJMPのスクリプティングでKを意味クラスタを解読するのですかそれがJMP 12でどのように見えたかについての私の記憶は欠けていますが、John Sallはそれを参照しましたここにだから私はそれができると期待しています。Cols-> Modeling Utilitiesをチェックできますか?うまくいけばあなたはプラットフォームを通じて同じ分析を介して作業することができます。
再:どのように私はJMPのスクリプティングでKを意味クラスタを解読するのですかこんにちは
私はこの機能がJMP 12(私が使っているもの)で利用可能かどうかわからない。 私があなたがリストしたコードをテストするとき、「異常値の探索」ステップには結果がありません。 NN距離を保存しても列は生成されません。
よろしく、
Ry
再:どのように私は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;