혼합 고스 모형을 연구했다(그 1)
※ 지금 제 이해를 적었기 때문에 잘못된 부분도 있을 수 있습니다.이런 상황에서 지적할 수 있다면 나는 매우 기쁠 것이다.
혼합 고스 모형의 특징
고스 분포는 무엇입니까?
고스 분포는 정적 분포의 별명이다.
정적 분포는 평균 $\mu$와 방차 $\sigma$의 매개 변수를 지정하여 그 모양의 확률 분포를 결정합니다.
그 형상은 아래와 같이 좌우 대칭의 산 형상을 띠고 있다.
산꼭대기 부분의 평균값은 $\mu$이고 산의 너비는 $\sigma$입니다.
다음 방식을 통해python을 사용하여 고스 분포(정적 분포)에 부합되는 무작위 데이터를 생성할 수 있다.# ガウス分布に従うランダムなデータを生成
import numpy.random as rnd
data = rnd.normal(0,10,50)
# 結果を散布図で可視化
import matplotlib.pyplot as plt
plt.scatter(data,[0 for i in range(50)])
rnd.normal(mu,sigma,array_size)
첫 번째 파라미터의 평균 $\mu$, 두 번째 파라미터의 분포 $\sigma$, 세 번째 파라미터의 출력 데이터 크기를 지정합니다.
1차원 데이터를 생성할 때, 예를 들어 다음과 같다.
2차원이면 이런 느낌이야.# ガウス分布に従うランダムなデータを生成
import numpy.random as rnd
data = rnd.normal(0,10,(50,2))
# 結果を散布図で可視化
import matplotlib.pyplot as plt
plt.scatter(data[:,0],data[:,1])
plt.xlim(-30,30)
plt.ylim(-30,30)
3차원이면 이런 느낌이야참조 URL from mpl_toolkits.mplot3d import Axes3D
import numpy.random as rnd
data = rnd.normal(0,10,(200,3))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(data[:,0],data[:,1],data[:,2])
인상상 1차원이면 산이고 2차원은 원, 3차원은 공의 느낌이다.(모두 중심이 깊음)
4차원 이상은 가시화할 수 없지만 같은 인상이면 좋을 것 같아요.
혼합 고스 모형
혼합 고스 모델에서 가설적으로 주어진 데이터는 몇 개의 집단에 의해 구축되어야 하며 모든 집단은 고스 분포를 바탕으로 생성된다.
이 가설 아래 각 집단이 어떤 고스 분포로 표시할 수 있는지 추측하는 방법이다.
위에서 설명한 바와 같이, 고스 분포 (정적 분포) 는 평균 $\mu$와 방차 $\sigma$를 확인하여 그 모양을 확인하기 때문에 내부에서 이 인자들을 추정합니다.
해보다
예를 들어 다음과 같은 데이터가 있다고 가정한다.
이 데이터는 두 가지 서로 다른 고스 분포에 따라 생성된 데이터로 다음과 같다.import numpy.random as rnd
data1 = rnd.normal(0,10,50) # 平均0、分散10
data2 = rnd.normal(-40,10,50) # 平均-40、分散10
data_all = np.append(data1,data2)
plt.scatter(data_all,[0 for i in range(100)])
산에서 가시화되면 다음과 같은 느낌이다.
실제로 상술한 데이터는 scikit-learn의 혼합 고스 모델의 설치이다GaussianMixuture 반에서 해답을 시도했다.# 混合ガウスモデルでクラスタリングと可視化
from sklearn.mixture import GaussianMixture
from matplotlib import cm
# 想定するクラスタ数
cluster_num = 2
# データのshapeをあわせる(もっとうまいことできるはず。。。)
data_all = data_all.reshape((100,1))
data_all_2d = np.concatenate([data_all,np.zeros((100,1))],axis=1)
data_all_2d = data_all_2d.reshape((100,2))
# 各クラスタ用のガウス分布のパラメータを推定してデータをクラスタリング
pred = GaussianMixture(n_components=cluster_num).fit_predict(data_all_2d)
# 可視化
for i in range(cluster_num):
cluster_datas = data_all_2d[pred==i]
color = cm.jet(i/cluster_num)
plt.scatter(cluster_datas[:,0],cluster_datas[:,1],c=color,label='cluster {}'.format(i))
plt.legend()
plt.plot()
결과는 다음과 같다.
확실히 두 개의 집단으로 나눌 수 있다.
여러 가지 데이터로 해봤어요.
(2D 데이터)
다음은 분류하기 좋은 예이다.
[분류가 잘 안 되는 예]
혼합 고스 모델의 정의를 보면 명백히 알 수 있지만 고스 분포에 따르지 않는 상술한 데이터는 정확하게 분류할 수 없다.
(3D 데이터)
이것이 바로
이렇게 되다
이것도 잘 모르겠지만 고스 분포에 따라 3개의 데이터가 생성되어 정확하게 분류할 수 있다.
길어질 것 같아저것 계속.
Reference
이 문제에 관하여(혼합 고스 모형을 연구했다(그 1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/panda531/items/da283a5fee7e58c4cdc6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# ガウス分布に従うランダムなデータを生成
import numpy.random as rnd
data = rnd.normal(0,10,50)
# 結果を散布図で可視化
import matplotlib.pyplot as plt
plt.scatter(data,[0 for i in range(50)])
# ガウス分布に従うランダムなデータを生成
import numpy.random as rnd
data = rnd.normal(0,10,(50,2))
# 結果を散布図で可視化
import matplotlib.pyplot as plt
plt.scatter(data[:,0],data[:,1])
plt.xlim(-30,30)
plt.ylim(-30,30)
from mpl_toolkits.mplot3d import Axes3D
import numpy.random as rnd
data = rnd.normal(0,10,(200,3))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(data[:,0],data[:,1],data[:,2])
혼합 고스 모델에서 가설적으로 주어진 데이터는 몇 개의 집단에 의해 구축되어야 하며 모든 집단은 고스 분포를 바탕으로 생성된다.
이 가설 아래 각 집단이 어떤 고스 분포로 표시할 수 있는지 추측하는 방법이다.
위에서 설명한 바와 같이, 고스 분포 (정적 분포) 는 평균 $\mu$와 방차 $\sigma$를 확인하여 그 모양을 확인하기 때문에 내부에서 이 인자들을 추정합니다.
해보다
예를 들어 다음과 같은 데이터가 있다고 가정한다.
이 데이터는 두 가지 서로 다른 고스 분포에 따라 생성된 데이터로 다음과 같다.import numpy.random as rnd
data1 = rnd.normal(0,10,50) # 平均0、分散10
data2 = rnd.normal(-40,10,50) # 平均-40、分散10
data_all = np.append(data1,data2)
plt.scatter(data_all,[0 for i in range(100)])
산에서 가시화되면 다음과 같은 느낌이다.
실제로 상술한 데이터는 scikit-learn의 혼합 고스 모델의 설치이다GaussianMixuture 반에서 해답을 시도했다.# 混合ガウスモデルでクラスタリングと可視化
from sklearn.mixture import GaussianMixture
from matplotlib import cm
# 想定するクラスタ数
cluster_num = 2
# データのshapeをあわせる(もっとうまいことできるはず。。。)
data_all = data_all.reshape((100,1))
data_all_2d = np.concatenate([data_all,np.zeros((100,1))],axis=1)
data_all_2d = data_all_2d.reshape((100,2))
# 各クラスタ用のガウス分布のパラメータを推定してデータをクラスタリング
pred = GaussianMixture(n_components=cluster_num).fit_predict(data_all_2d)
# 可視化
for i in range(cluster_num):
cluster_datas = data_all_2d[pred==i]
color = cm.jet(i/cluster_num)
plt.scatter(cluster_datas[:,0],cluster_datas[:,1],c=color,label='cluster {}'.format(i))
plt.legend()
plt.plot()
결과는 다음과 같다.
확실히 두 개의 집단으로 나눌 수 있다.
여러 가지 데이터로 해봤어요.
(2D 데이터)
다음은 분류하기 좋은 예이다.
[분류가 잘 안 되는 예]
혼합 고스 모델의 정의를 보면 명백히 알 수 있지만 고스 분포에 따르지 않는 상술한 데이터는 정확하게 분류할 수 없다.
(3D 데이터)
이것이 바로
이렇게 되다
이것도 잘 모르겠지만 고스 분포에 따라 3개의 데이터가 생성되어 정확하게 분류할 수 있다.
길어질 것 같아저것 계속.
Reference
이 문제에 관하여(혼합 고스 모형을 연구했다(그 1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/panda531/items/da283a5fee7e58c4cdc6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy.random as rnd
data1 = rnd.normal(0,10,50) # 平均0、分散10
data2 = rnd.normal(-40,10,50) # 平均-40、分散10
data_all = np.append(data1,data2)
plt.scatter(data_all,[0 for i in range(100)])
# 混合ガウスモデルでクラスタリングと可視化
from sklearn.mixture import GaussianMixture
from matplotlib import cm
# 想定するクラスタ数
cluster_num = 2
# データのshapeをあわせる(もっとうまいことできるはず。。。)
data_all = data_all.reshape((100,1))
data_all_2d = np.concatenate([data_all,np.zeros((100,1))],axis=1)
data_all_2d = data_all_2d.reshape((100,2))
# 各クラスタ用のガウス分布のパラメータを推定してデータをクラスタリング
pred = GaussianMixture(n_components=cluster_num).fit_predict(data_all_2d)
# 可視化
for i in range(cluster_num):
cluster_datas = data_all_2d[pred==i]
color = cm.jet(i/cluster_num)
plt.scatter(cluster_datas[:,0],cluster_datas[:,1],c=color,label='cluster {}'.format(i))
plt.legend()
plt.plot()
(2D 데이터)
다음은 분류하기 좋은 예이다.
[분류가 잘 안 되는 예]
혼합 고스 모델의 정의를 보면 명백히 알 수 있지만 고스 분포에 따르지 않는 상술한 데이터는 정확하게 분류할 수 없다.
(3D 데이터)
이것이 바로
이렇게 되다
이것도 잘 모르겠지만 고스 분포에 따라 3개의 데이터가 생성되어 정확하게 분류할 수 있다.
길어질 것 같아저것 계속.
Reference
이 문제에 관하여(혼합 고스 모형을 연구했다(그 1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/panda531/items/da283a5fee7e58c4cdc6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)