4.2MAP learning of univariate normal parameters

这篇博客介绍了如何使用MATLAB和Python进行单变量正态分布参数的最大后验概率(MAP)学习。在MATLAB中,步骤包括函数定义和示例代码的展示,文件位于F盘的指定路径。而在Python环境下,虽然函数已经定义,但尚未添加validate_input42()验证函数,示例代码可在C盘的Jupyter notebook中找到。
摘要由CSDN通过智能技术生成

在这里插入图片描述
matlab:
step1: function definition
F:\code_computer vision models learning and inference\cvm_recode_matlab
在这里插入图片描述
step2: example
F:\code_computer vision models learning and inference\cvm_recode_matlab
map_norm_ex1.m
在这里插入图片描述
在这里插入图片描述
python:
step1:function definition
C:\Users\Administrator\Algorithm.py
ps:还没有加入validate_input42()
在这里插入图片描述
step2:
C:\Users\Administrator\Algorithm.py\cvm_example.ipynb

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import Algorithm as mine
import scipy.stats as st #也可以使用scipy库中的相关api
%matplotlib inline
# Author:hiddry refernce fom author Stefan Stavrev 2013
# Generate random values from the normal distribution with
# mean value original_mu and standard deviation original_sig.
original_mu = 5
original_sig = 8
# I can be modified in order to see how MAP behaves for small
# vs big amount of data.
I = 100
r = st.norm(original_mu,original_sig).rvs(I)
print("type of r:",type(r))
print("r.shape:",r.shape)
print("r.ndim:",r.ndim)
print("r.min()",r.min)
print("r.max()",r.max)


# Estimate the mean and variance for the data in r.
# Values used for alpha, beta, gamma and delta are(1,1,1,0)
# for the sake of the example. Ohter values can be tried too.
estimated_mu, estimated_var = mine.A422(r,1,1,1,0)
print("Estimated mean:",estimated_mu)
print("Estimated_var:",estimated_var)
estimated_sig = np.sqrt(estimated_var)

# use algotithm 4.1 to compare.
mle_estimated_mu ,mle_estimated_var = mine.Mln(r)
mle_estimated_sig = np.sqrt(mle_estimated_var)

# Estimate and print the error for the mean and the standard deviation.MAP
muError = np.abs(original_mu - estimated_mu)
sigError = np.abs(original_sig - estimated_sig)
print("muError:",muError)
print("sigError",sigError)

# Plot the original and the estimated models for comparison.
x = np.linspace(r.min(),r.max())
plt.plot(x, st.norm(original_mu,original_sig).pdf(x),c='g',label = 'original')
plt.plot(x, st.norm(estimated_mu,estimated_sig).pdf(x),c='b',label = 'MAP')
plt.plot(x, st.norm(mle_estimated_mu,mle_estimated_sig).pdf(x),c = 'r',label = 'MLE')
plt.xlabel('x',fontsize=16)
plt.ylabel('',fontsize=16)
plt.legend(loc = 'upper right')
plt.xticks([])
plt.yticks([])
plt.title('(d)',fontsize=14)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值