📄 infomeasure.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -