#import gini
#import tree
import operator
from math import pow
def cal_gini_index(data):
total_sample=len(data)
if total_sample==0:
return 0
label_counts=label_unique_cnt(data)
gini=0
for label in label_counts:
gini=gini+pow(label_counts[label],2)
gini=1-float(gini)/pow(total_sample,2)
return gini
def label_unique_cnt(data):
label_unique_cnt={
}
for x in data:
label=x[len(x)-1]
if label not in label_unique_cnt:
label_unique_cnt[label]=0
label_unique_cnt[label]+=1
return label_unique_cnt
def createDataSet1(): # 创造示例数据
dataSet = [['青色', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '是'],
['乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '是'],
['乌黑', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '是']
基于gini系数的决策树代码
最新推荐文章于 2024-02-19 23:29:24 发布