1、一、属性选择:1、理论知识:见以下两篇文章:数据挖掘中的特征选择算法综述及基于 WEKA 的性能比较_陈良龙数据挖掘中约简技术与属性选择的研究_刘辉2、weka 中的属性选择2.1 评价策略(attribute evaluator)总的可分为 filter 和 wrapper 方法,前者注重对单个属性进行评价,后者侧重对特征子集进行评价。Wrapper 方法有:CfsSubsetEvalFilter 方法有:CorrelationAttributeEval2.1.1 Wrapper 方法:(1)CfsSubsetEval 根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估,单个特征
2、预测能力强且特征子集内的相关性低的子集表现好。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 mor
3、e information see:M. A. Hall (1998). Correlation-based Feature Subset Selection for Machine Learning. Hamilton, New Zealand.(2)WrapperSubsetEvalWrapper 方法中,用后续的学习算法嵌入到特征选择过程中,通过测试特征子集在此算法上的预测性能来决定其优劣,而极少关注特征子集中每个特征的预测性能。因此,并不要求最优特征子集中的每个特征都是最优的。Evaluates attribute sets by using a learning scheme. Cr
4、oss validation is used to estimate the accuracy of the learning scheme for a set of attributes.For more information see:Ron Kohavi, George H. John (1997). Wrappers for feature subset selection. Artificial Intelligence. 97(1-2):273-324.2.1.2 Filter 方法:如果选用此评价策略,则搜索策略必须用 Ranker。(1)CorrelationAttribute
5、Eval 根据单个属性和类别的相关性进行选择。Evaluates the worth of an attribute by measuring the correlation (Pearsons) between it and the class.Nominal attributes are considered on a value by value basis by treating each value as an indicator. An overall correlation for a nominal attribute is arrived at via a weighted
6、average.(2)GainRatioAttributeEval 根据信息增益比选择属性。Evaluates the worth of an attribute by measuring the gain ratio with respect to the class.GainR(Class, Attribute) = (H(Class) - H(Class | Attribute) / H(Attribute).(3)InfoGainAttributeEval 根据信息增益选择属性。Evaluates the worth of an attribute by measuring the i
7、nformation gain with respect to the class.InfoGain(Class,Attribute) = H(Class) - H(Class | Attribute).(4)OneRAttributeEval 根据 OneR 分类器评估属性。Class for building and using a 1R classifier; in other words, uses the minimum-error attribute for prediction, discretizing numeric attributes. For more informat
8、ion, see:R.C. Holte (1993). Very simple classification rules perform well on most commonly used datasets. Machine Learning. 11:63-91.(5)PrincipalComponents主成分分析(PCA) 。Performs a principal components analysis and transformation of the data. Use in conjunction with a Ranker search. Dimensionality redu
9、ction is accomplished by choosing enough eigenvectors to account for some percentage of the variance in the original data-default 0.95 (95%). Attribute noise can be filtered by transforming to the PC space, eliminating some of the worst eigenvectors, and then transforming back to the original space.
10、(6)ReliefFAttributeEval根据 ReliefF 值评估属性。Evaluates the worth of an attribute by repeatedly sampling an instance and considering the value of the given attribute for the nearest instance of the same and different class. Can operate on both discrete and continuous class data.For more information see:Ke
11、nji Kira, Larry A. Rendell: A Practical Approach to Feature Selection. In: Ninth International Workshop on Machine Learning, 249-256, 1992.Igor Kononenko: Estimating Attributes: Analysis and Extensions of RELIEF. In: European Conference on Machine Learning, 171-182, 1994.Marko Robnik-Sikonja, Igor K
12、ononenko: An adaptation of Relief for attribute estimation in regression. In: Fourteenth International Conference on Machine Learning, 296-304, 1997.(7)SymmetricalUncertAttributeEval 根据属性的对称不确定性评估属性。Evaluates the worth of an attribute by measuring the symmetrical uncertainty with respect to the clas
13、s. SymmU(Class, Attribute) = 2 * (H(Class) - H(Class | Attribute) / H(Class) + H(Attribute).2.2 搜索策略(Search Method )2.2.1 和评价策略中的 wrapper 方法对应(1)BestFirst最好优先的搜索策略。是一种贪心搜索策略。Searches the space of attribute subsets by greedy hillclimbing augmented with a backtracking facility. Setting the number of c
14、onsecutive non-improving nodes allowed controls the level of backtracking done. Best first may start with the empty set of attributes and search forward, or start with the full set of attributes and search backward, or start at any point and search in both directions (by considering all possible sin
15、gle attribute additions and deletions at a given point).(2)ExhaustiveSearch穷举搜索所有可能的属性子集。Performs an exhaustive search through the space of attribute subsets starting from the empty set of attrubutes. Reports the best subset found.(3)GeneticSearch基于 Goldberg 在 1989 年提出的简单遗传算法进行的搜索。Performs a search
16、using the simple genetic algorithm described in Goldberg (1989).For more information see:David E. Goldberg (1989). Genetic algorithms in search, optimization and machine learning. Addison-Wesley.(4)GreedyStepwise 向前或向后的单步搜索。Performs a greedy forward or backward search through the space of attribute
17、subsets. May start with no/all attributes or from an arbitrary point in the space. Stops when the addition/deletion of any remaining attributes results in a decrease in evaluation. Can also produce a ranked list of attributes by traversing the space from one side to the other and recording the order
18、 that attributes are selected.(5)RandomSearch 随机搜索。Performs a Random search in the space of attribute subsets. If no start set is supplied, Random search starts from a random point and reports the best subset found. If a start set is supplied, Random searches randomly for subsets that are as good or
19、 better than the start point with the same or or fewer attributes. Using RandomSearch in conjunction with a start set containing all attributes equates to the LVF algorithm of Liu and Setiono (ICML-96).For more information see:H. Liu, R. Setiono: A probabilistic approach to feature selection - A fil
20、ter solution. In: 13th International Conference on Machine Learning, 319-327, 1996.(6)RankSearch 用一个评估器计算属性判据值并排序。Uses an attribute/subset evaluator to rank all attributes. If a subset evaluator is specified, then a forward selection search is used to generate a ranked list. From the ranked list of
21、attributes, subsets of increasing size are evaluated, ie. The best attribute, the best attribute plus the next best attribute, etc The best attribute set is reported. RankSearch is linear in the number of attributes if a simple attribute evaluator is used such as GainRatioAttributeEval. For more inf
22、ormation see:Mark Hall, Geoffrey Holmes (2003). Benchmarking attribute selection techniques for discrete class data mining. IEEE Transactions on Knowledge and Data Engineering. 15(6):1437-1447.2.2.2 和评价策略中的 filter 方法对应(1)Ranker :对属性的判据值进行排序,和评价策略中的 Filter 方法结合使用。Ranks attributes by their individual
23、evaluations. Use in conjunction with attribute evaluators (ReliefF, GainRatio, Entropy etc).3、我的总结针对某一算法及其参数设置,选用 WrapperSubsetEval 评价策略和ExhaustiveSearch 搜索策略 ,能够保证找到适合该算法即参数设置的最优属性子集。但其计算时间较长,并且随着属性个数的增多成指数级增长。二、参数优化针对某一特定算法,进行参数优化有以下三种方法:CVParameterSelection、GridSearch、MultiSearch 。1、CVParameterSe
24、lection采用交叉验证的方法,对参数进行优化选择。优点:可以对任意数量的参数进行优化选择;缺点:参数太多时,可能造成参数组合数量的爆炸性增长;只能优化分类器的直接参数,不能优化其嵌入的参数,比如可以优化weka.classifiers.functions.SMO 里的参数 C,但不能优化weka.classifiers.meta.FilteredClassifier 中的嵌入算法weka.classifiers.functions.SMO 里的参数 C。示例:优化 J48 算法的置信系数 C 载数据集; 选择 weka.classifiers.meta.CVParameterSelecti
25、on 作为分类器; 选择 weka.classifiers.trees.J48 作为的基分类器; 参数优化的字符串:C 0.1 0.5 5(优化参数 C,范围是从 0.1 至 0.5,步距是 0.5/5=0.1) 进行运算,得到如下图所示的结果(最后一行是优化的参数):2、GridSearch采用网格搜索,而不是试验所有的参数组合,进行参数的选择。优点:理论上,相同的优化范围及设置,GridSearch 应该比CVParameterSelection 要快;不限于优化分类器的直接参数,也可以优化其嵌入算法的参数;优化的 2 个参数中,其中一个可以是 filter 里的参数,所以需要在属性表达式
26、中加前缀 classifier.或 filter.;支持范围的自动扩展。缺点:最多优化 2 个参数。示例:优化以 RBFKernel 为核的 SMO 算法的参数 加载数据集; 选择 GridSearch 为 Classifier; 选择 GridSearch 的 Classifier 为 weka.classifiers.functions.SMO ,kernel为 weka.classifiers.functions.supportVector.RBFKernel。 设置 X 参数。XProperty:classifier.c,XMin:1,XMax:16,XStep:1,XExpressi
27、on:I 。这的意思是:选择参数 c,其范围是 1 到 16,步长 1。 设置 Y 参数。YProperty:“classifier.kernel.gamma,YMin:-5,YMax:2,YStep:1,YBase: 10,YExpression: pow(BASE,I)。这的意思是:选择参数 kernel.gamma,其范围是 10-5,10-4,102。 输出如下(最后一行是优化的参数):3、MultiSearch类似网格参数,但更普通更简单。优点:不限于优化分类器的直接参数,也可以优化其嵌入算法的参数或 filter 的参数;支持任意数量的参数优化;缺点:不支持自动扩展边界。4、我的总
28、结如果需要优化的参数不大于 2 个,选用 gridsearch,并且设置边界自动扩展;如果需要优化的参数大于 2 个,选用 MultiSearch;如果优化分类器的直接参数,且参数数量不大于 2 个,也可以考虑用CVParameterSelection。三、meta-Weka 的算法1、算法及描述LocalWeightedLearning:局部加权学习;AdaBoostM1:AdaBoost 方法;AdditiveRegression:GBRT(Grandient Boosting Regression Tree)梯度下降回归树。是属于 Boosting 算法,也是将多分类器进行级联训练,后一
29、级的分类器则更多关注前面所有分类器预测结果与实际结果的残差,在这个残差上训练新的分类器,最终预测时将残差级联相加。AttributeSelectedClassifier:将属性选择和分类器集成设置,先进行属性选择、再进行分类或回归;Bagging:bagging 方法;ClassificationViaRegression:用回归的方法进行分类;LogitBoost:是一种 boosting 算法,用回归进行分类。MultiClassClassifier:使用两类分类器进行多类分类的方法。RondomCommittee:随机化基分类器结果的平均值作为结果。RandomSubspace;Filt
30、erClassifier:将过滤器和分类器集成设置,先进行过滤、再进行分类或回归;(autoweka 中没有)MultiScheme:在所指定的多个分类器或多种参数配置中,选择最优的一个。 (犹如 experiment) ( autoweka 中没有)RandomizableFitteredClassifier:是 FilterClassifier 的变体,对于RondomCommittee 的 ensemble classifiers 是很有用的。要求不管是 filter 还是classifier 都支持 randomizable 接口。 (autoweka 中没有)Vote;Stackin
31、g。2、我的总结Meta 提供了很多以基分类器为输入的方法,其中:AdaBoostM1 和 Bagging 方法是常用的 meta 方法;MultiScheme 和 experiment 的功能类似;AttributeSelectedClassifier 将属性选择和分类器集成设置,比较方便。四、Auto-WEKAAuto-WEKA 支持属性、算法、参数的自动选择。1、属性选择属性选择作为数据的预处理步骤,在分类或回归前运行。Auto-WEKA 中属性选择的评价策略和搜索策略如上图所示。其中标*的是搜索策略,其余的是评价策略。可见,不包括 WrapperSubsetEval 评价策略和Exha
32、ustiveSearch 搜索策略组合的完备搜索。2、算法选择上图是 Auto-WEKA 中包括的分类或回归算法,共 39 种:27 种基分类器、10 种 meta 分类器、2 种 ensemble 分类器。其中, meta 分类器可以选任意一种基分类器作为输入,ensemble 分类器可以使用最多 5 种基分类器作为输入。27 种基分类器包括:Bayes 里的 3 种:BayesNet、NaiveBayes、和 NaiveBayesMultinomial;Functions 里的 9 种:GaussianProcesses、LinearRegression、LogisticRegressio
33、n、SingleLayerPerceptron、SGD、SVM、SimpleLinearRegression、SimpleLogistivRegression、VotedPerceptron。 注意,没有常用的 MultilayerPerceptron、RBFClassifier 和RBFNetwork。Lazy 里的 2 种: KNN、KStar(*)。Rules 里的 6 种:DecisionTables 、RIPPER、M5Rules、1-R、PART、0-R。Trees 里的 7 种:DecisionStump、C4.5DecisionTrees、LogisticModelTree、M
34、5Tree、RandomForest、RondomTree、REPTree。10 种 meta 分类器:LocalWeightedLearning:局部加权学习;AdaBoostM1:AdaBoost 方法;AdditiveRegression:GBRT(Grandient Boosting Regression Tree)梯度下降回归树。是属于 Boosting 算法,也是将多分类器进行级联训练,后一级的分类器则更多关注前面所有分类器预测结果与实际结果的残差,在这个残差上训练新的分类器,最终预测时将残差级联相加。AttributeSelectedClassifier:将属性选择和分类器集成设
35、置,先进行属性选择、再进行分类或回归; Bagging:bagging 方法;ClassificationViaRegression:用回归的方法进行分类;LogitBoost:是一种 boosting 算法,用回归进行分类。MultiClassClassifier:使用两类分类器进行多类分类的方法。RondomCommittee:随机化基分类器结果的平均值作为结果。RandomSubspace。2 种 ensamble 方法:Vote 和 stacking。3、我的总结Auto-Weka 有两点不足:属性选择里不包括 WrapperSubsetEval 评价策略和 ExhaustiveSea
36、rch 搜索策略组合的完备搜索。注意,没有常用的 MultilayerPerceptron、RBFClassifier 和RBFClassifier。五、总结1、属性、算法、参数的选择及优化对于一个不熟悉的数据集合,想要快速获取最佳的分类器、参数设置、属性子集,可以按照以下步骤:Auto-Weka:选择范围是大部分分类器和属性选择策略,但不包括MultilayerPerceptron、RBFClassifier 和 RBFNetwork 等分类器和完备搜索的属性选择策略;补充常用分类器及其参数、属性的选择:针对的不足,选用常用分类器进行属性选择和参数优化,这些常用分类器有MultilayerP
37、erceptron、RBFClassifier、RBFClassifier、BayesNet、NaveBayes、SMO 或 SVM、linerRegression,选用其中一种,或逐一试验,进行;特定分类器的属性选择:选择 explorer 中的“Select attributes”选项卡,属性评估策略(Attribute Evaluator)选择 WrapperSubsetEval,搜索策略(SearchMethod)选择 ExhaustiveSearch,WrapperSubsetEval 中的 Classifier 选择参数优化算法(CVParameterSelection、GridS
38、earch、MultiSearch) ,比如CVParameterSelection,选择 CVParameterSelection 的 Classifier 为特定分类器,进行参数优化的相关配置;运算后,得到 Selected Attributes,暂时记下来;特定分类器的参数优化:在 Preprocess 中预处理数据仅使用中的SelectedAttributes,在 Classifier 中选择和中相同的参数优化算法及其配置,包括分类器;结果:的 SelectedAttributes 和的参数优化值就是特定分类器最佳的属性子集和参数设置。2、特别注意2.1 数据标准化有些算法,在进行运算
39、前,要求必须对数据进行标准化处理,而有些不用。数据标准化的优点: 避免数值问题。 使网络快速的收敛。 统一评价标准,便于不同单位或量级的指标能够进行比较和加权。 bp 中常采用 sigmoid 函数作为转移函数,归一化能够防止净输入绝对值过大引起的神经元输出饱和现象 。 保证输出数据中数值小的不被吞食 。数据标准化的常用方法: Min-max 标准化 min-max 标准化方法是对原始数据进行线性变换,映射到区间0,1或-1,1 。 Z-Score 标准化Z-Score 标准化方法适用于属性 A 的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。这种方法基于原始数据的均值(mean
40、)和标准差(standard deviation)进行数据的标准化,新数据= (原数据- 均值)/标准差 方法选取如果数据分布均匀,则用 Min-max 方法。如果有离群数据,最好找出来删掉,再用 Min-max 方法,如果不好找出来,则用 z-score 方法。何种情况下,要进行标准化:主要看模型是否具有伸缩不变性。一般来说,神经网络类和支持向量机类的算法都需要,并且最好是标准化到-1,1。决策树类的一般不需要。如果不确定,就标准化到-1,1或 Z-Score 吧。2.2TestOptions 的选择主要是 UseTrainingSet 和 CrossValidation 的选择。一般,根据算法的说明,可以判断出是否需要 CrossValidation。有一个小技巧,如果算法的参数设置中有交叉验证的折数(numFolds)和随机选取的种子(seed) ,则不需要 CrossValidation;否则,需要 CrossValidation。CrossValidation 之前,最好对数据进行随机排序。