pruners
classicML中的树的剪枝器.
Pruner
剪枝器基类.
cml.backend.tree.pruners.Pruner(name=None)
参数
name: 字符串,剪枝器的名称.
_call_
进行剪枝操作.
__call__(x, y, x_validation, y_validation, tree)
参数
x: Pandas的DataFrame,特征数据.
y: Pandas的DataFrame,标签.
x_validation: Pandas的DataFrame,剪枝使用的验证特征数据.
y_validation: Pandas的DataFrame,剪枝使用的验证标签.
tree:
cml.backend.tree._TreeNode实例,决策树.
异常
NotImplementedError: 函数没有实现.
calculation_accuracy
计算使用预后剪枝操作的之后前的准确率.
calculation_accuracy(*args, **kwargs):
异常
NotImplementedError: 函数没有实现.
PostPruner
后剪枝器.
cml.backend.tree.pruners.PostPruner(name='post')
参数
name: 字符串,剪枝器的名称.
_call_
进行剪枝操作.
__call__(x, y, x_validation, y_validation, tree)
参数
x: Pandas的DataFrame,特征数据.
y: Pandas的DataFrame,标签.
x_validation: Pandas的DataFrame,剪枝使用的验证特征数据.
y_validation: Pandas的DataFrame,剪枝使用的验证标签.
tree:
cml.backend.tree._TreeNode实例,决策树.
calculation_accuracy
计算剪枝前的准确率.
这里没有采取原文的做法,而是只计算这一个分支的数据,因为不修剪其他分支,其他分支当前的值不改变也就不会影响准确率的总体变化,这样不仅代码好实现,而且同时显著减少计算的开销.
calculation_accuracy(x_validation, y_validation, tree)
参数
x_validation: Pandas的DataFrame,剪枝使用的验证特征数据.
y_validation: Pandas的DataFrame,剪枝使用的验证标签.
tree:
cml.backend.tree._TreeNode实例,决策树.
PrePruner
预剪枝器.
cml.backend.tree.pruners.PrePruner(name='pre')
参数
name: 字符串,剪枝器的名称.
注意
这里只取用了预剪枝算法的思想,实际实现还是在决策树生成以后进行的剪枝操作,因为如果按照原文实现势必影响一个正常的决策树生成.
_call_
进行剪枝操作.
__call__(x, y, x_validation, y_validation, tree)
参数
x: Pandas的DataFrame,特征数据.
y: Pandas的DataFrame,标签.
x_validation: Pandas的DataFrame,剪枝使用的验证特征数据.
y_validation: Pandas的DataFrame,剪枝使用的验证标签.
tree:
cml.backend.tree._TreeNode实例,决策树.
calculation_accuracy
计算预剪枝划分后的准确率.
calculation_accuracy(x, y, x_validation, y_validation, tree)
参数
x: Pandas的DataFrame,特征数据.
y: Pandas的DataFrame,标签.
x_validation: Pandas的DataFrame,剪枝使用的验证特征数据.
y_validation: Pandas的DataFrame,剪枝使用的验证标签.
tree:
cml.backend.tree._TreeNode实例,决策树.