背景
由于最近在整理一些特征工程的内容,当整理到特征选择算法的时候有reliefF算法,感觉算法挺常见的,应该在sklearn上能找到,但是找了下API,没找到,可能是太简单了?或者是名字不对?总之,有事不懂就先github,上面有人写了reliefF算法的一个实现,个人感觉实现是没问题的,使用的评价标准应该是KNN
运行效果
github原文连接
但是源代码在最后一行有问题,transform方法只返回一个特征,应该是需要全返回的
return X[:, self.top_features[self.n_features_to_keep]]
应该是
return X[:, :self.top_features[self.n_features_to_keep]]
使用sklearn上关于RFE特征选择的方法的运行示例测试:
- 导入环境
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
print("-------运行环境如下-------")
print(sys.version_info)
for module in mpl, np, pd, sklearn:
print(module.__name__, module.__version__)
-------运行环境如下-------
sys.version_info(major=3, minor=7, micro=7, releaselevel=‘final’, serial=0)
matplotlib 3.3.1
numpy 1.19.1
pandas 1.1.1
sklearn 0.23.2