안녕하세요 JMP 커뮤니티입니다.
K-means 클러스터에서 가능한 방식으로 공통 척도를 사용하여 PCA를 수행하는 방법이 있습니까?
공통 스케일 K-means 클러스터가 내 데이터에 훨씬 더 좋기 때문에 묻습니다. 그러나 클러스터링 데이터를 제거하고 축이 있는 PCA biplot만 표시하고 싶습니다.
최상의,
질문을 이해하지 못할 수도 있지만 상관 관계에 대해 PCA를 수행할 때 PCA는 모든 변수를 자동으로 중앙에 놓고 스케일링합니다. 따라서 모든 변수는 동일한 척도에 있습니다.
안녕하세요 PCA의 배율은 "개별적으로 배율 조정된 열" 옵션이 선택된 경우 K-평균과 동일합니다.
그러나 "개별적으로 크기 조정된 열" 옵션이 선택되지 않은 경우 Kmeans가 수행할 수 있는 것처럼 PCA로 공통 크기 조정을 수행하는 방법을 찾을 수 없습니다.
내가 이 작업을 수행해야 하는 이유는 K-means biplot에 축에서 설명하는 분산이 포함되어 있지 않기 때문입니다. 누구든지 K-means 플롯이 해당 값을 표시하도록 하는 방법을 알고 있다면 감사하겠습니다!
K-Means에 대한 JMP 도움말:
개별적으로 축척된 열
다른 열과 독립적으로 각 열의 크기를 조정합니다. 변수가 공통 측정 척도를 공유하지 않고 하나의 변수가 클러스터링 프로세스를 지배하는 것을 원하지 않을 때 사용합니다. 예를 들어, 한 변수에는 0에서 1000 사이의 값이 있고 다른 변수에는 0에서 10 사이의 값이 있을 수 있습니다. 이 경우 클러스터링 프로세스가 첫 번째 변수에 의해 지배되지 않도록 옵션을 사용할 수 있습니다.
개별적으로 스케일링하지 않으면 변수를 스케일링하지 않습니다.
주성분에서 이를 재현하려면 비축척에서 주성분을 선택하십시오(주성분의 빨간색 팝업 메뉴에서 사용 가능). 그러나 이러한 결과가 의미가 있으려면 모든 변수가 유사한 척도에 있어야 합니다.
추가하려면 @Dan_Obermiller 의견, 나는 K Means가 해당 옵션을 사용할 때 열의 크기를 조정하지 않고 열을 가운데에 배치한다고 생각하므로 PCA로 분석을 복제하려면 먼저 열을 가운데에 둔 다음 배율 조정되지 않은 PCA를 수행하고 싶을 것입니다.이변량 아래의 스크립트를 실행하면 점수 플롯이 일치해야 합니다.
Names default to here(1);
dt = Open( "$Sample_data/Lipid Data.jmp" );
//Center columns
dt << New Column("Age Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Age - Col Mean(:Age)));
dt << New Column("Weight Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Weight - Col Mean(:Weight)));
dt << New Column("Cholesterol Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Cholesterol - Col Mean(:Cholesterol)));
dt << New Column("Triglycerides Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Triglycerides - Col Mean(:Triglycerides)));
//Window with both analyses:
New Window( "Compare",
H List Box(
//K Means common scale:
dt << K Means Cluster(
Y( :Age, :Weight, :Cholesterol, :Triglycerides ),
Columns Scaled Individually( 0 ),
{Single Step( 0 ), Number of Clusters( 3 ), K Means Cluster,
Go( Show Biplot Rays( [0, 0, 1] ), Biplot( 1 ) )}
),
//PCA unscaled using centered columns
dt << Principal Components(
Y( :Age Centered, :Weight Centered, :Cholesterol Centered, :Triglycerides Centered ),
Estimation Method( "Default" ),
"on Unscaled"
)
)
);