特征选择的3钟方法

当数据维数比较大时,就需要进行降维,特征选择是降维的一种主要方式,又包括3种方法:Filter、Wrapper和Enbedding。

1. Filter

过滤器方法,这种方法首先选定特征,再来进行学习。根据每一个属性的一些指标(如方差等),来确定这个属性的重要程度,然后对所有属性按照重要程度排序,从高到低的选择属性。选定了属性以后,再来进行训练。比如Fisher Score、Laplacian Score等。这种方法其实不大好,因为决定特征选择效果的不是单个的属性,而是属性的集合,比如属性A、B、C,单个来看效果不好,但是它们组合起来效果有可能不错。

2. Wrapper

包裹器方法,这种方法把选定的特征集用分类器进行训练,用训练效果(如准确率等)来作为特征集的评价。比如将启发式搜索、GA等。这种方法和分类器相结合,比较直观,和Filter相比也更加合理。缺点是计算开销较大。

3. Embedding

嵌入式方法,即把特征选择的过程作为学习过程的一部分,在学习的过程中进行特征选择,最典型的如决策树算法。

原文地址:https://www.cnblogs.com/mstk/p/8463496.html

时间: 2024-10-08 15:22:24

特征选择的3钟方法的相关文章

jQuery之选项卡多钟方法

一.用定时器设置,让鼠标移动时,卡片切换有一个延时的效果 二.标签切换加载数据 id为realcontent 卡片的div

机器学习之特征选择方法

特征选择是一个重要的数据预处理过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后在训练学习器,如下图所示: 进行特征选择有两个很重要的原因: 避免维数灾难:能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的 降低学习任务的难度:选取出真正相关的特征简化模型,协助理解数据产生的过程 如流程图所示,特征选择包括两个环节: 子集搜索 (subset search) 子集评价 (subset evaluatio

降维中的特征选择

在数据挖掘过程中,高维数据是非常棘手的研究对象.特别是在文本挖掘.图像处理和基因数据分析中,维度过高使很多学习器无法工作或效率降低,所以降维也是数据预处理过程的一项必要任务.降维大致有两大类别,一类是从原始维度中提取新的维度,例如主成分分析或因子分析,再或者是奇异值分解或是多维标度分析.另一类是从原始维度中选择一些子集,即称为特征选择(Feature Selection),或者叫作最佳子集选择.特征选择本质上继承了Occam's razor的思想,从一组特征中选出一些最有效的特征,使构造出来的模

ASP.NET输出EXCEL表格的几种方法(总结修改)

这几天要从数据库导出EXCEL表格,就找了N钟方法,经测试,下面的方法比较的好用一点.都是经过输入DataTable而导出的.不过导出的EXCEL都不是正规的EXCEL格式,只能说是HTML格式的,导出的再导入进数据库就会出现问题了.想导入的话用EXCEL打开另存为EXCEL格式就好了 1.利用DataRow直接输出,经测试,没有乱码.        public bool LendOutExcel(string strFileName, DataTable DT)        {      

最强大脑世界记忆大师运用的记忆方法

记忆方法分为竞技型记忆技术和实用型记忆技术. 竞技型记忆技术和实用型记忆技术区别:前者不需要理解,后者需要理解.这也就是为什么很多记忆技术很难运用到学生学习过程中的原因,因为学生学习的知识是需要理解.记忆.思考的,否则不就变成了换种方式的死记硬背了. 按照我的理解记忆方法都是通过运用人的大脑的记忆特点通过加强训练从而实现快速记忆. 大脑的记忆特点: 记住图像比记住文字要容易 记住文字比记住无意义的数字要容易 竞技型记忆技术 宫殿记忆法(房间定位法.地点桩记忆法) 原理: 我们非常善于记住我们所知

降维中的特征选择(转)

在数据挖掘过程中,高维数据是非常棘手的研究对象.特别是在文本挖掘.图像处理和基因数据分析中,维度过高使很多学习器无法工作或效率降低,所以降维也是数据预处理过程的一项必要任务.降维大致有两大类别,一类是从原始维度中提取新的维度,例如主成分分析或因子分析,再或者是奇异值分解或是多维标度分析.另一类是从原始维度中选择一些子集,即称为特征选择(Feature Selection),或者叫作最佳子集选择.特征选择本质上继承了Occam's razor的思想,从一组特征中选出一些最有效的特征,使构造出来的模

npm 国内镜像资源 --转载

npm 是node.js 环境下的包管理器,非常强大智能. 生活这这片神奇的土地上,各种奇葩手段屡见不鲜啊. 为什么要换源? npm 官方站点 http://www.npmjs.org/ 并没有被墙,但是下载第三方依赖包的速度让人着急啊! 就拿阿里云环境来说,有时npm 一个包也需要耐心等待......等待过去也许是原地踏步,也许就是安装失败. 幸运的是,国内有几个镜像站点可以供我们使用,本人在使用 http://www.cnpmjs.org/ 速度非常快,镜像站会实时更新,为我们节省了好多时间

修改url中参数值

1.一种方法function changeUrlArg(url, arg, val){ var pattern = arg+'=([^&]*)'; var replaceText = arg+'='+val; return url.match(pattern) ? url.replace(eval('/('+ arg+'=)([^&]*)/gi'), replaceText) : (url.match('[\?]') ? url+'&'+replaceText : url+'?'+

ansible 普通用户执行命令

首先需要了解ssh 普通用户登陆的做法: 1.普通用户ssh 免密登陆 举个例子: [[email protected] ~]$ssh [email protected] 表示当前用户A(可以是root或者任何其他用户)以用户user登陆10.0.0.1, 如果省略用户, 即:ssh 10.0.0.1,表示以当前用户A登陆 这里记住两个用户: A:  当前用户,执行ssh 的用户 user:登陆10.0.0.1的用户, 这个用户是属于10.0.0.1的,必须在10.0.0.1上存在 不考虑pub