infomeasure.c

来自「vc的源代码程序的基于最小特征向量的元素的集合方法的程序源代码」· C语言 代码 · 共 34 行

C
34
字号
#include "infoMeasure.h"float plogp(float P){	if(P<0.0000001) return 0; // assume it is ZERO//	cout << "P=" << P <<";";	return P*log(P)/log(2.0);}float entropy (int MaxClass, int *CntV, int Cnt){	float v=0;		for(int k=0; k<MaxClass; k++)	{		v += plogp((float)CntV[k]/Cnt);//		cout << CntV[k] <<"/"<<Cnt<< "="<<(float)CntV[k]/Cnt<<"|";	}	return -v;}float infoMeasure(int MaxClass, int *leftCntV, int *rightCntV,  int leftCnt, int rightCnt, int total)  // total = leftCnt+rightCnt{	// the division to total can be ignored, as it	// will not	// affact the comparing reslts. 	return( (entropy(MaxClass, leftCntV, leftCnt)*leftCnt 		+ entropy(MaxClass, rightCntV, rightCnt)*rightCnt)/total);}

⌨️ 快捷键说明

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