Встроенная функция для построения границы байесовского решения с учетом функции вероятности - PullRequest
2 голосов
/ 28 февраля 2012

Есть ли в python функция, которая отображает границу байесовского решения, если мы введем в нее функцию? Я знаю, что есть одна в Matlab, но я ищу какую-то функцию в Python. Я знаю, что один из способов добиться этого - перебирать точки, но я ищу встроенную функцию. У меня есть двумерные выборочные точки на оси, и я хочу построить границу решения для их классификации.

1 Ответ

3 голосов
/ 29 февраля 2012

Исходя из предположения Криса в комментариях выше, я предполагаю, что вы хотите кластеризовать точки в соответствии с моделью гауссовой смеси - разумный метод, предполагающий, что лежащее в основе распределение представляет собой линейную комбинацию распределенных выборок Гаусса. Ниже я показал пример использования numpy для создания примера набора данных, sklearn для его GM-моделирования и 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...