gmdistribution
가우스 혼합 모델 생성
설명
gmdistribution 객체는 다변량 가우스 분포 성분으로 구성된 다변량 분포인 가우스 혼합 분포(가우스 혼합 모델 또는 GMM이라고도 함)를 저장합니다. 각 성분은 자체의 평균과 공분산으로 정의됩니다. 혼합은 혼합 비율로 구성된 벡터로 정의됩니다. 여기서 각 혼합 비율은 해당 성분을 설명하는 모집단 비율입니다.
생성
다음 두 가지 방법으로 gmdistribution 모델 객체를 생성할 수 있습니다.
여기서 다루는
gmdistribution함수를 사용하여 분포 모수를 지정하여gmdistribution모델 객체를 생성합니다.fitgmdist함수를 사용해, 고정된 개수의 성분이 주어진 경우에gmdistribution모델 객체를 데이터에 피팅합니다.
설명
입력 인수
다변량 가우스 분포 성분의 평균으로, k×m 크기의 숫자형 행렬로 지정됩니다. 여기서 k는 성분의 개수이고 m은 각 성분에 포함된 변수의 개수입니다. mu(i,:)는 성분 i의 평균입니다.
데이터형: single | double
다변량 가우스 분포 성분의 공분산으로, 숫자형 벡터, 행렬 또는 배열로 지정됩니다.
k가 성분의 개수이고 m이 각 성분에 포함된 변수의 개수라고 가정할 경우 sigma는 다음 표에 나와 있는 값 중 하나입니다.
| 값 | 설명 |
|---|---|
| m×m×k 배열 | sigma(:,:,i)는 성분 i의 공분산 행렬입니다. |
| 1×m×k 배열 | 공분산 행렬이 대각 행렬이 됩니다. sigma(1,:,i)는 성분 i의 공분산 행렬의 대각선 요소를 포함합니다. |
| m×m 행렬 | 모든 성분에 대한 공분산 행렬이 같습니다. |
| 1×m 벡터 | 모든 성분에 대해 공분산 행렬이 같으며, 공분산 행렬은 대각 행렬입니다. |
데이터형: single | double
혼합 성분의 혼합 비율로, 길이가 k인 숫자형 벡터로 지정됩니다. 여기서 k는 성분의 개수입니다. 디폴트 값은 1/k로 구성된 행 벡터인데 이는 모든 성분에 대해 동일한 혼합 비율을 설정합니다. p의 총합이 1이 되지 않는 경우, gmdistribution이 합을 정규화합니다.
데이터형: single | double
속성
분포 모수
읽기 전용 속성입니다.
다변량 가우스 분포 성분의 평균으로, k×m 크기의 숫자형 행렬로 지정됩니다. 여기서 k는 성분의 개수이고 m은 각 성분에 포함된 변수의 개수입니다. mu(i,:)는 성분 i의 평균입니다.
데이터형: single | double
읽기 전용 속성입니다.
다변량 가우스 분포 성분의 공분산으로, 숫자형 벡터, 행렬 또는 배열로 지정됩니다.
k가 성분의 개수이고 m이 각 성분에 포함된 변수의 개수라고 가정할 경우 Sigma는 다음 표에 나와 있는 값 중 하나입니다.
| 값 | 설명 |
|---|---|
| m×m×k 배열 | Sigma(:,:,i)는 성분 i의 공분산 행렬입니다. |
| 1×m×k 배열 | 공분산 행렬이 대각 행렬이 됩니다. Sigma(1,:,i)는 성분 i의 공분산 행렬의 대각선 요소를 포함합니다. |
| m×m 행렬 | 모든 성분에 대한 공분산 행렬이 같습니다. |
| 1×m 벡터 | 모든 성분에 대해 공분산 행렬이 같으며, 공분산 행렬은 대각 행렬입니다. |
데이터형: single | double
분포 특징
읽기 전용 속성입니다.
공분산 행렬 유형으로, 'diagonal' 또는 'full'로 지정됩니다.
gmdistribution함수를 사용하여gmdistribution객체를 생성하면gmdistribution의sigma입력 인수에 포함된 공분산 행렬의 유형에 따라 이 속성이 설정됩니다.fitgmdist함수를 사용하여gmdistribution객체를 데이터에 피팅하면fitgmdist의'CovarianceType'이름-값 쌍의 인수에 따라 이 속성이 설정됩니다.
읽기 전용 속성입니다.
분포 이름으로, 'gaussian mixture distribution'으로 지정됩니다.
읽기 전용 속성입니다.
공분산 행렬이 혼합 성분 간에 공유되는지 여부를 나타내는 플래그로, true 또는 false로 지정됩니다.
gmdistribution함수를 사용하여gmdistribution객체를 생성하면gmdistribution의sigma입력 인수에 포함된 공분산 행렬의 유형에 따라 이 속성이 설정됩니다.fitgmdist함수를 사용하여gmdistribution객체를 데이터에 피팅하면fitgmdist의'SharedCovariance'이름-값 쌍의 인수에 따라 이 속성이 설정됩니다.
데이터형: logical
피팅된 객체에 대한 속성
다음 속성은 fitgmdist를 사용하여 생성하는 피팅된 객체에만 적용됩니다. 이 속성의 값은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
읽기 전용 속성입니다.
아카이케 정보 기준(AIC)으로, 스칼라로 지정됩니다. AIC = 2*NlogL + 2*p이며 여기서 NlogL은 음의 로그 가능도(NegativeLogLikelihood 속성)이고 p는 추정된 모수의 개수입니다.
AIC는 동일한 데이터에 대한 여러 모델 피팅을 비교하는 데 사용할 수 있는 모델 선택 도구입니다. AIC는 복잡도, 특히 모수 개수에 대한 벌점을 포함하는 모델 피팅에 대한 가능도 기반 측정값입니다. 여러 모델을 비교할 때는 AIC의 값이 더 작은 모델이 더 좋습니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: single | double
읽기 전용 속성입니다.
베이즈 정보 기준(BIC)으로, 스칼라로 지정됩니다. BIC = 2*NlogL + p*log(n)이며 여기서 NlogL은 음의 로그 가능도(NegativeLogLikelihood 속성)이고, n은 관측값의 개수이며, p는 추정된 모수의 개수입니다.
BIC는 동일한 데이터에 대한 여러 모델 피팅을 비교하는 데 사용할 수 있는 모델 선택 도구입니다. BIC는 복잡도, 특히 모수 개수에 대한 벌점을 포함하는 모델 피팅에 대한 가능도 기반 측정값입니다. 여러 모델을 비교할 때는 BIC 값이 가장 낮은 모델이 가장 적합한 피팅 모델입니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: single | double
읽기 전용 속성입니다.
가우스 혼합 모델을 피팅할 때 기대값 최대화(EM) 알고리즘이 수렴되는지 여부를 나타내는 플래그로, true 또는 false로 지정됩니다.
fitgmdist의 'Options' 이름-값 쌍의 인수를 사용하여 최적화 옵션을 변경할 수 있습니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: logical
읽기 전용 속성입니다.
fitgmdist의 입력 데이터 X가 주어진 경우의 피팅된 가우스 혼합 모델의 음의 로그 가능도로, 스칼라로 지정됩니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: single | double
읽기 전용 속성입니다.
기대값 최대화(EM) 알고리즘의 반복 횟수로, 양의 정수로 지정됩니다.
fitgmdist의 'Options' 이름-값 쌍의 인수를 사용하여 허용되는 최대 반복 횟수 등의 최적화 옵션을 변경할 수 있습니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: double
읽기 전용 속성입니다.
사후 확률에 대한 허용오차로, [0,1e-6] 범위의 음이 아닌 스칼라 값이 지정됩니다.
fitgmdist의 'ProbabilityTolerance' 이름-값 쌍의 인수가 이 속성을 설정합니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: single | double
읽기 전용 속성입니다.
정규화 모수 값으로, 음이 아닌 스칼라로 지정됩니다.
fitgmdist의 'RegularizationValue' 이름-값 쌍의 인수가 이 속성을 설정합니다.
이 속성은 gmdistribution 함수를 사용하여 gmdistribution 객체를 생성하는 경우 비어 있습니다.
데이터형: single | double
객체 함수
예제
gmdistribution 함수를 사용하여 두 개의 성분을 갖는 이변량 가우스 혼합 분포를 생성합니다.
두 개의 이변량 가우스 혼합 성분으로 구성된 분포 모수(평균 및 공분산)를 정의합니다.
mu = [1 2;-3 -5];
sigma = cat(3,[2 .5],[1 1]) % 1-by-2-by-2 arraysigma =
sigma(:,:,1) =
2.0000 0.5000
sigma(:,:,2) =
1 1
cat 함수는 세 번째 배열 차원을 따라 공분산을 결합합니다. 정의된 공분산 행렬은 대각 행렬입니다. sigma(1,:,i)는 성분 i의 공분산 행렬의 대각선 요소를 포함합니다.
gmdistribution 객체를 생성합니다. 기본적으로, gmdistribution 함수는 성분의 비율이 동일하도록 혼합합니다.
gm = gmdistribution(mu,sigma)
gm = Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean: 1 2 Component 2: Mixing proportion: 0.500000 Mean: -3 -5
gm 객체의 속성을 나열합니다.
properties(gm)
Properties for class gmdistribution:
NumVariables
DistributionName
NumComponents
ComponentProportion
SharedCovariance
NumIterations
RegularizationValue
NegativeLogLikelihood
CovarianceType
mu
Sigma
AIC
BIC
Converged
ProbabilityTolerance
점 표기법을 사용하여 이러한 속성에 액세스할 수 있습니다. 예를 들어, 혼합 성분의 혼합 비율을 나타내는 ComponentProportion 속성에 액세스해 보겠습니다.
gm.ComponentProportion
ans = 1×2
0.5000 0.5000
gmdistribution 객체에는 피팅된 객체에만 적용되는 속성이 있습니다. 피팅된 객체 속성은 AIC, BIC, Converged, NegativeLogLikelihood, NumIterations, ProbabilityTolerance 및 RegularizationValue입니다. gmdistribution 함수를 사용하고 분포 모수를 지정하여 객체를 생성하는 경우 피팅된 객체 속성의 값은 비어 있습니다. 예를 들어, 점 표기법을 사용하여 NegativeLogLikelihood 속성에 액세스해 보십시오.
gm.NegativeLogLikelihood
ans =
[]
gmdistribution 객체를 생성한 후에는 객체 함수를 사용할 수 있습니다. 누적 분포 함수(cdf) 및 확률 밀도 함수(pdf)의 값을 계산하려면 cdf 및 pdf를 사용하십시오. 확률 벡터를 생성하려면 random을 사용하십시오. 군집 분석을 수행하려면 cluster, mahal, posterior를 사용하십시오.
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y); fsurf(gmPDF,[-10 10])

mvnrnd 함수를 사용하여 두 개의 혼합된 이변량 가우스 분포를 따르는 확률 변량을 생성합니다. fitgmdist 함수를 사용하여 가우스 혼합 모델(GMM)을 생성된 데이터에 피팅합니다.
두 개의 이변량 가우스 혼합 성분으로 구성된 분포 모수(평균 및 공분산)를 정의합니다.
mu1 = [1 2]; % Mean of the 1st component sigma1 = [2 0; 0 .5]; % Covariance of the 1st component mu2 = [-3 -5]; % Mean of the 2nd component sigma2 = [1 0; 0 1]; % Covariance of the 2nd component
각 성분에서 같은 개수의 확률 변량을 생성하여 이 두 확률 변량 집합을 결합합니다.
rng('default') % For reproducibility r1 = mvnrnd(mu1,sigma1,1000); r2 = mvnrnd(mu2,sigma2,1000); X = [r1; r2];
결합된 데이터 세트 X에는 두 개의 혼합된 이변량 가우스 분포를 따르는 확률 변량이 있습니다.
두 개의 성분을 갖는 GMM을 X에 피팅합니다.
gm = fitgmdist(X,2)
gm = Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean: -2.9617 -4.9727 Component 2: Mixing proportion: 0.500000 Mean: 0.9539 2.0261
gm 객체의 속성을 나열합니다.
properties(gm)
Properties for class gmdistribution:
NumVariables
DistributionName
NumComponents
ComponentProportion
SharedCovariance
NumIterations
RegularizationValue
NegativeLogLikelihood
CovarianceType
mu
Sigma
AIC
BIC
Converged
ProbabilityTolerance
점 표기법을 사용하여 이러한 속성에 액세스할 수 있습니다. 예를 들어, 피팅된 모델이 주어진 경우 데이터 X에 대한 음의 로그 가능도를 나타내는 NegativeLogLikelihood 속성에 액세스해 보겠습니다.
gm.NegativeLogLikelihood
ans = 7.0584e+03
gmdistribution 객체를 생성한 후에는 객체 함수를 사용할 수 있습니다. 누적 분포 함수(cdf) 및 확률 밀도 함수(pdf)의 값을 계산하려면 cdf 및 pdf를 사용하십시오. 확률 변량을 생성하려면 random을 사용하십시오. 군집 분석을 수행하려면 cluster, mahal, posterior를 사용하십시오.
scatter를 사용하여 X를 플로팅합니다. pdf 및 fcontour를 사용하여 피팅된 모델 gm을 시각화합니다.
scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10 hold on gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y); fcontour(gmPDF,[-8 6])

참고 문헌
[1] McLachlan, G., and D. Peel. Finite Mixture Models. Hoboken, NJ: John Wiley & Sons, Inc., 2000.
버전 내역
R2007b에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)