gmdistribution
가우스 혼합 모델 생성
설명
gmdistribution
객체는 다변량 가우스 분포 성분으로 구성된 다변량 분포인 가우스 혼합 분포(가우스 혼합 모델 또는 GMM이라고도 함)를 저장합니다. 각 성분은 자체의 평균과 공분산으로 정의됩니다. 혼합은 혼합 비율로 구성된 벡터로 정의됩니다. 여기서 각 혼합 비율은 해당 성분을 설명하는 모집단 비율입니다.
생성
다음 두 가지 방법으로 gmdistribution
모델 객체를 생성할 수 있습니다.
여기서 다루는
gmdistribution
함수를 사용하여 분포 모수를 지정하여gmdistribution
모델 객체를 생성합니다.fitgmdist
함수를 사용해, 고정된 개수의 성분이 주어진 경우에gmdistribution
모델 객체를 데이터에 피팅합니다.
설명
입력 인수
mu
— 평균
k×m 숫자형 행렬
다변량 가우스 분포 성분의 평균으로, k×m 크기의 숫자형 행렬로 지정됩니다. 여기서 k는 성분의 개수이고 m은 각 성분에 포함된 변수의 개수입니다. mu(i,:)
는 성분 i
의 평균입니다.
데이터형: single
| double
sigma
— 공분산
숫자형 벡터 | 숫자형 행렬 | 숫자형 배열
다변량 가우스 분포 성분의 공분산으로, 숫자형 벡터, 행렬 또는 배열로 지정됩니다.
k가 성분의 개수이고 m이 각 성분에 포함된 변수의 개수라고 가정할 경우 sigma
는 다음 표에 나와 있는 값 중 하나입니다.
값 | 설명 |
---|---|
m×m×k 배열 | sigma(:,:,i) 는 성분 i 의 공분산 행렬입니다. |
1×m×k 배열 | 공분산 행렬이 대각 행렬이 됩니다. sigma(1,:,i) 는 성분 i 의 공분산 행렬의 대각선 요소를 포함합니다. |
m×m 행렬 | 모든 성분에 대한 공분산 행렬이 같습니다. |
1×m 벡터 | 모든 성분에 대해 공분산 행렬이 같으며, 공분산 행렬은 대각 행렬입니다. |
데이터형: single
| double
p
— 혼합 성분의 혼합 비율
길이가 k인 숫자형 벡터
혼합 성분의 혼합 비율로, 길이가 k인 숫자형 벡터로 지정됩니다. 여기서 k는 성분의 개수입니다. 디폴트 값은 1/k로 구성된 행 벡터인데 이는 모든 성분에 대해 동일한 혼합 비율을 설정합니다. p
의 총합이 1
이 되지 않는 경우, gmdistribution
이 합을 정규화합니다.
데이터형: single
| double
속성
분포 모수
mu
— 평균
k×m 숫자형 행렬
읽기 전용 속성입니다.
다변량 가우스 분포 성분의 평균으로, k×m 크기의 숫자형 행렬로 지정됩니다. 여기서 k는 성분의 개수이고 m은 각 성분에 포함된 변수의 개수입니다. mu(i,:)
는 성분 i
의 평균입니다.
데이터형: single
| double
Sigma
— 공분산
숫자형 벡터 | 숫자형 행렬 | 숫자형 배열
읽기 전용 속성입니다.
다변량 가우스 분포 성분의 공분산으로, 숫자형 벡터, 행렬 또는 배열로 지정됩니다.
k가 성분의 개수이고 m이 각 성분에 포함된 변수의 개수라고 가정할 경우 Sigma
는 다음 표에 나와 있는 값 중 하나입니다.
값 | 설명 |
---|---|
m×m×k 배열 | Sigma(:,:,i) 는 성분 i 의 공분산 행렬입니다. |
1×m×k 배열 | 공분산 행렬이 대각 행렬이 됩니다. Sigma(1,:,i) 는 성분 i 의 공분산 행렬의 대각선 요소를 포함합니다. |
m×m 행렬 | 모든 성분에 대한 공분산 행렬이 같습니다. |
1×m 벡터 | 모든 성분에 대해 공분산 행렬이 같으며, 공분산 행렬은 대각 행렬입니다. |
데이터형: single
| double
분포 특징
CovarianceType
— 공분산 행렬 유형
'diagonal'
| 'full'
읽기 전용 속성입니다.
공분산 행렬 유형으로, 'diagonal'
또는 'full'
로 지정됩니다.
gmdistribution
함수를 사용하여gmdistribution
객체를 생성하면gmdistribution
의sigma
입력 인수에 포함된 공분산 행렬의 유형에 따라 이 속성이 설정됩니다.fitgmdist
함수를 사용하여gmdistribution
객체를 데이터에 피팅하면fitgmdist
의'CovarianceType'
이름-값 쌍의 인수에 따라 이 속성이 설정됩니다.
DistributionName
— 분포 이름
'gaussian mixture distribution'
(디폴트 값)
읽기 전용 속성입니다.
분포 이름으로, 'gaussian mixture distribution'
으로 지정됩니다.
SharedCovariance
— 공유 공분산을 나타내는 플래그
true
| false
읽기 전용 속성입니다.
공분산 행렬이 혼합 성분 간에 공유되는지 여부를 나타내는 플래그로, true
또는 false
로 지정됩니다.
gmdistribution
함수를 사용하여gmdistribution
객체를 생성하면gmdistribution
의sigma
입력 인수에 포함된 공분산 행렬의 유형에 따라 이 속성이 설정됩니다.fitgmdist
함수를 사용하여gmdistribution
객체를 데이터에 피팅하면fitgmdist
의'SharedCovariance'
이름-값 쌍의 인수에 따라 이 속성이 설정됩니다.
데이터형: logical
피팅된 객체에 대한 속성
다음 속성은 fitgmdist
를 사용하여 생성하는 피팅된 객체에만 적용됩니다. 이 속성의 값은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
AIC
— 아카이케 정보 기준(AIC: Akaike's Information Criterion)
스칼라
읽기 전용 속성입니다.
아카이케 정보 기준(AIC)으로, 스칼라로 지정됩니다. AIC = 2*NlogL + 2*p
이며 여기서 NlogL
은 음의 로그 가능도(NegativeLogLikelihood
속성)이고 p
는 추정된 모수의 개수입니다.
AIC는 동일한 데이터에 대한 여러 모델 피팅을 비교하는 데 사용할 수 있는 모델 선택 도구입니다. AIC는 복잡도, 특히 모수 개수에 대한 벌점을 포함하는 모델 피팅에 대한 가능도 기반 측정값입니다. 여러 모델을 비교할 때는 AIC의 값이 더 작은 모델이 더 좋습니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: single
| double
BIC
— 베이즈 정보 기준(BIC: Bayesian Information Criterion)
스칼라
읽기 전용 속성입니다.
베이즈 정보 기준(BIC)으로, 스칼라로 지정됩니다. BIC = 2*NlogL + p*log(n)
이며 여기서 NlogL
은 음의 로그 가능도(NegativeLogLikelihood
속성)이고, n
은 관측값의 개수이며, p
는 추정된 모수의 개수입니다.
BIC는 동일한 데이터에 대한 여러 모델 피팅을 비교하는 데 사용할 수 있는 모델 선택 도구입니다. BIC는 복잡도, 특히 모수 개수에 대한 벌점을 포함하는 모델 피팅에 대한 가능도 기반 측정값입니다. 여러 모델을 비교할 때는 BIC 값이 가장 낮은 모델이 가장 적합한 피팅 모델입니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: single
| double
Converged
— 수렴을 나타내는 플래그
true
| false
읽기 전용 속성입니다.
가우스 혼합 모델을 피팅할 때 기대값 최대화(EM) 알고리즘이 수렴되는지 여부를 나타내는 플래그로, true
또는 false
로 지정됩니다.
fitgmdist
의 'Options'
이름-값 쌍의 인수를 사용하여 최적화 옵션을 변경할 수 있습니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: logical
NegativeLogLikelihood
— 음의 로그 가능도
스칼라
읽기 전용 속성입니다.
fitgmdist
의 입력 데이터 X
가 주어진 경우의 피팅된 가우스 혼합 모델의 음의 로그 가능도로, 스칼라로 지정됩니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: single
| double
NumIterations
— 반복 횟수
양의 정수
읽기 전용 속성입니다.
기대값 최대화(EM) 알고리즘의 반복 횟수로, 양의 정수로 지정됩니다.
fitgmdist
의 'Options'
이름-값 쌍의 인수를 사용하여 허용되는 최대 반복 횟수 등의 최적화 옵션을 변경할 수 있습니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: double
ProbabilityTolerance
— 사후 확률에 대한 허용오차
[0,1e-6]
범위의 음이 아닌 스칼라 값
읽기 전용 속성입니다.
사후 확률에 대한 허용오차로, [0,1e-6]
범위의 음이 아닌 스칼라 값이 지정됩니다.
fitgmdist
의 'ProbabilityTolerance'
이름-값 쌍의 인수가 이 속성을 설정합니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: single
| double
RegularizationValue
— 정규화 모수 값
음이 아닌 스칼라
읽기 전용 속성입니다.
정규화 모수 값으로, 음이 아닌 스칼라로 지정됩니다.
fitgmdist
의 'RegularizationValue'
이름-값 쌍의 인수가 이 속성을 설정합니다.
이 속성은 gmdistribution
함수를 사용하여 gmdistribution
객체를 생성하는 경우 비어 있습니다.
데이터형: single
| double
객체 함수
예제
gmdistribution
을 사용하여 가우스 혼합 분포 만들기
gmdistribution
함수를 사용하여 두 개의 성분을 갖는 이변량 가우스 혼합 분포를 생성합니다.
두 개의 이변량 가우스 혼합 성분으로 구성된 분포 모수(평균 및 공분산)를 정의합니다.
mu = [1 2;-3 -5];
sigma = cat(3,[2 .5],[1 1]) % 1-by-2-by-2 array
sigma = 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])
fitgmdist
를 사용하여 가우스 혼합 모델을 데이터에 피팅하기
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 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)