資源簡(jiǎn)介
dtree_c4.5.py
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-??
“““?
@author:?蔚藍(lán)的天空Tom?
Talk?is?cheapshow?me?the?code?
Aim:C4.5算法生成決策樹(字典存儲(chǔ))?并繪制決策樹圖形
“““??
import?numpy?as?np??
import?math
import?matplotlib.pyplot?as?plt
varnamestr?=?lambda?vnms:?[?vn?for?vn?in?nms?if?id(v)==id(nms[vn])][0]??
class?CUtileTool(object):??
????‘‘‘提供有用的方法?比如dump_list方法,可以打印給定的list的相關(guān)信息‘‘‘??
????def?dump_list(self?src_list?src_list_namestr):??
????????‘‘‘逐行打印list?
????????:param?self:類實(shí)例自身?
????????:param?src_list:被打印的源list?
????????:return?無?
????????‘‘‘??
????????print(‘\n============‘src_list_namestr‘================‘)??
????????list_len?=?len(src_list)??
????????list_shape?=?np.shape(src_list)??
????????print(‘type(‘src_list_namestr‘):‘type(src_list))??#??
????????print(‘np.shape(‘src_list_namestr‘):‘np.shape(src_list))??
????????if?1?==?len(list_shape):??
????????????print(src_list)??
????????elif?2?==?len(list_shape):??
????????????for?i?in?range(list_len):??
????????????????if?0?==?i:??
????????????????????print(‘[‘src_list[i])??
????????????????elif?(list_len?-?1)?==?i:??
????????????????????print(src_list[i]‘]‘)??
????????????????else:??
????????????????????print(src_list[i])??
????????else:??
????????????print(src_list)??
????????print(‘======\n‘)??
????????return??
???
????def?dump_array(self?src_a?src_dict_namestr):??
????????‘‘‘‘‘?
????????逐行打印array?
????????:param?self:類實(shí)例自身?
????????:param?src_a:被打印的源array?
????????:return?無?
????????‘‘‘??
????????print(‘\n===============‘src_dict_namestr‘===================‘)??
????????a_len?=?len(src_a)??
????????a_shape?=?np.shape(src_a)??
????????print(‘type(‘src_dict_namestr‘):‘type(src_a))??#??
????????print(‘np.shape(‘src_dict_namestr‘):‘np.shape(src_a))??
????????if?1?==?len(a_shape):??
????????????print(src_a)??
????????elif?2?==?len(a_shape):??
????????????for?i?in?range(a_len):??
????????????????if?0?==?i:??
????????????????????print(‘[‘src_a[i])??
????????????????elif?(a_len?-?1)?==?i:??
????????????????????print(src_a[i]‘]‘)??
????????????????else:??
????????????????????print(src_a[i])??
????????else:??
????????????print(src_a)??
????????print(‘======\n‘)??
????????return??
??
??
????def?print_dict(self?src_dict?level?src_dict_namestr=‘‘):??
????????‘‘‘‘‘?
????????逐行打印dict?
????????:param?self:類實(shí)例自身?
????????:param?src_dict:被打印的dict?
????????:param?level:遞歸level,初次調(diào)用為level=0?
????????:param?src_dict_namestr:對(duì)象變量名稱字符串?
????????‘‘‘??
????????if?isinstance(src_dict?dict):??
????????????tab_str?=?‘\t‘??
????????????for?i?in?range(level):??
????????????????tab_str?+=?‘\t‘??
????????????if?0?==?level:??
????????????????print(src_dict_namestr‘=?{‘)??
????????????for?key?value?in?src_dict.items():??
????????????????if?isinstance(value?dict):??
????????????????????has_dict?=?False??
????????????????????for?kv?in?value.items():??
????????????????????????if?isinstance(v?dict):??
????????????????????????????
評(píng)論
共有 條評(píng)論