头歌实训--机器学习(决策树)

07-21 1015阅读

第1关:决策树简述

头歌实训--机器学习(决策树)

第2关:决策树算法详解

import numpy as np
from sklearn import datasets
#######Begin#######
# 划分函数
def split(x,y,d,value):
    index_a=(x[:,d]value)
    return x[index_a],x[index_b],y[index_a],y[index_b]
#######End#########
#######Begin#######
# 信息熵的计算
from collections import Counter
from math import log
def entropy(y):
    length = len(y)
    counter = {}
    for item in y:
        counter[item] = counter.get(item, 0) + 1
    res= 0
    for _, cnt in counter.items():
        p = float(cnt) / length
        res =np.sum(-p*np.log(p))
    return res
#######End#########
#######Begin#######
# 计算最优划分属性和值的函数
def try_spit(x,y):
    best_entropy=float("inf")
    best_d,best_v=-1,-1
    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_l,x_r,y_l,y_r=split(x,y,d,v)
                e=entropy(y_l)+entropy(y_r)
                if e
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]