【发布时间】:2019-04-25 21:49:08
【问题描述】:
我在 python 中使用 sklearn 的 Gaussianmixture (GM) 来识别星团的成员。 GM调整了两个组件,其他是默认的。如图所示,一颗明显不是星团成员的恒星(带有红点)作为成员出现。中间图表中聚集的红点可能是我的成员。但是这个左上角的单个红点不应该是成员。因为它离这个中间群体还不够近。
我的python代码是
import numpy as np
from numpy import array
import pandas as pd
from sklearn.mixture import GaussianMixture
import matplotlib.pyplot as plt
from matplotlib import style
import matplotlib.colors as mtcolor
style.use("seaborn-white")
clist = ["gray", "red"]
cmap = mtcolor.ListedColormap(clist)
eX = pd.read_csv("mysatrs.csv", usecols=['col1', 'col2', 'col3']).values
col0m = (eX[:,0] >= -5) & (eX[:,0] <= 5)
col1m = (eX[:,1] >= -5) & (eX[:,1] <= 5)
col2m = (eX[:,2] > 0)
X = eX[col0m & col1m & col2m]
plt.figure(figsize=(6,6))
hcgmm = GaussianMixture(n_components=2)
gmmfit = hcgmm.fit(X)
gmmprd = gmmfit.predict(X)
hcprobs = gmmfit.predict_proba(X)
hcmns = hcgmm.means_
plt.scatter(X[:,0], X[:,1], c=gmmprd, s=3, cmap=cmap)
plt.show()
是否应该对GM进行另一次调整?
【问题讨论】:
标签: python scikit-learn