2012-02-28 7 views
2

関数を入力すると、Pythonに関数があり、ベイの決定境界がプロットされていますか?私はmatlabに1つがあることを知っているが、私はPythonでいくつかの関数を探しています。私はこれを達成するための1つの方法は、ポイントを反復することですが、私は組み込みの関数を探しています。 私は軸上にサンプル点を2変量していますが、それらを分類するために決定境界をプロットしたいと思います。確率関数を与えられたベイの決定境界をプロットするための関数を構築する

+1

あなたが探しているものを見つけることができるように、同等の 'matlab'関数は何ですか? – Hooked

+0

私は関数の名前を覚えていません。しかし、私はそれを何年か前に使っていました。また、お試しいただきありがとうございます –

+1

matlab関数はここにあります:http://www.mathworks.co.uk/help/toolbox/stats/bq_679x-24.html –

答えて

3

上記のコメントでChrisの推測を外して、ガウス分布モデルの線形結合であると仮定して、合理的な方法でポイントをクラスター化したいと仮定しています。以下では、numpyを使用してサンプルデータセットを作成し、GMモデリング用にsklearn、結果を表示するためにpylabを使用する例を示しました。

import numpy as np 
from pylab import * 
from sklearn import mixture 

# Create some sample data 
def G(mu, cov, pts): 
    return np.random.multivariate_normal(mu,cov,500) 

# Three multivariate Gaussians with means and cov listed below 
MU = [[5,3], [0,0], [-2,3]] 
COV = [[[4,2],[0,1]], [[1,0],[0,1]], [[1,2],[2,1]]] 

A = [G(mu,cov,500) for mu,cov in zip(MU,COV)] 
PTS = np.concatenate(A) # Join them together 

# Use a Gaussian Mixture model to fit 
g = mixture.GMM(n_components=len(A)) 
g.fit(PTS) 

# Returns an index list of which cluster they belong to 
C = g.predict(PTS) 

# Plot the original points 
X,Y = map(array, zip(*PTS)) 
subplot(211) 
scatter(X,Y) 

# Plot the points and color according to the cluster 
subplot(212) 
color_mask = ['k','b','g'] 
for n in xrange(len(A)): 
    idx = (C==n) 
    scatter(X[idx],Y[idx],color=color_mask[n]) 
show() 

enter image description here

分類方法の詳細については、sklearn.mixture exampleページを参照してください。

関連する問題