UnboundLocalError: local variable 'testlabel' referenced before assignment,为解决问题,python决策树

from math import log
import operator
import pickle

def FileRead(path):#read the file
	with open (path,'r') as f:
		datatxt=f.readlines()
		data=[]
		for line in datatxt:
			data.append(line.strip().split(','))
		return data


def EntCalculate(dataset):
	labels=[example[-1] for example in dataset]
	labelClass=list(set(labels))
	DataNum=len(labels)
	ent=0
	for a in labelClass:
		Num=labels.count(a)
		prob=Num/DataNum
		ent-=prob*log(prob,2)
	return ent

def SplitData(dataset,column,value):
	SubData=[]
	for featvec in dataset:
		if featvec[column]==value:
			SubValueList=featvec[:column]
			SubValueList.extend(featvec[column+1:])
			SubData.append(SubValueList)
	return SubData

def ChooseAttribute(dataset):
	AttrNum=len(dataset[0])-1       #num of attribute
	DataNum=len(dataset)
	BaseEnt=EntCalculate(dataset)
	BestInfoGain=0
	BestAttr=0
	for i in rang
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值