336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
가우시안 혼합 모델(Gaussian Mixture Model)
▶데이터마이닝, 패턴 인식, 머신 러닝, 통계분석 등에 광범위하게 쓰인다
▶모델의 파라미터들은 EM 알고리즘을 통해 구함
▶EM알고리즘은 2단계 / 1단계 샘플이 어느 가우시언에 속하는지 추정 / 2단계 매개변수 집합을 추정
▶K-Means 알고리즘에서는 유클리디언(Euclidean) 거리 함수를 사용하는 반면에 EM 알고리즘은 log-likelihood
함수를 사용하여 모델의 적합성을 평가
▶K-Means가 거리 기반 군집 방법인 것에 비하여 EM은 확률 기반
군집(Probability-based clustering)
|
Spark Sample Test
※ Spark Gaussian Mixture Model
▶각 가우스 i = 1..k에서 확률 w (i)로 점을 그려주는 k 개의 가우시안으로 구성 ▶mu (i)와 sigma (i)는 각각의 가우시안 분포 i = 1..k에 대한 각각의 평균과 공분산
|
※ Sample
2.59470454e+00 2.12298217e+00 1.15807024e+00 -1.46498723e-01 2.46206638e+00 6.19556894e-01 -5.54845070e-01 -7.24700066e-01 -3.23111426e+00 -1.42579084e+00 3.02978115e+00 7.87121753e-01 1.97365907e+00 1.15914704e+00 -6.44852101e+00 -3.18154314e+00 1.30963349e+00 1.62866434e-01 4.26482541e+00 2.15547996e+00 3.79927257e+00 1.50572445e+00 4.17452609e-01 -6.74032760e-01 .. .. ..
|
※ Source
● 데이터 로딩 String path = "data/mllib/gmm_data.txt";
JavaRDD<String> data = jsc.textFile(path);
JavaRDD<Vector> parsedData = data.map(
new Function<String, Vector>() {
public Vector call(String s) {
String[] sarray = s.trim().split(" ");
double[] values = new double[sarray.length];
for (int i = 0; i < sarray.length; i++) {
values[i] = Double.parseDouble(sarray[i]);
}
return Vectors.dense(values);
}
}
);
parsedData.cache();
● GaussianMixture를 사용하여 데이터를 두 개의 클래스로
GaussianMixtureModel gmm = new GaussianMixture().setK(2).run(parsedData.rdd());
● 결과
for (int j = 0; j < gmm.k(); j++) {
System.out.printf("weight=%f\nmu=%s\nsigma=\n%s\n",
gmm.weights()[j], gmm.gaussians()[j].mu(), gmm.gaussians()[j].sigma());
}
weight=0.481115 mu=[0.07216446143880562,0.016666002049897922] sigma= 4.77550446695817 1.8740333845838861 1.8740333845838861 0.9138948949196656
weight=0.518885 mu=[-0.10460959883873233,0.04290498889372796] sigma= 4.911130251912797 -2.008943030663285 -2.008943030663285 1.0122638020598331
System.out.println(gmm.predict(parsedData).collect());
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, ..
|