基于python的决策树能进行多分类吗

Python011

基于python的决策树能进行多分类吗,第1张

决策树主文件 tree.py

[python] view plain copy

# coding: utf-8

from math import log

import json

from plot import createPlot

class DecisionTree():

def __init__(self,criterion = "entropy"):

self.tree = None

self.criterion = criterion

def _is_continuous_value(self,a):

# 判断一个值是否是连续型变量

if type(a).__name__.lower().find('float')>-1 or \

type(a).__name__.lower().find('int')>-1:

return True

else:

return False

def _calc_entropy(self,dataset):

# 计算数据集的香农熵

classes = dataset.ix[:,-1]

total = len(classes)

cls_count = {}

for cls in classes:

if cls not in cls_count.keys():

cls_count[cls] = 0

cls_count[cls] += 1

entropy = 1.0

for key in cls_count:

prob = float(cls_count[key]) / total

entropy -= prob * log(prob, 2)

return entropy

def _calc_gini(self,dataset):

# 计算数据集的Gini指数

classes = dataset.ix[:,-1]

total = len(classes)

cls_count = {}

for cls in classes:

if cls not in cls_count.keys():

cls_count[cls] = 0

cls_count[cls] += 1

gini = 1.0

for key in cls_count:

prob = float(cls_count[key]) / total

gini -= prob ** 2

return gini

def _split_data_category(self, dataset, feature, value):

# 对分类变量进行拆分

# 将feature列的值为value的记录抽取出来,同时删除feature列

Python中的运算符主要分为六大类,其中包含算术运算符、赋值运算符、比较/关系运算符、逻辑运算符、位运算符以及三目运算符。

1、Python算术运算符

是对数值类型的变量进行运算的,比如说:加、减、乘、除、取模和乘方运算等

2、Python赋值运算符

是对已存在的变量进行重新设置新值的运算符

3、Python关系运算符(也被称为比较运算符)

关系运算符结果一般包含bool、True、False等,而关系表达式经常用在if结构的条件中或循环结构的条件中

4、Python逻辑运算符

是用于连接多个条件,一般来讲就是关系表达式

5、Python位运算符

主要是用于数值类型的二进制的运算

6、Python三目运算符

在Python中,没有其他语言的三目运算符,可以借助if语言实现类似的三目运算符。