多标签ReliefF算法的Python实现

先声明一下,Python是有第三方ReliefF包的,安装方式直接在pycharm终端输入:

pip install ReliefF -i https://pypi.tuna.tsinghua.edu.cn/simple

导入方式:

from ReliefF import ReliefF

但是,这个包有一些问题。
首先,只针对单标签且数据类型是离散类型的数据集
第二,没有对标签下的每个类别进行计算;
第三,它的选取样本的策略是循环全部样本,没有进行随机选取。
所以,在这个第三方包的基础上,我对它进行了一点改进。
1、适用于多标签数据集
2、适用于连续型数据集
3、类中增加了随机样本的选取数量的参数
下面是改进的代码:

# -*- coding: utf-8 -*-

from __future__ import print_function
import numpy as np
import random
from sklearn.neighbors import KDTree


class MultiReliefF(object):

    def __init__(self, n_neighbors=10, n_features_to_keep=10, n_selected=10):
        """
        初始化实例化对象
        :param n_neighbors: 最近邻个数
        :param n_features_to_keep: 选取特征相关统计量最大的数量
        """
        self.feature_scores = None
        self.top_features = None
        self.tree = None
        self.n_neighbors = n_neighbors
        self.n_features_to_keep = n_features_to_keep
        self.n_selected = n_selected

    def fit(self, X
  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值