다양한 클러스터 번호로 일반 클러스터링 반복안녕하세요. 모든
나는 JSL에 특히 익숙한 JMP에 익숙하지 않고, 클러스터 번호를 사용하여 일반 클러스터링을 자동화하는 스크립트를 만들려고 노력 해왔다.
조건을 사용하여
그러나 for ()와 같은 itional 함수는 변수를 이해하지 못한다.
번호 만받습니다. 그래서 숫자 인자에 변수를 넣는 방법을 찾을 수 있기를 바랍니다.
다른 대안들.
내 스크립트는 다음과 같습니다.
nw = new window("clustering",
for(i=1, i<5, i++,
Normal Mixtures(
Y(:column names1, :column names2, :column names3 ),
{Mixtures Tolerance( 0.00000001 ), Mixtures MaxIter( 300 ),
Mixtures N Starts( 30 ), Outlier Cluster( 0 ), Diagonal Variance( 0 ),
Number of Clusters( i ), Go})));
Re : 일반적인 클러스터링을 다양한 클러스터 번호로 반복정말 감사합니다!! 정말 도움이되었습니다.
스칼라 값과 특정 함수의 벡터를 구별하는 것에 신중하지 않았습니다.Re : 일반적인 클러스터링을 다양한 클러스터 번호로 반복"r"의 값을 쓰면,
show( r );
값을 반환합니다.
r = [2];
메시지
<< 행 가져 오기 ()
스칼라 값이 아닌 값의 매트릭스를 반환합니다. "r"이라는 행렬의 첫 번째 요소 값을 썼다면,
Show( r[1] );
그것은
r[1] = 2;
그래서 문제의 해결책은 변수 "r"의 첫 번째 요소를 참조하는 것입니다.
dt << Normal Mixtures(
Y( :Sepal length, :Sepal width, :Petal length ),
{Mixtures Tolerance( 0.00000001 ), Mixtures MaxIter( 300 ), Mixtures N Starts( 30 ), Outlier Cluster( 0 ),
Diagonal Variance( 0 ), Number of Clusters( r[1] ), go}
);Re : 일반적인 클러스터링을 다양한 클러스터 번호로 반복안녕하세요.
답장을 보내 주셔서 감사합니다. 정말 내 문제 중 일부를 해결하는 데 도움이됩니다. 그러나 아직도 몇몇 문제는 해결되지 않습니다.
더 자세히 설명하자면, My Intention은 (1에서 n) (사용자가 추가 기능에 삽입하는 1보다 큰 정수) 클러스터 중에서 가장 적합한 정상 클러스터링 수를 선택하고 최적의 일반 클러스터 보고서 만 표시하는 스크립트를 작성하는 것이 었습니다.
txnelson의 대답 덕분에 나는 정상적인 클러스터링 숫자 (즉, 가장 작은 BIC)를 추출하는 스크립트를 만들 수있었습니다. 그러나 추출 된 최적의 클러스터링 번호 만 가진 정상 클러스터를 만드는 데 또 다른 어려움을 겪었습니다. 그리고 내 대본은 다음과 같습니다.
기본 이름은 여기에 있습니다 (1);
dt = Open ( "$ SAMPLE_DATA / Iris.jmp");
j = 7;
nw2 = 새 창 ( "클러스터링", vlb = V 목록 상자 ());
for (i = 1, i <= j, i ++,
obj = dt << 정상적인 혼합물 (
와이(
: Sepal 길이,
: 세퍼 (Sepal) 너비,
: 꽃잎 길이
),
{혼합물 허용 오차 (0.00000001), 혼합물 MaxIter (300),
혼합물 N 시작 (30), 이상 자 클러스터 (0), 대각선 분산 (0),
클러스터 수 (i)}
);
obj << 이동;
vlb << append (Report (obj));
obj << 창 닫기 ();
);
nw2 [tablebox (1)] << 결합 된 데이터 테이블 만들기;
pr = 현재 데이터 테이블 ();
mn = 콜 최소값 (: BIC);
r = pr << 행을 얻습니다. (: BIC == mn);
dt << 일반 혼합물 (Y (
: Sepal 길이,
: 세퍼 (Sepal) 너비,
: 꽃잎 길이
),
{혼합물 허용 오차 (0.00000001), 혼합물 MaxIter (300),
혼합물 N 시작 (30), 이상 자 클러스터 (0), 대각선 분산 (0),
클러스터 수 (r), 이동}
);
특정 클러스터 번호를 'r'변수에 저장 했더라도 '보통 혼합'은 해당 변수 값을 인식하지 못합니다. 'Normal Mixture'는 'for'기능과 함께 사용되는 경우에만 변수를 숫자로 간주합니다.
이 문제에 대한 대안이나 대안이 있기를 바랍니다.Re : 일반적인 클러스터링을 다양한 클러스터 번호로 반복안녕하세요.
답장을 보내 주셔서 감사합니다. 정말 내 문제 중 일부를 해결하는 데 도움이됩니다. 그러나 아직도 몇몇 문제는 해결되지 않습니다.
더 자세히 설명하자면, My Intention은 (1에서 n) (사용자가 추가 기능에 삽입하는 1보다 큰 정수) 클러스터 중에서 가장 적합한 정상 클러스터링 수를 선택하고 최적의 일반 클러스터 보고서 만 표시하는 스크립트를 작성하는 것이 었습니다.
txnelson의 대답 덕분에 나는 정상적인 클러스터링 숫자 (즉, 가장 작은 BIC)를 추출하는 스크립트를 만들 수있었습니다. 그러나 추출 된 최적의 클러스터링 번호 만 가진 정상 클러스터를 만드는 데 또 다른 어려움을 겪었습니다. 그리고 내 대본은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Iris.jmp" );
j=7;
nw2 = New Window( "clustering", vlb = V List Box() );
for(i=1, i<=j, i++,
obj = dt << Normal Mixtures(
Y(
:Sepal length,
:Sepal width,
:Petal length
),
{Mixtures Tolerance( 0.00000001 ), Mixtures MaxIter( 300 ),
Mixtures N Starts( 30 ), Outlier Cluster( 0 ), Diagonal Variance( 0 ),
Number of Clusters( i )}
);
obj << Go;
vlb << append( Report( obj ) );
obj << close window();
);
nw2[tablebox(1)] << make combined data table;
pr = current data table();
mn = Col Minimum(:BIC);
r = pr << get rows where(:BIC == mn);
dt << Normal Mixtures(Y(
:Sepal length,
:Sepal width,
:Petal length
),
{Mixtures Tolerance( 0.00000001 ), Mixtures MaxIter( 300 ),
Mixtures N Starts( 30 ), Outlier Cluster( 0 ), Diagonal Variance( 0 ),
Number of Clusters( r ),go}
);
특정 클러스터 번호를 'r'변수에 저장 했더라도 '보통 혼합'은 해당 변수 값을 인식하지 못합니다. 'Normal Mixture'는 'for'기능과 함께 사용되는 경우에만 변수를 숫자로 간주합니다.
이 문제에 대한 대안이나 대안이 있기를 바랍니다.
Re : 일반적인 클러스터링을 다양한 클러스터 번호로 반복Column Names1, 2 및 3으로 무엇을하고 있는지 잘 모르겠습니다. 나는 그들의 사용법을 아래에서 짐작했다. 다음은 내가 생각하는대로 작동하는 예제 스크립트입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Iris.jmp" );
nw = New Window( "clustering", vlb = V List Box() );
column names1 = "Sepal length";
column names2 = "Sepal width";
column names3 = "Petal length";
For( i = 1, i <= 4, i++,
obj = dt << Normal Mixtures(
Y(
Column( column names1 ),
Column( column names2 ),
Column( column names3 )
),
Number of Clusters( i )
);
obj << Go;
vlb << append( Report( obj ) );
obj << close window;
);