Файл:Gaussianprocess posteriorMeanNoise.svg

Матеріал з testwiki
Перейти до навігації Перейти до пошуку
Повна роздільність (SVG-файл, номінально 360 × 180 пікселів, розмір файлу: 27 КБ)

Цей файл з Вікісховища і може використовуватися в інших проєктах. Далі наведена інформація з його сторінки опису.

Опис файлу

Опис
English: Posterior gaussian process with input noise visualized with posterior mean and confidence interval
Час створення
Джерело Власна робота
Автор Physikinger
SVG розвиток
InfoField
 Вихідний код цього SVG-файлу правильний.
 Це векторне зображення було створено з допомогою Matplotlib
Сирцевий код
InfoField

Python code

#This source code is public domain 
#Author: Christian Schirm
import numpy, scipy.spatial
import matplotlib.pyplot as plt
def covMat(x1, x2, covFunc, noise=0):  # Covariance matrix
    cov = covFunc(scipy.spatial.distance_matrix(numpy.atleast_2d(x1).T, numpy.atleast_2d(x2).T))
    if noise: cov += numpy.diag(numpy.ones(len(cov))*noise)
    return cov

def interpol(x_known, y_known, x_unknown, covFunc, noise=0, sigmaPrior=1):
    Ckk = covMat(x_known, x_known, covFunc)
    Cuk = covMat(x_unknown, x_known, covFunc, noise=0)
    y_unknown = numpy.dot(Cuk, numpy.dot(numpy.linalg.inv(Ckk), y_known)) 
    CkkInv = numpy.linalg.inv(Ckk)
    sigma_unknown = numpy.sqrt(sigmaPrior * sigmaPrior - numpy.diag(numpy.dot(Cuk, numpy.dot(CkkInv, Cuk.T))))
    return y_unknown, sigma_unknown
    
covFunc = lambda d: numpy.exp(-(d**1.9/8.)) # Covariance function

x_known = numpy.array([2,3,7])
y_known = numpy.array([-1,0,1])
x_unknown = numpy.linspace(0, 10, 300)
y_unknown, sigma_unknown = interpol(x_known, y_known, x_unknown, covFunc)    

Ckk = covMat(x_known, x_known, covFunc, noise=0.1)
Cuu = covMat(x_unknown, x_unknown, covFunc, noise=0.00)
CkkInv = numpy.linalg.inv(Ckk)
Cuk = covMat(x_unknown, x_known, covFunc, noise=0.0)
m = 0 #numpy.mean(y)
covPost = Cuu - numpy.dot(numpy.dot(Cuk,CkkInv),Cuk.T)
y_unknown = numpy.dot(numpy.dot(Cuk,CkkInv),y_known)

fig = plt.figure(figsize=(4.0,2))
plt.plot(x_unknown, y_unknown,  label=u'Prediction')
sigma = numpy.sqrt(numpy.diag(covPost))
plt.plot(x_known, y_known,'ko')
plt.fill_between(x_unknown.ravel(), y_unknown - sigma, y_unknown + sigma, color = '0.85')
plt.axis([0,10,-3,3])
plt.savefig('Gaussianprocess_posteriorMeanNoise.svg')

Ліцензування

Я, власник авторських прав на цей твір, добровільно публікую його на умовах такої ліцензії:
Creative Commons CC-Zero Цей файл доступний на умовах Creative Commons CC0 1.0 Universal Public Domain Dedication.
Особа, що пов'язала роботу з даною дією, передала роботу у суспільне надбання шляхом відмови від усіх своїх прав на роботу по всьому світу по закону про авторське право, включаючи всі пов'язані і суміжні права, в тій мірі, що допускається законом.

Ви можете копіювати, змінювати, розповсюджувати і виконувати роботу, навіть на комерційній основі, не питаючи дозволу.

Підписи

Додайте однорядкове пояснення, що саме репрезентує цей файл

Об'єкти, показані на цьому файлі

зображує

27 692 байт

Історія файлу

Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.

Дата/часМініатюраРозмір об'єктаКористувачКоментар
поточний22:56, 21 серпня 2017Мініатюра для версії від 22:56, 21 серпня 2017360 × 180 (27 КБ)wikimediacommons>PhysikingerUser created page with UploadWizard

Така сторінка використовує цей файл: