一、决策树的概念
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。决策树是一种十分常用的分类回归方法。
1. 代码算法原理
二、 决策树底层代码
以下是决策树底层代码的简单实现(以下只是一个特征,更多需自行加循环实现)
import numpy as np
import pandas as pd
data = pd.read_csv('watermelon2.0.csv',delimiter=',',encoding='gbk')
data = data.iloc[:,1:]
print(data)
def ent_d(data):
num_list = data['好瓜'].value_counts().to_list()
ent_D = 0
for i in num_list:
ent_D += (i/len(data))*np.log2((i/len(data)))
ent_D = -ent_D
return ent_D
split_feature = '色泽'
m = data.shape[0]
ent_Dv = 0
for attr in data[split_feature].value_counts().index.to_list():
attr_g = data[data[split_feature] == attr]
ent_Dv += (attr_g.shape[0]/m)*ent_d(attr_g)
gain = ent_d(data) - ent_Dv
print(gain)
三、输出结果如下:
结尾:
以上内容仅供参考。