Пример #1
0
	def get_vector_spline(self,X,Y,sigma,period):
		if len(self.combine_index)==self.p:
			spline= prob_spline.PoissonSpline(sigma = sigma,period=period)
		else:
			spline = prob_spline.MultinomialSpline(sigma = sigma,period = period)
		spline.fit(X,Y.T)
		return(spline)
Пример #2
0
	def get_host_splines(self,X,Y_mat,sigma,period):
		splines=[]
		for i in range(len(Y_mat)):
			Y = numpy.squeeze(Y_mat[i,:])
			poisson_spline = prob_spline.PoissonSpline(sigma = sigma[i], period=period)
			poisson_spline.fit(X, Y)
			splines.append(poisson_spline)
		return(splines)
Пример #3
0
	def get_host_splines(self,X,Y_mat,sigma,period):
		Y = numpy.squeeze(Y_mat.T)
		poisson_spline = prob_spline.PoissonSpline(sigma = sigma, period=period)
		poisson_spline.fit(X, Y)
		return(poisson_spline)
Пример #4
0
s = pyplot.scatter(X,
                   Y,
                   s=30,
                   color='black',
                   zorder=3,
                   label='Poisson($\mu(x)$) samples')
handles.append(s)

# Build a spline using the normal loglikelihood.
normal_spline = prob_spline.NormalSpline(sigma=0)
normal_spline.fit(X, Y)
l = pyplot.plot(x,
                normal_spline(x),
                label='Fitted NormalSpline($\sigma =$ {:g})'.format(
                    normal_spline.sigma))
handles.append(l[0])

# Build a spline using the Poisson loglikelihood.
poisson_spline = prob_spline.PoissonSpline(sigma=0)
poisson_spline.fit(X, Y)
l = pyplot.plot(x,
                poisson_spline(x),
                label='Fitted PoissonSpline($\sigma =$ {:g})'.format(
                    poisson_spline.sigma))
handles.append(l[0])

# Add decorations to plot.
pyplot.xlabel('$x$')
pyplot.legend(handles, [h.get_label() for h in handles])
pyplot.show()
Пример #5
0
import seaborn
import sklearn.model_selection

import prob_spline
import test_common

npoints = 20

numpy.random.seed(2)

# Get Poisson samples around mu(x).
X_pad = 1 / 2 / npoints
X = numpy.linspace(X_pad, 1 - X_pad, npoints)
Y = scipy.stats.poisson.rvs(test_common.mu(X))

spline = prob_spline.PoissonSpline()
# Find the best sigma value by K-fold cross-validation.
kfold = sklearn.model_selection.KFold(n_splits=5, shuffle=True)
param_grid = dict(sigma=numpy.logspace(-8, 2, 21))
gridsearch = sklearn.model_selection.GridSearchCV(spline,
                                                  param_grid,
                                                  cv=kfold,
                                                  error_score=0)
gridsearch.fit(X, Y)
spline = gridsearch.best_estimator_

pyplot.subplot(2, 1, 1)
pyplot.plot(param_grid['sigma'],
            gridsearch.cv_results_['mean_test_score'],
            marker='o')
i = numpy.argmax(gridsearch.cv_results_['mean_test_score'])