特征选择算法综述及基于weka的性能比较
- 格式:docx
- 大小:55.30 KB
- 文档页数:8
weka实验报告总结
Weka是一款非常流行的机器学习和数据挖掘工具,用于实现各
种数据分析任务。
下面是对Weka实验报告的总结:
在本次实验中,我们使用Weka工具进行了一系列的数据挖掘和
机器学习实验。
我们首先对数据集进行了探索性数据分析,包括数
据的统计特征、缺失值处理、异常值检测等。
通过这些分析,我们
对数据集的特点有了更全面的了解,并为后续的实验做好了准备。
接下来,我们使用Weka提供的各种机器学习算法进行了模型的
训练和评估。
我们尝试了多种算法,包括决策树、支持向量机、朴
素贝叶斯等。
通过对比不同算法在训练集和测试集上的表现,我们
评估了它们的性能,并选择了最合适的算法作为我们的模型。
在模型训练过程中,我们还进行了特征选择和特征工程的实验。
通过选择最相关的特征或者提取新的特征,我们尝试提高模型的性
能和泛化能力。
同时,我们还使用交叉验证等方法来评估模型的稳
定性和鲁棒性。
最后,我们对模型进行了性能评估和结果分析。
通过计算准确
率、召回率、F1值等指标,我们评估了模型的分类效果。
同时,我们还进行了误差分析,找出模型在分类错误的样本上的共同特征,以便进一步改进模型。
综上所述,本次实验中我们使用Weka工具进行了一系列的数据挖掘和机器学习实验。
通过探索性数据分析、模型训练和评估、特征选择和工程,以及性能评估和结果分析,我们得到了一个具有较好性能的模型,并对数据集有了更深入的理解。
这些实验为我们进一步研究和应用机器学习提供了有益的经验和启示。
计算机视觉技术中的特征选择方法计算机视觉技术是研究如何使计算机理解图像和视频的一门学科。
在计算机视觉任务中,特征选择是一个关键的步骤,它能够从原始数据中选择最相关、最具有区分性的特征,从而提高计算机视觉算法的性能和效果。
在本文中,我将介绍几种常见的特征选择方法,探讨它们的原理和适用场景。
一、过滤式特征选择方法过滤式特征选择方法是在特征选择和分类器训练之间进行两个独立的步骤。
该方法通过计算每个特征与目标变量之间的相关性或信息增益等指标来评估特征的重要性,并根据这些指标对特征进行排序和选择。
常见的过滤式特征选择方法有皮尔逊相关系数、信息增益和卡方检验等。
皮尔逊相关系数是通过计算两个变量之间的线性相关性来衡量特征与目标变量之间的关联程度。
该方法计算特征和目标变量之间的协方差,然后通过除以两个变量的标准差的乘积来得到皮尔逊相关系数。
皮尔逊相关系数的取值范围在-1到1之间,其中1表示完全正相关,-1表示完全负相关,0表示没有线性相关关系。
信息增益是从信息论的角度来评估特征与目标变量之间的相关性。
这种方法通过计算特征的熵和给定目标变量的条件熵之间的差异来度量特征的重要性。
信息增益越大,说明特征与目标变量之间的关联度越高。
卡方检验是一种非参数的统计方法,用于确定两个分类变量之间是否存在关联性。
在特征选择中,利用卡方检验可以评估特征和目标变量之间的独立性。
卡方检验的原理是比较实际观测值和期望观测值之间的差异,然后计算卡方统计量,根据卡方统计量的值来判断特征的重要性。
过滤式特征选择方法的优点是计算简单、效率高,可以在特征选择和分类器训练之间独立地进行。
然而,它们忽视了特征之间的相互依赖关系,可能会选择不相关的特征或遗漏关键特征。
二、包裹式特征选择方法包裹式特征选择方法是在特征选择和分类器训练之间进行一个整体的优化过程。
该方法将特征选择看作是一个子集搜索问题,通过评估不同特征子集的性能来选择最佳的特征。
常见的包裹式特征选择方法有递归特征消除、遗传算法和模拟退火算法等。
特征选择算法综述及进展研究-概述说明以及解释1.引言1.1 概述特征选择是机器学习和数据挖掘领域中一个重要的任务,其目的是从给定的特征集合中选择出最具代表性和有效性的特征子集。
特征选择的主要目标是降低特征空间的维度,提高模型的性能和可解释性,并减少计算的复杂性。
在实际应用中,特征选择可以帮助我们识别出对目标变量有显著影响的特征,排除掉冗余和噪声特征,从而提高模型的泛化能力。
特征选择算法可以分为过滤式、包裹式和嵌入式三种类型。
过滤式特征选择算法独立于任何具体的学习算法,通过对特征进行评估和排序来选择特征。
包裹式特征选择算法直接使用特定学习算法,将特征选择问题转化为子集搜索问题,并根据特定评价准则选择最佳特征子集。
嵌入式特征选择算法将特征选择嵌入到具体的学习算法中,通过联合学习特征选择和模型参数学习过程来选择特征。
近年来,特征选择算法的研究取得了许多进展。
新兴特征选择算法提出了许多新的思路和方法,例如基于稀疏表示、稀疏自编码和稀疏重构的特征选择算法。
同时,深度学习技术的兴起为特征选择带来了全新的视角。
深度学习在特征选择中的应用成为了研究的一个热点,并取得了一些令人瞩目的成果。
此外,多目标特征选择算法和特征选择与特征提取的结合也成为了特征选择领域的研究重点。
尽管特征选择算法取得了一些令人鼓舞的成果,但仍然存在一些问题和挑战。
首先,对于高维数据集,传统的特征选择算法往往面临着计算复杂性和存储空间的限制。
其次,在处理非线性关系和复杂数据结构时,特征选择算法的性能可能不佳。
此外,如何在特征选择过程中处理类别不平衡和缺失值等常见问题也是一个值得关注的挑战。
未来的研究方向主要包括但不限于以下几个方面:首先,需要进一步提高特征选择算法的效率和可扩展性,以应对越来越大规模的数据集。
其次,深度学习在特征选择中的应用仍有很大的发展空间,需要进一步探索和改进深度学习模型的特征选择能力。
此外,多目标特征选择以及特征选择与特征提取的结合也是未来的研究方向之一。
weka 数据挖掘实验报告Weka 数据挖掘实验报告引言数据挖掘是一种从大量数据中发现隐藏模式、关系和规律的技术。
Weka 是一款流行的开源数据挖掘软件,它提供了丰富的算法和工具,可以帮助用户进行数据挖掘分析。
本实验旨在使用Weka软件对一个真实数据集进行挖掘分析,并得出相关结论。
实验设计本次实验选择了一个关于房价预测的数据集,其中包含了房屋的各种属性(如面积、地理位置、建筑年代等)以及其对应的销售价格。
我们将使用Weka软件中的不同算法来对这个数据集进行挖掘分析,比较它们的效果和性能。
实验步骤1. 数据预处理:首先,我们对数据集进行了清洗和预处理,包括处理缺失值、标准化数据等操作,以确保数据的质量和一致性。
2. 特征选择:接着,我们使用Weka中的特征选择算法来确定哪些属性对于房价预测是最重要的,从而减少模型的复杂度和提高预测准确性。
3. 模型建立:然后,我们尝试了不同的机器学习算法(如决策树、支持向量机、神经网络等)来建立房价预测模型,并使用交叉验证等方法来评估模型的性能。
4. 结果分析:最后,我们对比了不同算法的预测效果和性能指标,得出了相关结论并提出了改进建议。
实验结果经过实验分析,我们发现决策树算法在这个数据集上表现较好,其预测准确性和泛化能力都较高。
而支持向量机和神经网络算法虽然在训练集上表现良好,但在测试集上的表现并不理想。
此外,特征选择对于模型的性能和复杂度也有着重要的影响。
结论与展望本实验通过Weka软件对房价预测数据集进行了挖掘分析,得出了不同算法的性能比较和结论。
未来,我们将进一步探索更多的数据挖掘技术和算法,以提高模型的预测准确性和实用性。
总结Weka 数据挖掘实验报告通过对房价预测数据集的挖掘分析,展示了Weka软件在数据挖掘领域的应用和优势。
通过本次实验,我们不仅对数据挖掘的流程和方法有了更深入的理解,也为未来的数据挖掘工作提供了一定的参考和借鉴。
一、属性选择:1、理论知识:见以下两篇文章:数据挖掘中的特征选择算法综述及基于WEKA的性能比较_陈良龙数据挖掘中约简技术与属性选择的研究_刘辉2、weka中的属性选择2.1评价策略(attribute evaluator)总的可分为filter和wrapper方法,前者注重对单个属性进行评价,后者侧重对特征子集进行评价。
Wrapper方法有:CfsSubsetEvalFilter方法有:CorrelationAttributeEval2.1.1 Wrapper方法:(1)CfsSubsetEval根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估,单个特征预测能力强且特征子集内的相关性低的子集表现好。
Evaluates the worth of a subset of attributes by considering the individual predictive ability of each feature along with the degree of redundancy between them.Subsets of features that are highly correlated with the class while having low intercorrelation are preferred.For more information see:M. A. Hall (1998). Correlation-based Feature Subset Selection for Machine Learning. Hamilton, New Zealand.(2)WrapperSubsetEvalWrapper方法中,用后续的学习算法嵌入到特征选择过程中,通过测试特征子集在此算法上的预测性能来决定其优劣,而极少关注特征子集中每个特征的预测性能。
因此,并不要求最优特征子集中的每个特征都是最优的。
特征选择方法特征选择是机器学习和数据挖掘中的重要环节,其目的是从原始特征中选择出对目标变量有重要影响的特征,以提高模型的预测性能和降低计算成本。
在实际应用中,特征选择方法的选择对最终模型的性能有着重要的影响。
本文将介绍几种常见的特征选择方法,以帮助读者更好地理解和应用特征选择技术。
1. 过滤式特征选择。
过滤式特征选择是在训练模型之前对特征进行选择,其主要思想是根据特征与目标变量之间的相关性来进行选择。
常用的过滤式特征选择方法包括相关系数、信息增益、卡方检验等。
这些方法通过对特征进行评估,筛选出与目标变量相关性较高的特征,从而达到降低特征维度、提高模型性能的目的。
2. 包裹式特征选择。
包裹式特征选择是在模型训练过程中进行特征选择,其主要思想是将特征选择过程嵌入到模型训练中。
常用的包裹式特征选择方法包括递归特征消除、基于模型的特征选择等。
这些方法通过反复训练模型并调整特征集合,最终选择出对模型性能影响最大的特征组合。
3. 嵌入式特征选择。
嵌入式特征选择是在模型训练过程中自动地进行特征选择,其主要思想是将特征选择过程融入到模型参数的学习过程中。
常用的嵌入式特征选择方法包括L1正则化、决策树剪枝等。
这些方法通过在模型训练过程中对特征进行惩罚或剪枝,从而实现特征选择的目的。
4. 混合式特征选择。
混合式特征选择是将多种特征选择方法进行组合,以充分利用各种方法的优势。
常用的混合式特征选择方法包括特征重要性评估、特征组合搜索等。
这些方法通过综合考虑不同特征选择方法的结果,选择出对模型性能影响最大的特征集合。
在实际应用中,特征选择方法的选择应根据具体问题的特点和数据的特征来进行。
需要注意的是,特征选择过程应该是一个迭代的过程,需要不断地尝试不同的方法和参数,以找到最优的特征集合。
另外,特征选择方法的选择也需要考虑到模型的类型和性能指标,以确保选择出的特征集合能够在实际应用中发挥最大的作用。
总之,特征选择是机器学习和数据挖掘中至关重要的一环,其选择方法的合理性和有效性直接影响着最终模型的性能。
特征选择常⽤算法综述特征选择的⼀般过程:1.⽣成⼦集:搜索特征⼦集,为评价函数提供特征⼦集2.评价函数:评价特征⼦集的好坏3.停⽌准则:与评价函数相关,⼀般是阈值,评价函数达到⼀定标准后就可停⽌搜索4.验证过程:在验证数据集上验证选出来的特征⼦集的有效性1.⽣成⼦集搜索算法有完全搜索、启发式搜索、随机搜索三⼤类。
(1)完全搜索<1>宽搜(Breadth First Search):时间复杂度⾼,不实⽤<2>分⽀界限搜索(Branch and Bound):其实就是宽搜加上深度的限制<3>定向搜索(Beam Search):其实算是启发式的⼀种,对宽搜加上每次展开结点数的限制以节省时间空间,对于展开那⼏个结点由启发式函数确定<4>最优优先算法(Best First Search):也是有启发式函数,对宽搜取最优结点进⾏展开(2)启发式搜索<1>序列前向选择(SFS , Sequential Forward Selection)特征⼦集X从空集开始,每次选择能使得评价函数J(X)最优的⼀个特征x加⼊,其实就是贪⼼算法,缺点是只加不减<2>序列后向选择(SBS , Sequential Backward Selection)和SFS相反,从特征全集开始,每次选择使评价函数J(X)最优的特征x剔除,也是贪⼼,缺点是只减不增<3>双向搜索(BDS , Bidirectional Search)SFS和SBS同时开始,当两者搜索到同⼀个特征⼦集时停⽌。
<4>增L去R选择算法(LRS , Plus-l Minus-R Selection)形式⼀:从空集开始,每次加L个特征,去除R个特征,使得J最优形式⼆:从全集开始,每次去除R个特征,加⼊L个特征,使J最优。
<5>序列浮动选择(Sequential Floating Selection)该算法由增L去R发展,不同之处在于L和R是会变化的,它结合了序列前后向选择、增L去R的特点并弥补了缺点。
Weka[4]特征选择作者:Koala++/屈伟特征选择,我对这一部分也不熟,大概讲一下,用AttributeSelection进行特征选择,它需要设置3个方面,第一:对属性评价的类(自己到Weka软件里看一下,英文Attribute Evaluator),第二:搜索的方式(自己到Weka软件里看一下,英文Search Method),第三:就是你要进行特征选择的数据集了。
最后调用Filter的静态方法userFilter,感觉写的都是废话,一看代码就明白了。
唯一值得一说的也就是别把AttributeSelection的包加错了,代码旁边有注释。
另一个函数懒的解释了(它也不是我写的),基本上是自解释的,不太可能看不懂。
package instanceTest;import java.io.FileReader;import java.util.Random;import import import import import import import import weka.attributeSelection.CfsSubsetEval;weka.attributeSelection.GreedyStepwise;weka.classifiers.Evaluation;weka.classifiers.meta.AttributeSelectedClassifier; weka.classifiers.trees.J48;weka.core.Instances;weka.filters.Filter;weka.filters.supervised.attribute.AttributeSelection;public class FilterTest{private Instances m_instances = null;public void getFileInstances( String fileName ) throws Exception{FileReader frData = new FileReader( fileName );m_instances = new Instances( frData );m_instances.setClassIndex( m_instances.numAttributes() - 1 );}public void selectAttUseFilter() throws Exception{AttributeSelection filter = new AttributeSelection(); // package weka.filters.supervised.attribute!CfsSubsetEval eval = new CfsSubsetEval();GreedyStepwise search = new GreedyStepwise();filter.setEvaluator(eval);filter.setSearch(search);filter.setInputFormat( m_instances );System.out.println( "number of instance attribute = " +m_instances.numAttributes() );Instances selectedIns = eFilter( m_instances, filter);System.out.println( "number of selected instance attribute = " + selectedIns.numAttributes() );}public void selectAttUseMC() throws Exception{AttributeSelectedClassifier classifier = new AttributeSelectedClassifier();CfsSubsetEval eval = new CfsSubsetEval();GreedyStepwise search = new GreedyStepwise();J48 base = new J48();classifier.setClassifier( base );classifier.setEvaluator( eval );classifier.setSearch( search );// 10-fold cross-validationEvaluation evaluation = new Evaluation( m_instances );evaluation.crossValidateModel(classifier, m_instances, 10, new Random(1));System.out.println( evaluation.toSummaryString() );}public static void main( String[] args ) throws Exception{FilterTest filter = new FilterTest();filter.getFileInstances( "F://Program Files//Weka-3-4//data//soybean.arff");filter.selectAttUseFilter();filter.selectAttUseMC();}}。
数据挖掘中的特征选择方法研究与比较分析数据挖掘是一种从大量数据中提取有用信息的技术,而特征选择则是数据挖掘过程中的一个重要环节。
特征选择的目标是从原始数据中选择出最具有代表性和区分度的特征,用于训练和构建模型。
在数据挖掘领域,存在多种特征选择方法,本文将对其中一些常用的方法进行研究与比较分析。
一、过滤式特征选择方法过滤式特征选择方法是在数据预处理阶段对特征进行选择,不依赖于具体的学习算法。
常用的过滤式特征选择方法有相关系数、方差阈值、互信息等。
相关系数方法通过计算特征和目标之间的相关程度来进行特征选择。
常用的相关系数方法有皮尔逊相关系数和斯皮尔曼相关系数。
皮尔逊相关系数适用于连续型数据,而斯皮尔曼相关系数适用于有序类别型数据。
相关系数方法的优点是计算简单,但只能捕捉到线性相关关系,对于非线性相关关系表现较差。
方差阈值方法根据特征的方差来进行选择,低于某个阈值的特征将被排除。
方差阈值方法适用于二分类或多分类问题,能够排除方差较小的特征,减少特征维度。
然而,方差阈值方法无法处理特征之间的相关性,如果存在高度相关的特征,可能会排除掉其中的一部分。
互信息方法是一种非参数的特征选择方法,可以捕捉到非线性相关关系。
互信息方法用于衡量特征和目标之间的依赖程度,选择互信息值较大的特征。
然而,互信息方法比较复杂,需要估计特征之间的联合分布和边缘分布,计算量较大。
二、包裹式特征选择方法包裹式特征选择方法是在特征子集上进行评估,根据学习算法的性能来选择最佳的特征子集。
常用的包裹式特征选择方法有递归特征消除(RFE)和基于遗传算法的特征选择。
递归特征消除(RFE)是一种迭代的特征选择方法,首先使用学习算法对所有特征进行训练和评估,然后根据学习算法的权重来进行特征排序,剔除权重较低的特征。
然后再次使用学习算法对剩余的特征子集进行训练和评估,重复此过程直到达到指定的特征数量。
递归特征消除方法的优点是能够考虑特征之间的相互作用,但计算量较大,时间复杂度较高。
基于WEKA软件的分类模型性能比较数据预处理:
在进行分类之前,为消除量纲的差别,首先对属性进行归一化处理。
BFTree:
选择分类中的BFTree决策树,测试选择采用十折交叉验证,10-folds cross-validation 是指,将训练集分为10份,使用9份做训练,使用1份做测试,如此循环10次,最后整体
计算结果。
分类评估选项中选择输出预测(output predictions)
设置对决策树进行纠错(debug)和启发性探索(heuristic),每个分支最小的样本值为2个,剪枝策略为后剪枝,即在决策树完美分割学习样例之后,对决策树进行修剪。
上图给出了实验用的分类器以及具体参数,实验名称,样本数量,特征数量以及所用特征,测试模式。
在右侧的Classifier output里面,我们看到了实验的结果。
上图给出了生成的决策树,以及叶子节点数、树的节点数、模型训练时间。
再往下是预测结果,可以看到每个样本的实际分类,预测分类,是否错分,预测概率这些信息。
数据挖掘中的特征选择算法综述及基于WEKA的性能比较陈良龙(湖南大学信息科学与工程学院)摘要:自进入21世纪以来,随着信息技术的飞速发展,产生了海量的具有潜在应用价值的数据,将这些数据转换成有用的信息和知识的需求也越来越迫切,因此数据挖掘引起了信息产业界和整个社会的极大关注。
特征选择作为一种常见的降维方法,在数据挖掘中起到不可忽视的作用。
本文首先介绍了数据挖掘处理对象的趋势,然后概述了特征选择算法,最后通过数据挖掘软件WEKA比较了分别基于Filter和Wrapper方法的特征选择算法的性能。
关键词:数据挖掘;特征选择;WEKA;Filter;Wrapper;性能比较A survey of feature selection algorithm in Data Mining and the performancecomparison based on WEKAAbstract: As the mass of data which have potential application and value have been created by the rapid development of information technology since the 21st century, the needs to transferring these data into useful information and knowledge are being more and more urgent, so the Data Mining caused the whole society and the information industry of great concern. Feature selection is critical to Data Mining for that it is a common method to reduce dimensions. The tendency of Data Mining’s handler object is first introduced in this paper, then introduction of the feature selection algorithm, and finally compared the performance of algorithms based on methods of Filter and Wrapper, respectively, by using WEKA (i.e. software used in Data Mining).Keywords: Data Mining; Feature selection; WEKA; Filter; Wrapper; Performance comparison1 引言数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程[1]。
还有很多和这一术语相近似的术语,如从数据库中发现知识(KDD)、数据分析、数据融合(Data Fusion)以及决策支持等。
人们把原始数据看作形成知识的源泉,就像从矿石中采矿一样。
原始数据可以是结构化的,如关系数据库中的数据,也可以是半结构化的,如文本、图形、图像数据,甚至是分布在网络上的异构型数据。
随着信息技术的飞速发展,越来越复杂的数据成为数据挖掘的处理对象,如文本数据、基因序列等。
一般的,这些对象具有几十、几百甚至几万个属性。
通过将这些对象表示成高维属性空间中的点或向量,把客观世界中的对象集用高维数据集合来表示[2]。
然而,随着不相关属性的增加,训练样本的数目也将急剧增加[3]。
一种解决的方法是建立高效的面向高维数据的算法,另外一种则是降低维度。
并且由于这些属性之间很有可能存在冗余等问题,选择好的特征算法成为解决这些问题的可行方法。
特征选择(也叫属性约简)能够为特定的应用在不失去数据原有价值的基础上选择最小的属性子集,去除不相关的和冗余的属性;它能提高数据的质量,加快挖掘的速度并且使得挖掘出的规则更容易理解。
2 特征选择算法的4个要素一般特征选择算法必须确定以下4个要素:1)搜索起点和方向;2)搜索策略:3)特征评估函数;4)停止准则。
2.1 搜索起点和方向搜索起点是算法开始搜索的状态点,搜索方向是指评价的特征子集产生的次序。
搜索的起点和方向是相关的,他们共同决定搜索策略。
一般的,根据不同的搜索起点和方向,有以下4中情况:(1)前向搜索(SFG):从空集S开始,依据某种评价标准,随着搜索的进行,从未被包含在S里的特征集中选择最佳的属性不断加入S。
(2)后向搜索(SBG):从全集S开始,依据某种评价标准不断从S中选择最不重要的属性,直到达到某种停止标准。
它是对前向搜索的补充。
(3)双向搜索(BG):双向搜索同时从两个方向开始搜索。
一般搜索到特征子集空间的中部时,需要评价的子集数将会急剧增加。
当使用单向搜索时,如果搜索要通过子集空间的中部就会消耗掉大量的搜索时间,所以双向搜索是比较常用的搜索方法。
(4)随机搜索(RG):随机搜索从任意的方向开始,对属性的增加和删除也有一定的随机性。
这样可克服局部极小。
LVF算法比较有代表性。
2.2 搜索策略假设原始特征集中有n个特征(也称输入变量),那么存在2n−1个可能的非空特征子集。
搜索策略就是为了从包含2n−1个候选解的搜索空间中寻找最优特征子集而采取的搜索方法。
一般分为3种搜索策略:(1)穷举式搜索:它可以搜索到每个特征子集。
缺点就是它会带来巨大的计算开销,尤其是当特征数比较大时,计算时间很长。
分支定界法(Branch and Bound,BB)通过剪枝处理缩短搜索时间。
(2)序列搜索:它避免了简单的穷举式搜索,在搜索过程中依据某种次序不断向当前特征子集中添加或剔除特征。
从而获得优化特征子集。
比较典型的序列搜索算法如:前向后向搜索、浮动搜索、双向搜索、序列向前和序列向后算法等。
序列搜索算法较容易实现,计算复杂度相对较小,但容易陷入局部最优。
(3)随机搜索:由随机产生的某个候选特征子集开始,依照一定的启发式信息和规则逐步逼近全局最优解。
例如:遗传算法(Genetic Algorithm,GA)、模拟退火算法(Stimulated Annealing,SA)、粒子群算法(Particl Swarm Optimization,PSO)和免疫算法Immune Algorithm,IA)等。
2.3 特征评估函数评价标准在特征选择过程中扮演着重要的角色,它是特征选择的依据。
评价标准可以分为两种:一种是用于单独地衡量每个特征的预测能力的评价标准;另一种是用于评价某个特征子集整体预测性能的评价标准。
分别对应两种重要的方法类型:Filter和Wrapper方法。
在Filter[4]方法中,一般不依赖具体的学习算法来评价特征子集,而是借鉴统计学、信息论等多门学科的思想,根据数据集的内在特性来评价每个特征的预测能力,从而找出排序最优的的若干特征组成特征子集。
而Wrapper方法中,用后续的学习算法嵌入到特征选择过程总,通过测试特征子集在此算法上的预测性能来决定其优劣,而极少关注特征子集中每个特征的预测性能。
因此,后者并不要求最优特征子集中的每个特征都是最优的5。
2.4 停止准则停止准则决定什么时候停止搜索,即结束算法的执行。
它与评价准则或搜索算法以及具体的应用需求均有关联。
常见的停止准则有:(1)执行时间:事先规定算法执行的时间,到达设定时间就强制终止算法;(2)评价次数:设定算法运算次数,一般用于随机搜索;(3)设置阈值:设置一个评价阈值,到达设定值就结束执行。
不过这个阈值可能出现过低或过高的情况。
3 特征选择算法分类从特征选择算法的四个要素可见,重点在于选择最优特征子集所需要的两个步骤上,即搜索策略和评价标准。
下文将分别按照这两个步骤的标准对特征选择算法进行分类。
3.1 按照搜索策略分类按照算法在进行特征选择过程中所选择的搜索策略,可以把特征选择算法分为全局最优特征选择算法、随机搜索策略的特征选择算法和序列搜索策略的特征选择算法3类。
本文重点介绍序列搜索策略的特征选择算法。
3.1.1 全局最优搜索的特征选择算法到目前为止,唯一采用全局最优搜索策略得到最优结果的特征选择方法是“分支定界(Branch and Bound)”算法6。
采用这种搜索策略的特征选择算法,能保证事先确定优化特征子集中特征数目的情况下,找到相对可分性判据而言的最优特征子集。
但是这种策略存在3个主要的问题:1)事先确定最优特征子集中特征数目的多少比较困难;2)合乎问题要求的满足单调性的可分性判据难以设计;3)当处理高维度问题,算法开销大。
3.1.2 随机搜索策略的特征选择算法特征选择本质上是一个组合优化问题,求解这类问题可采用非全局最优目标搜索方法,其实现是依靠带有一定智能的随机搜索策略。
它在计算过程中把特征选择问题和模拟退火算法、禁忌搜索算法、遗传算法、粒子群算法或随机重采样过程结合,以概率推理和采样过程作为算法基础。
遗传算法在这一领域的应用最为广泛。
W.Siedlechi等学者提出早期的基于遗传算法和K近邻分类器的特征选择方法。
然后是J.Y柚g等学者又提出了使用遗传算法结合人工神经网络分类器进行特征选择的方法7。
通常此类方法是根据特征子集在训练集上的分类性能作为特征子集的评价准则。
该方法可以得到一个近似最优解,有较好的应用效果。
但是,当遇到特征数较多的情况,算法的运行会耗费大量的时间。
3.1.3 序列搜索策略的特征选择算法(1)单独最优特征组合。
该方法基于计算个特征单独使用时的判据值对特征进行排序。
取前d个特征组合为最优特征子集。
很多情况下,这种算法能去除一些不相关的变量,可以作为一种特征预选方法。
(2)序列向前选择方法(Sequential Forward Selection, SFS)。
一种“自上而下”的搜索方法,即向前搜索。
这种算法计算量相对较小,但是没有充分考虑特征之间的相关性。
(3)广义序列向前选择(Generalized Sequential Forward Selection, GSFS)。
该方法是SFS的加速方法,一次可以加入多个特征。
该方法在特征选择相关性上有一定提高,但是增加了计算量,且相关性的问题没有彻底解决。
(4)序列向后选择(Sequential BackwardSelection, SBS)。
一种“自底向上”的搜索方法,即向后搜索。
这种方法的计算量比SFS 要大,但是充分考虑了特征之间的相关性。