決定木

決定木の作成に利用するエントロピーやらインフォメーションゲインやらをなんとなくPython

import math

def entropy(float_list):
    all_sum = sum(float_list)
    result = 0.0
    for val in float_list:
        if val > 0:
            result += val / all_sum * (math.log(all_sum,2) - math.log(val,2) )
    return result
    

def information_gain(s,attributes):
    all_sum = sum(s)
    attri_sum = 0.0
    for attribute in attributes:
        ent = entropy(attribute)
        attri_sum += sum(attribute) / all_sum * ent 
    
    return entropy(s) - attri_sum

こういった小物プログラムならLLで・・・
とか思ったけど、逆にこういう簡単に計算する程度の小さなプログラムなら
使い慣れてるC++でも大差なす