特征选择算法----Relief算法python实现

特征选择算法----Relief算法

特征选择算法分为:
(1)封装式算法:遗传算法,适用于处理大规模的数据,具有全局搜索能力强且不易陷入局部最优解。
(2)嵌入式算法:需要嵌入机器学习算法,往往降维效果比较好,使用于高纬度,数据量大的特征集
(3)过滤式特征选择算法:独立于机器学习算法,算法往往耗时短,效率高

relief算法原理

原理:
根据信号特征于分类标签的相关性,给特征向量赋予权值,并根据权值筛选出对分类效果影响较大的特征子集。
具体算法实现:随机在样本集中选择一个样本作为sample样本,在和sample相同类中选择最近的样本nearHit,在于样本sample不同类中选择最近的样本nearMiss(距离通常默认使用偶=欧式距离,当然也可以使用曼哈顿等距离),如果样本sample在特征上与nearHit的距离小于(或大于)与nearMiss的距离,表明该特征对信号的分类效果有益(或引起了负面作用)则增加(或减小)该特征的权值W
在这里插入图片描述

Wi=Wi-1-(samplei-nearHiti)^2
+(samplei-nearMissi)^2

缺点:(1)当样本数据量较小时,其基于统计相关性的计算过程容易收到噪声信号的影响,得到的特征权值会有误差。
(2)没有充分考虑特征之间的联系,因此选择的特征集合存在冗余

代码实现(python3.7)

import pandas as pd
import numpy as np
import numpy.linalg as la
import random


# 异常类
class FilterError:
    pass


class Filter:
    def __init__(self, data_df, sample_rate, t, k):
        """
        #
        :param data_df: 数据框(字段为特征,行为样本ÿ
  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值