基尼指数计算
来源:互联网 发布:ubuntu 卸载mysql 编辑:程序博客网 时间:2024/04/29 21:40
一种简单的基尼指数计算方法
训练数据:remainData
[[Rid, Student, Age, BuysComputer],
[1, No, Senior, Yes],
[2, No, MiddleAged, Yes],
[3, Yes, MiddleAged, Yes],
[4, No, Senior, No],
[5, Yes, Senior, Yes]]
目标:计算属性Student的基尼指数值:
第一步:获取属性Student在训练数据中值划分即取值{Yes,No}
第二步:统计Student属性每个取值在训练数据中出现的次数StudentYes = 2, StudentNo= 3
计算每个取值占比:
posProbably = 1.0 * StudentYes /(remainData.length - 1);
negProbably = 1 - StudentYes;
第三步:保存属性的值划分时的最小的基尼指数
1. 当Student=No时候:
(1)正例:BuysComputerYes=2,
反例:BuysComputerNo=1;
正例占比:a=2/(1+2)= 2/3 ;
负例占比:b=1/(1+2)=1/3
基尼指数:giniNo =1- a*a – b*b
(2)Student=Yes时候
正例:BuysComputerYes=2,
反例:BuysComputerNo=0;
正例占比:a=2/(2+0)= 1 ;
负例占比:b=0/(0+2)=0
基尼指数:giniYes =1- a*a – b*b
tenpGini += posProbably* giniNo;
tempGini+= negProbably* giniYes;
tempGiniNo=tempGini;
2. 当Student=Yes时候:
(1)Student=Yes时候
正例:BuysComputerYes=2,
反例:BuysComputerNo=0;
正例占比:a=2/(2+0)= 1 ;
负例占比:b=0/(0+2)=0
基尼指数:giniYes =1- a*a – b*b
(2)当Student=No时候:
正例:BuysComputerYes=2,
反例:BuysComputerNo=1;
正例占比:a=2/(1+2)= 2/3 ;
负例占比:b=1/(1+2)=1/3
基尼指数:giniNo =1- a*a – b*b
tenpGini += posProbably* giniNo;
tempGini+= negProbably* giniYes;
tempGiniYes=tempGini;
说明:计算tempGiniNo ,tempGiniYes时,两者其实是一样的,只是乘以posProbably和negProbably顺序进行了调换,主要是为了保证每种取值都能作为正例和反例进行计算一次。
第四步:GiniStudent={tempGiniNo ,tempGiniYes}。
参考:http://blog.csdn.net/androidlushangderen/article/details/42558235
- 基尼指数计算
- 计算指数
- 计算指数
- 计算指数的代码
- 计算K指数
- 计算身体质量指数
- java 指数计算
- L1-012. 计算指数
- L1-012. 计算指数
- L1-012. 计算指数
- L1-012. 计算指数
- L1-012. 计算指数
- L1-012. 计算指数
- L1-012. 计算指数
- H指数计算
- L1-012. 计算指数
- C语言实现指数计算
- C语言实现指数计算
- 且谈谈我对Java反射的理解
- POJ 上几个关于排列的题目
- day15/TreeSetTest.java
- 开源中国社区
- Nginx 实战(一) 集群环境搭建
- 基尼指数计算
- 《操作系统》——死锁
- 字梯游戏(C++)
- day16/MapDemo1.java
- 黑马程序员--网络编程
- day16/MapDemo2.java
- 完整的selenium免费培训资料
- String -- 俩种实例化方式的区别
- day16/MapDemo.java