Python算法总结(六)决策树回归(附手写python实现代码)

注:可结合”Python算法总结(三)决策树分类(附手写python实现代码)“一起阅读!

一、算法类型

有监督的回归算法

二、手写python算法

基于CART算法的python实现。
CART算法特点:①每个特征的重要程度是不一样,②每个连续型特征的不同分箱的重要程度是不一样的。

# 辅助函数1:切分数据集函数
def binsplitdataset(dataset,feature_index,value):
    '''
    参数说明:
        dataset是带有标签的数据集
        feature_name用于切分的特征
        value该切分特征的切分点
    返回:按featurename特征的value切分的数据集2个    
    '''
    dataset_0=dataset[dataset.iloc[:,feature_index] >  value]
    dataset_1=dataset[dataset.iloc[:,feature_index] <= value]
    return dataset_0,dataset_1
# 辅助函数2:计算切分误差函数
def error(dataset):
    '''
    参数说明:dataset是带有标签的数据集
    返回:数据集标签列的误差值,误差值=方差*样本数量,
        为何乘以样本数量?回答:“子样本数量=切分子集样本占总样本的比重*总样本数量”,即每个子样本的误差同比放大“总样本数量”倍数。
        便于后续横向比较不同切分的误差值。
    '''
    err=dataset.iloc[:,-1].var() * dataset.shape[0]
    return err
# 辅助函数3:生成叶节点的函数
def leaf_label(dataset):
    
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值