python实现SBS(sequential backward selection)

SBS是一种有效的降维方法,通过逐步减少特征并评估预测效果,选取最佳特征组合。本文介绍SBS原理,并提供来自《Python Machine Learning 3rd》的源码,适合学习Python和机器学习。
摘要由CSDN通过智能技术生成

什么是SBS

SBS是减少数据维度的最佳解决方案,它能够实现将数据的特征维度从m降到k的功能

SBS原理

  1. 降低一个维度,使用剩下的维度进行预测,获得结果分数
  2. 重置维度,重复第一步,其中降低另一个维度,直到获得了所有的降低其中一个维度获得的分数
  3. 选择第二步中得分最高的组合
  4. 检查当前数据维度k是否等于目标维度,如果等于,当前特征组合则为目标特征组合,否则从第一步重新开始


    总得来说就是递减维度,每次递减获取评估分数最高的维度组合

源码

代码来自python machine learning 3rd,我只是添加了很多注释,便于理解,注释英文很简单

class SBS(object):
    def __init__(self, estimator, k_features, scoring=accuracy_score, test_size=0.25, random_state=1):
        self.scoring = scoring # scoring function. usually: accuracy_score func in sklearn
        self.estimator = estimator # usually sklearn estimator, e.g. RandomForestClassifer
        self.k_features = k_features # your target dimension
        self.test_size = test_size # array like or tuple: indices for test sets in dataset
        self.random_state &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值