python决策树算法代码_决策树算法的Python实例

本文展示了如何使用Python实现决策树算法,包括部分代码实现和完整代码实现。首先,通过sklearn库创建决策树模型,然后详细解释了一个自定义的决策树划分过程,包括计算信息熵和选择最佳特征进行划分的步骤。最后,给出了完整的决策树创建函数和运行结果。
摘要由CSDN通过智能技术生成

1.部分代码实现

import numpy as np

from sklearn import datasets

from math import log

from collections import Counter

iris = datasets.load_iris()

X = iris.data[:,2:]

y = iris.target

from sklearn.tree import DecisionTreeClassifier

# criterion = "entropy" : 基于信息熵的方式

dt_clf = DecisionTreeClassifier(max_depth = 2,criterion = "entropy")

dt_clf.fit(X,y)

#模拟使用信息熵进行划分

#d:维度,value:阈值

#获得划分用的d(维度)和value(阈值)

def try_split(X,y):

#方法:通过多次尝试,使信息熵结果最低

best_entropy = float('inf') #用正无穷的值初始化best_entropy

best_d = -1

best_v = -1

#X的维度数:X.shape[1]

#阈值:d划分后的中间值,所以需要先对X的每一列的值进行排序

for d in range(X.shape[1]): #列扫描

sorted_index = np.argsort(X[:,d])

for i in range(1,len(X)): #行扫描

#防止相邻的两个数相等

if X[sorted_index[i - 1],d] != X[sorted_index[i],d]:

v = (X[sorted_index[i - 1],d] + X[sorted_index[i],d]) / 2

X_left,X_right,y_left,y_right = split(X,y,d,v)

#划分完可以求熵了!!!

e = entropy(y_left) + entropy(y_right) #划分得到的信息熵

if e < best_entropy :

#小于则更新熵和划分方式(d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值