递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的特征(可以根据系数来选),把选出来的特征选择出来,然后在剩余的特征上重复这个过程,直到所有特征都遍历了。这个过程中特征被消除的次序就是特征的排序。因此,这是一种寻找最优特征子集的贪心算法。
RFE的稳定性很大程度上取决于在迭代的时候底层用哪种模型。例如,假如RFE采用的普通的回归,没有经过正则化的回归是不稳定的,那么RFE就是不稳定的;假如采用的是Ridge,而用Ridge正则化的回归是稳定的,那么RFE就是稳定的。
#! /usr/bin/python
# -*- coding: utf8 -*-
# @Time : 2018/9/6 9:14
# @Author : yukang
from sklearn.datasets import load_iris
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
iris = load_iris()
#特征矩阵
# print(a)
print(iris.data)
#目标向量
# print(iris.target)
#递归特征消除法,返回特征选择后的数据
#参数estimator为基模型
#参数n_features_to_select为选择的特征个数
print(RFE(estimator=LogisticRegression(), n_features_to_select=2).fit_transform(iris.data, iris.target))
#! /usr/bin/python
# -*- coding: utf8 -*-
# @Time : 2018/9/6 9:14
# @Author : yukang
from sklearn.svm import SVC
from sklearn.datasets import load_digits
from sklearn.feature_selection import RFE
import matplotlib.pyplot as plt
# Load the digits dataset
digits = load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target
# Create the RFE object and rank each pixel
svc = SVC(kernel="linear", C=1)
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)
ranking = rfe.ranking_.reshape(digits.images[0].shape)
# Plot pixel ranking
plt.matshow(ranking)
plt.colorbar()
plt.title("Ranking of pixels with RFE")
plt.show()
递归
特征
消除
是一种基于模型的
特征
选择方法,其通过反复训练模型,并对
特征
进行排序,然后依次排除权重最小的
特征
。在每一次迭代过程中,
RFE
会调用外部的算法来对
特征
子集进行建模,以此来计算它们的精度。这个算法会把权重最小的
特征
从
特征
集合中删除,直到满足一个预设的
特征
数目。与其他
特征
选择方法不同的是,
递归
特征
消除
是一种贪心算法,它根据当前的
特征
子集来选择具有最好性能的
特征
组合。但由于这种方法是基于模型的,因此它的速度较慢并且不适用于大规模
特征
集合。
【数据挖掘】金融风控 Task03
特征
工程
特征
工程介绍数据预处理查找出对象和数值
特征
进行缺失值填充时间格式处理对象类
特征
的处理类别
特征
处理异常值的处理数据分箱固定宽度分箱分数位分箱卡方分箱和其他分箱方法的尝试
特征
交互
特征
编码
特征
选择
学习地址:https: //github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl
天池竞赛地址:https://tianchi.aliyun.com/comp
Matlab基于支持向量机
递归
特征
消除
(SVM_
RFE
)的回归数据
特征
选择算法,matlab代码,输出为选择的
特征
序号(Matlab完整程序和数据)
Matlab基于支持向量机
递归
特征
消除
(SVM_
RFE
)的回归数据
特征
选择算法,matlab代码,输出为选择的
特征
序号(Matlab完整程序和数据)
Matlab基于支持向量机
递归
特征
消除
(SVM_
RFE
)的回归数据
特征
选择算法,matlab代码,输出为选择的
特征
序号(Matlab完整程序和数据)
经过
特征
选择后,保留
特征
的序号为:
126 160 161 163 165 166 237 239 240 370
-----------------------误差计算--------------------------
评价结果如下所示:
平均绝对误差MAE为:0.27933
均方误差MSE为: 0.15813
均方根误差RMSEP为: 0.39765
决定系数R^2为: 0.93392
剩余预测残差RPD为: 4.2631
平均绝对百分比误差MAPE为: 0.0032299
链接:sklearn.
feature
_select
ion
.
RFE
— scikit-learn 1.0.2 documentat
ion
https://scikit-learn.org/stable/modules/generated/sklearn.
feature
_select
ion
.
RFE
.html?highlight=
rfe
#sklearn.
feature
_select
ion
.
RFE
给定一个为...
谢谢平台提供-http://bjbsair.com/2020-04-13/tech-info/65273.html
机器学习里面,我们梳理了过滤法,嵌入法,本篇我们来讲解一下包装法。
1、介绍
递归
特征
消除
RFE
2、介绍基于交叉验证的
RFE
CV
3、数据
特征
提取
介绍
递归
特征
消除
RFE
在Wrapper里面有个很重要的东西,
递归
特征
消除
,Re
cursive
Feature
Eli
min...
递归
特征
消除
Re
cursive
feature
eli
mina
t
ion
(
RFE
)
递归
特征
消除
的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的
特征
(可以根据系数来选),把选出来的
特征
选择出来,然后在剩余的
特征
上重复这个过程,直到所有
特征
都遍历了。这个过程中
特征
被
消除
的次序就是
特征
的排序。因此,这是一种寻找最优
特征
子集的贪心算法。
RFE
的稳定性很大程度上取决于在迭代...
将筛选的k个
特征
作为初始
特征
子集输入到随机森林分类器中,计算得到每个
特征
的重要性,并利用交叉验证方法得到初始
特征
子集的分类精度;
从当前
特征
子集中移除
特征
重要性最低的一个
特征
,得到一个新的
特征
子集,再次输入到随机森林分类器中,计算新的
特征
子集中每个
特征
的重要性,并利用交叉验证方法得到新的
特征
子集的分类精度。
递归
的重复步骤2,直至
特征
子集为空,最后一共得到k个不同
特征
数量的
特征
子集,
Guyon, I., Weston, J., Barnhill, S., & Vapnik, V., “Gene select
ion
for cancer classificat
ion
using support vector machines”, Mach. Learn., 46(1-3), 389–422, 2002. https://link.springer.com/article/10.1023/A:1
对
特征
含有权重的预测模型(例如,线性模型对应参数coefficients),
RFE
通过
递归
减少考察的
特征
集规模来选择
特征
。首先,预测模型在原始
特征
上训练,每个
特征
指定一个权重。之后,那些拥有最小绝对值权重的
特征
被踢出
特征
集。如此往复
递归
,直至剩余的
特征
数量达到所需的
特征
数量。
RFE
CV 通过交叉验证的方式执行
RFE
,以此来选择最佳数量的
特征
:对于一个数量为d的
feature
的集合,他的所有的子集的个数是2的d次方减1(包含空集)。指定一个外部的学习算法,比如SVM之类的。通过该算法计算所有子集的valid
最终,我们可以得到一个包含20个最优
特征
的
特征
集合,并且相应的模型性能评价指标也达到了最优。然后,我们创建了一个逻辑回归模型,并创建了一个
特征
递归
消除
法对象,并指定要选择最优的20个
特征
。假设我们有一个数据集,包含100个
特征
和一个二分类目标变量,我们使用逻辑回归模型和
特征
递归
消除
法来选择最优的20个
特征
。根据
特征
的权重或重要性,选择性能评价指标排名最低的
特征
(比如权重最小的
特征
),将其从
特征
集合中剔除,得到新的
特征
集合,包含99个
特征
。然后,选择性能评价指标排名最低的
特征
,将其从
特征
集合中剔除。
re
cursive
feature
eli
mina
t
ion
(
RFE
)通过学习器返回的 coef_ 属性 或者
feature
_importances_ 属性来获得每个
特征
的重要程度。 然后,从当前的
特征
集合中移除最不重要的
特征
。在
特征
集合上不断的重复
递归
这个步骤
总结起来,R语言中的
递归
特征
消除
(
RFE
)算法是一种常用的
特征
选择算法,通过
递归
地训练和评估模型,可以有效地筛选出最具有代表性和相关性的
特征
。
特征
选择是机器学习中一个重要的环节,它的目标是从给定的
特征
集合中选择出最具有代表性和相关性的
特征
,以提高模型的性能和泛化能力。需要注意的是,
递归
特征
消除
(
RFE
)算法在
特征
选择过程中可能会受到
特征
间相关性的影响,因此在实际应用中,我们需要根据具体问题选择适合的
特征
选择算法,并结合领域知识和实际需求来进行
特征
筛选。首先,我们需要导入所需的R包,例如。
利用栈来人工模拟系统堆栈的操作过程,其实这种方法本质上还是
递归
,只不过本来计算机帮你完成的事由你自己做了,所以这对算法的优化效果不明显。
2. 递推
如果
递归
函数是尾
递归
(在函数末尾
递归
调用本函数的方式,且
递归
调用语句只有一个),就可以很容易的将
递归
消除
,用推导出来的数学公式代替。 其效率与循环的代码执行效率基本上是相当的。其优化主要是对栈内空间的优化,这个优化是O(n)到O(1)的;至于时间的优化,其实是由于对空间的优化导致内存分配的工作减少所产生的,并不会带来质的飞跃。下面是尾
递归
的形式:
2
RFE
递归
式
特征
消除
简介
RFE
(Re
cursive
Feature
Eli
mina
t
ion
)是
特征
选择的算法.它的工作原理是从训练数据集中的所有
特征
开始搜索
特征
子集,并成功地删除
特征
,直到保留所需的数量。这是通过对给定的算法模型进行拟合,按重要性对
特征
进行排序,丢弃最不重要的
特征
,并重新拟合模型来实...