⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gmmgaussiannumestimate.m

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 M
字号:
function [bestMixNum, trainLogProb, testLogProb]=gmmGaussianNumEstimate(trainingData, testData, maxGaussianNum, covType, plotOpt)
% gmmMixNumEstimate: Estimate the number of mixture number of a GMM
%	Usage: bestMixNum=gmmGaussianNumEstimate(trainingData, testData, maxGaussianNum, covType, plotOpt)

%	Roger Jang, 20071222

if nargin<1, selfdemo; return; end
if nargin<3, maxGaussianNum=50; end
if nargin<4, covType=1; end
if nargin<5, plotOpt=0; end

trainLogProb=nan*zeros(1, maxGaussianNum);
testLogProb=nan*zeros(1, maxGaussianNum);
for i=1:maxGaussianNum
	[gmmParam, logProbHist] = gmmTrain(trainingData, [i, covType]);
	trainLogProb(i)=logProbHist(end);
	logProb2 = gmmEval(testData, gmmParam);
	testLogProb(i)=sum(logProb2);
	if plotOpt
		fprintf('%d/%d: training LP = %f, test LP = %f\n', i, maxGaussianNum, trainLogProb(i), testLogProb(i));
	end
end
plot(1:maxGaussianNum, trainLogProb, 'o-', 1:maxGaussianNum, testLogProb, 'square-');
[junk, bestMixNum]=max(testLogProb);
line(bestMixNum, testLogProb(bestMixNum), 'color', 'r', 'marker', '*');
legend('Training log prob', 'Test log prob');
grid on

% ====== Selfdemo
function selfdemo
data=dcdata(2);
data=data.input;
trainingData=data(:, 1:2:end);
testData =data(:, 2:2:end);
maxGaussianNum=50;
covType=1;
plotOpt=1;
bestMixNum=gmmGaussianNumEstimate(trainingData, testData, maxGaussianNum, covType, plotOpt);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -