统计学习方法 第九章 习题

9.1

#include 
#include 

using namespace std;

double comput_prob(double pi,double p,int yi){
	double prob = 1.0*pi*pow(p,yi)*pow((1.0-p),(1-yi));
	return prob;
}

double emcomput_u(double *pipq,int yi){
	double pi = pipq[0];
	double p = pipq[1];
	double q = pipq[2];
	//注意该题只是默认所有的输出都是B硬币的输出,即是B输出模型 
	double ui = comput_prob(pi,p,yi)/(comput_prob(pi,p,yi)+comput_prob(1.0-pi,q,yi));
	return ui;
}

double comput_pi(double *U,int len){
	double sum = 0.0;
	for(int i =0;i

结果为:

9.2

统计学习方法 第九章 习题_第1张图片

9.3

#include 
#include 

using namespace std;

#define pi 3.1415926

double comput_Gaussiandst(double yj,double *thetak){
	double uk = thetak[0];
	double ok2 = thetak[1];
	double Gaud = (1.0/sqrt(2*pi*ok2))*exp(-1.0*pow(yj-uk,2)/(2*ok2));
	return Gaud;
}

void comput_Gamma(double **Gamma,double *Alpha,double *Y,double **Theta,int K,int N){
	for(int j = 0;j

结果:

输出5个参数,我不太明白,可能还是没有深刻理解,有大神可以给我留言

9.4

这两个是我觉得写得比较好的,但是我还是没有理解,先存放着以后再来解决

https://my.oschina.net/u/4366211/blog/4020385/print

http://danieljyc.github.io/2014/06/09/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A012-2--em%E7%AE%97%E6%B3%95--%E5%BA%94%E7%94%A8%E5%88%B0%E4%B8%89%E4%B8%AA%E6%A8%A1%E5%9E%8B%EF%BC%9A-%E9%AB%98%E6%96%AF%E6%B7%B7%E5%90%88%E6%A8%A1%E5%9E%8B-%EF%BC%8C%E6%B7%B7%E5%90%88%E6%9C%B4%E7%B4%A0%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%A8%A1%E5%9E%8B%EF%BC%8C%E5%9B%A0%E5%AD%90%E5%88%86%E6%9E%90%E6%A8%A1%E5%9E%8B%EF%BC%88%E4%B8%8B%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%89/#混合高斯模型

你可能感兴趣的:(自然语言处理)