特征选择

合集下载

特征选择方法

特征选择方法

特征选择方法特征选择是机器学习和数据挖掘中非常重要的一步,它能够帮助我们从大量的特征中选择出最具代表性和最有价值的特征,从而提高模型的性能和泛化能力。

在实际应用中,特征选择方法的选择对模型的效果有着至关重要的影响。

本文将介绍几种常见的特征选择方法,帮助读者更好地理解和应用特征选择技术。

首先,我们来介绍过滤式特征选择方法。

过滤式特征选择方法是在特征选择和模型训练之前进行的,它通过对特征进行评估和排序,然后选择排名靠前的特征作为最终的特征集合。

常见的过滤式特征选择方法包括方差选择法、相关系数法和卡方检验法等。

这些方法都是基于特征本身的统计特性进行选择,简单高效,适用于大规模数据集的特征选择。

其次,我们介绍包裹式特征选择方法。

包裹式特征选择方法是在模型训练过程中进行的,它通过反复训练模型,不断调整特征集合,最终选择出最佳的特征组合。

常见的包裹式特征选择方法包括递归特征消除法、基于模型的特征选择法和遗传算法等。

这些方法都是基于模型性能的反馈进行选择,能够得到更加精确的特征集合,但计算成本较高,适用于小规模数据集的特征选择。

最后,我们介绍嵌入式特征选择方法。

嵌入式特征选择方法是将特征选择过程嵌入到模型训练过程中的方法,它通过正则化或者惩罚项的方式,对特征进行选择和调整。

常见的嵌入式特征选择方法包括L1正则化、决策树特征重要性和基于模型的特征选择等。

这些方法能够兼顾特征选择和模型训练的平衡,能够得到既高效又准确的特征集合,适用于各种规模的数据集。

综上所述,特征选择是机器学习和数据挖掘中不可或缺的一步,选择合适的特征选择方法能够提高模型的性能和泛化能力。

在实际应用中,我们可以根据数据集的规模、特征的性质和模型的要求来选择合适的特征选择方法,从而得到最佳的特征集合,提升模型的预测能力。

希望本文能够帮助读者更好地理解和应用特征选择方法,提升数据分析和建模的能力。

特征选择在推荐系统中的应用

特征选择在推荐系统中的应用

在当今信息爆炸的时代,推荐系统已经成为了人们获取信息和商品的重要途径。

然而,随着数据量的不断增加,推荐系统往往会面临“信息过载”的问题,也就是说,用户可能会受到大量无用信息的干扰,从而难以找到自己真正需要的内容。

在这种情况下,特征选择成为了推荐系统中不可或缺的一环。

本文将从特征选择在推荐系统中的应用角度出发,对其进行探讨和分析。

一、特征选择的意义特征选择是指从所有特征中选择一个子集,以便模型能够更好地学习和推理。

在推荐系统中,特征选择的意义主要体现在以下几个方面:1. 精简数据:推荐系统往往涉及大量的用户数据和商品信息,如果不对特征进行选择和筛选,将会导致模型过于复杂,计算量过大,从而影响推荐效果。

2. 提高准确性:通过特征选择,可以去除无关变量,减少噪声的影响,使得模型更加准确地预测用户的偏好和行为。

3. 降低过拟合风险:特征选择可以减少模型的复杂度,避免过拟合的出现,提高模型的泛化能力。

二、特征选择的方法特征选择的方法有很多种,常见的包括过滤式、包裹式和嵌入式。

在推荐系统中,可以根据具体的应用场景和数据特点来选择合适的方法。

1. 过滤式特征选择:这种方法是在特征选择和模型训练之前进行的,主要是根据特征与标签之间的相关性进行筛选。

在推荐系统中,可以通过计算用户对商品的评分和商品之间的相似度来选择特征。

2. 包裹式特征选择:这种方法是直接在模型训练过程中进行特征选择,通常采用启发式搜索的方式,通过不断调整特征子集的方式来寻找最优的特征组合。

3. 嵌入式特征选择:这种方法是将特征选择和模型训练结合起来,通过正则化等方式来约束模型的复杂度,从而实现对特征的选择和筛选。

三、特征选择在推荐系统中的应用特征选择在推荐系统中有着广泛的应用。

以基于内容的推荐系统为例,可以通过特征选择来提取用户和商品的特征,从而构建用户画像和商品画像,进而实现个性化推荐。

同时,在协同过滤推荐系统中,特征选择也可以帮助识别用户和商品之间的相似性,从而提高推荐的准确性和覆盖度。

机器学习模型的特征选择方法比较与影响因素分析

机器学习模型的特征选择方法比较与影响因素分析

机器学习模型的特征选择方法比较与影响因素分析在机器学习领域,特征选择是指从原始数据中选出对模型建立和预测能力有贡献的特征子集的过程。

特征选择的目的是减少特征空间的维度,提高模型的泛化能力和解释性。

有许多不同的特征选择方法可供选择,并且在选择方法时需要考虑多种因素。

一、特征选择方法比较1. 过滤法(Filter method):过滤法是一种简单且高效的特征选择方法。

它通过计算某个特征与目标变量之间的相关性来筛选特征。

常用的过滤法有皮尔逊相关系数、卡方检验和信息增益等。

过滤法不会受到特征学习算法的影响,适用于数据集规模大的情况。

然而,它没有考虑特征之间的相互关联,可能会选择冗余特征。

2. 包装法(Wrapper method):包装法通过将特征选择过程包装在特定的学习算法中来选择特征子集。

它会使用某个学习算法对每个特征子集进行评估,并选择产生最佳性能的特征子集。

常用的包装法有递归特征消除(Recursive FeatureElimination, RFE)和遗传算法等。

包装法能够考虑特征之间的关联性和互动作用,但计算开销较大,对数据集大小和学习算法的选择敏感。

3. 嵌入法(Embedded method):嵌入法将特征选择过程嵌入在学习算法的训练中,例如LASSO和岭回归等。

在模型的训练过程中,嵌入法会同时进行特征选择和参数优化,使得选择到的特征与模型的性能相互关联。

嵌入法能够充分利用模型的信息,但对训练数据要求较高,不适用于特征空间大的情况。

以上三种特征选择方法各有优缺点,选择方法时需要根据具体情况进行权衡和比较。

如果数据集有大量冗余特征,过滤法可以作为首选方法。

对于较小的数据集,包装法和嵌入法可能更适合,因为它们能够充分考虑特征之间的关联性和互动作用。

然而,注意到越复杂的特征选择方法可能会导致计算开销的增加,因此在选择方法时还应考虑对计算资源的要求。

二、特征选择的影响因素分析1. 特征与目标变量的相关性:特征与目标变量之间的相关性是一个重要的评估指标。

特征选择

特征选择
在机器学习的实际应用中,特征数量往往较多,其中可能 存在不相关的特征,特征之间也可能存在相互依赖,容易导致 如下的后果: 1)、特征个数越多,分析特征、训练模型所需的时间就越长。 2)、特征个数越多,容易引起“维度灾难”,模型也会越复杂, 其推广能力会下降。 特征选择能剔除不相关或冗余的特征,从而达到减少特征 个数,提高模型精确度,减少运行时间的目的。另一方面,选 取出真正相关的特征简化了模型,使研究人员易于理解数据产 生的过程。
4.1.2 启发式搜索
1、序列前向选择 算法描述:特征子集X从空集开始,每次选择一个特征x加入 特征子集X,使得特征函数J( X)最优 2、序列后向选择 算法描述:从特征全集O开始,每次从特征集O中剔除一个 特征x,使得剔除特征x后评价函数值达到最优。 3、双向搜索 算法描述:使用序列前向选择(SFS)从空集开始,同时使用 序列后向选择(SBS)从全集开始搜索,当两者搜索到一个相同的 特征子集C时停止搜索。
4.1.3随机搜索
随机产生序列选择算法(RGSS, Random Generation plus Sequential Selection) 模拟退火算法( SA, Simulated Annealing ) 遗传算法( GA, Genetic Algorithms )
4.2评价函数
评价函数的作用是评价产生过程所提供的特征子集的好坏。 评价函数根据其工作原理,主要分为筛选器(Filter)、封装器 ( Wrapper )两大类。 筛选器通过分析特征子集内部的特点来衡量其好坏。 封装器实质上是一个分类器,封装器用选取的特征子集对 样本集进行分类,分类的精度作为衡量特征子集好坏的标准。 筛选器和封装器是两种互补的模式,两者可以结合。混合 特征选择过程一般可以由两个阶段组成,首先使用筛选器初步 剔除大部分无关或噪声特征,只保留少量特征。第二阶段将剩 余的特征连同样本数据作为输入参数传递给封装器,以进一步 优化选择重要的特征。

机器学习中的特征选择是什么?

机器学习中的特征选择是什么?

机器学习中的特征选择是什么?随着大数据时代的到来,机器学习越来越被广泛应用。

在机器学习算法中,特征选择是一个重要的环节。

什么是特征选择?特征选择是从原始数据中选择合适的特征子集,以提高分类或回归的性能、降低模型复杂性和提高模型解释性的过程。

下面我们来详细讲解一下机器学习中的特征选择。

一、特征选择的目的是什么?特征选择的目的是找到最优特征子集,使得模型具有最好的泛化性能、最小的过拟合和最好的解释性。

当数据集具有多个特征时,机器学习模型往往会受到维数灾难的影响。

特征选择可以删减掉冗余、噪声等不重要的特征,从而降低维度,提高模型的准确性和可解释性。

二、特征选择的方法有哪些?特征选择方法可分为三类:过滤式、包裹式和嵌入式。

过滤式方法通过统计量或机器学习方法来评估每个特征和分类或回归的相关性,选择排名前n个的特征。

包裹式方法是在特征子集上训练机器学习模型,并充分利用模型信息来选择最佳的特征子集。

嵌入式方法是将特征选择融入到机器学习模型的训练过程中,通过正则化项或其他方法来约束特征的权值,从而选择出重要的特征。

三、特征选择技术的应用有哪些?特征选择技术在机器学习中有着广泛的应用,例如在文本分类、图像分类、信用评级、金融风险控制等领域。

例如,在文本分类中,通过删除关键词外的其余词,即进行特征选择,可以减少噪音和冗余,提高分类的准确性;在图像分类中,通过矩阵分解等技术,可以选择具有强区别性及抗噪声的像素位置作为特征,从而提高分类的准确性。

四、特征选择技术的优劣势分析特征选择技术可以大大提高模型的准确性和可解释性,同时可以降低维度,减少计算量和存储空间。

但是,特征选择也有一些局限性,例如在数据集较小或特征极少的情况下,特征选择可能并不明显;另外,不同的特征选择技术可能对不同的数据集有不同的效果,需要根据具体情况选择合适的方法。

结语:总之,特征选择是机器学习中非常重要的一环,能够提高模型的准确性和可解释性,并且缓解维度灾难。

特征提取与特征选择的区别与联系(Ⅲ)

特征提取与特征选择的区别与联系(Ⅲ)

特征提取和特征选择是机器学习和数据挖掘领域中常用的两个概念。

虽然它们都是为了从原始数据中提取出有用的特征以便进行进一步的分析和建模,但是它们之间有着明显的区别和联系。

首先我们来看看特征提取,特征提取是指从原始数据中提取出一些能够代表数据特征的特征。

这些特征可以是原始数据中的某些属性,也可以是对原始数据进行某种变换得到的新的特征。

特征提取的目的是将原始数据转化为更容易被机器学习算法处理的形式,同时保持数据的最重要的特征。

特征提取的方法有很多种,比如说主成分分析(PCA)、线性判别分析(LDA)、小波变换等。

这些方法可以将高维度的数据降维到低维度,从而减小了数据的复杂度,提高了机器学习的效率。

特征提取的过程可以看成是对数据的一种抽象和概括,它的目的是提取出对于目标任务最有用的信息。

而特征选择则是在特征提取的基础上进行的一个步骤。

特征选择是指从已有的特征中选择出对目标任务最有用的特征。

在特征提取的过程中,可能会产生大量的特征,有些特征可能对于目标任务没有太大的作用,甚至会影响到机器学习算法的性能。

因此需要进行特征选择,选择出对目标任务最有用的特征,去除那些冗余或者无关的特征。

特征选择的方法也有很多种,比如说过滤式特征选择、包裹式特征选择、嵌入式特征选择等。

过滤式特征选择是指通过对特征进行评估,选择出对目标任务最有用的特征,比如说使用相关系数或者信息增益进行特征评估。

包裹式特征选择是指在特征子集上训练出一个机器学习模型,通过模型的性能来评估特征的重要性。

嵌入式特征选择则是指在模型训练的过程中自动选择出对目标任务最有用的特征,比如说使用正则化方法。

特征提取和特征选择在实际应用中经常会同时进行,它们之间有着很大的联系。

特征提取会产生大量的特征,在特征选择的过程中,有时候也需要对特征进行一些变换和组合。

比如说,在包裹式特征选择的过程中,需要对特征子集进行训练,可能需要将特征进行某种组合,而这个过程有点类似于特征提取。

特征选择:方差选择法、卡方检验、互信息法、递归特征消除、L1范数、树模型

特征选择:方差选择法、卡方检验、互信息法、递归特征消除、L1范数、树模型

特征选择:⽅差选择法、卡⽅检验、互信息法、递归特征消除、L1范数、树模型转载:特征选择主要从两个⽅⾯⼊⼿:特征是否发散:特征发散说明特征的⽅差⼤,能够根据取值的差异化度量⽬标信息.特征与⽬标相关性:优先选取与⽬标⾼度相关性的.对于特征选择,有时候我们需要考虑分类变量和连续变量的不同.1.过滤法:按照发散性或者相关性对各个特征进⾏评分,设定阈值或者待选择阈值的个数选择特征⽅差选择法:建议作为数值特征的筛选⽅法计算各个特征的⽅差,然后根据阈值,选择⽅差⼤于阈值的特征from sklearn.feature_selection import VarianceThresholdfrom sklearn.datasets import load_irisimport pandas as pdX,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))#建议作为数值特征的筛选⽅法,对于分类特征可以考虑每个类别的占⽐问题ts = 0.5vt = VarianceThreshold(threshold=ts)vt.fit(X_df)#查看各个特征的⽅差dict_variance = {}for i,j in zip(X_df.columns.values,vt.variances_):dict_variance[i] = j#获取保留了的特征的特征名ls = list()for i,j in dict_variance.items():if j >= ts:ls.append(i)X_new = pd.DataFrame(vt.fit_transform(X_df),columns=ls)卡⽅检验:建议作为分类问题的分类变量的筛选⽅法经典的卡⽅检验是检验定性⾃变量对定性因变量的相关性。

假设⾃变量有N种取值,因变量有M种取值,考虑⾃变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:from sklearn.feature_selection import VarianceThreshold,SelectKBest,chi2from sklearn.datasets import load_irisimport pandas as pdX,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))(chi2,pval) = chi2(X_df,y)dict_feature = {}for i,j in zip(X_df.columns.values,chi2):dict_feature[i]=j#对字典按照values排序ls = sorted(dict_feature.items(),key=lambda item:item[1],reverse=True)#特征选取数量k =2ls_new_feature=[]for i in range(k):ls_new_feature.append(ls[i][0])X_new = X_df[ls_new_feature]互信息法:建议作为分类问题的分类变量的筛选⽅法经典的互信息也是评价定性⾃变量对定性因变量的相关性的,为了处理定量数据,最⼤信息系数法被提出,互信息计算公式如下:from sklearn.feature_selection import VarianceThreshold,SelectKBest,chi2from sklearn.datasets import load_irisimport pandas as pdfrom sklearn.feature_selection import mutual_info_classif#⽤于度量特征和离散⽬标的互信息X,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))feature_cat = ["A","D"]discrete_features = []feature = X_df.columns.values.tolist()for k in feature_cat:if k in feature:discrete_features.append(feature.index(k))mu = mutual_info_classif(X_df,y,discrete_features=discrete_features,n_neighbors=3, copy=True, random_state=None)dict_feature = {}for i,j in zip(X_df.columns.values,mu):dict_feature[i]=j#对字典按照values排序ls = sorted(dict_feature.items(),key=lambda item:item[1],reverse=True)#特征选取数量k =2ls_new_feature=[]for i in range(k):ls_new_feature.append(ls[i][0])X_new = X_df[ls_new_feature]from sklearn.feature_selection import VarianceThreshold,SelectKBest,chi2from sklearn.datasets import load_irisimport pandas as pdfrom sklearn.feature_selection import mutual_info_classif,mutual_info_regression#⽤于度量特征和连续⽬标的互信息X,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))feature_cat = ["A","D"]discrete_features = []feature = X_df.columns.values.tolist()for k in feature_cat:if k in feature:discrete_features.append(feature.index(k))mu = mutual_info_regression(X_df,y,discrete_features=discrete_features,n_neighbors=3, copy=True, random_state=None)dict_feature = {}for i,j in zip(X_df.columns.values,mu):dict_feature[i]=j#对字典按照values排序ls = sorted(dict_feature.items(),key=lambda item:item[1],reverse=True)#特征选取数量k =2ls_new_feature=[]for i in range(k):ls_new_feature.append(ls[i][0])X_new = X_df[ls_new_feature]2.包装法递归特征消除法:⽤⼀个基模型来进⾏多轮训练,每轮训练后,消除若⼲权值系数的特征,再基于新的特征集进⾏下⼀轮训练from sklearn.datasets import load_irisimport pandas as pdfrom sklearn.feature_selection import RFE,RFECVfrom sklearn.ensemble import RandomForestClassifierX,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))refCV = RFECV(estimator=RandomForestClassifier(),step=0.5,cv =5,scoring=None,n_jobs=-1)refCV.fit(X_df,y)#保留特征的数量refCV.n_features_#保留特征的False、True标记refCV.support_feature_new = X_df.columns.values[refCV.support_]#交叉验证分数refCV.grid_scores_3.嵌⼊的⽅法基于L1范数:使⽤带惩罚项的基模型,除了筛选出特征外,同时也进⾏了降维from sklearn.datasets import load_irisimport pandas as pdfrom sklearn.feature_selection import SelectFromModelfrom sklearn.linear_model import LogisticRegressionX,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))sf = SelectFromModel(estimator=LogisticRegression(penalty="l1", C=0.1),threshold=None,prefit=False,norm_order=1)sf.fit(X_df,y)X_new = X_df[X_df.columns.values[sf.get_support()]]基于树模型的特征选择法:树模型中GBDT也可⽤来作为基模型进⾏特征选择,使⽤feature_selection库的SelectFromModel类结合GBDT模型from sklearn.datasets import load_irisimport pandas as pdfrom sklearn.feature_selection import SelectFromModelfrom sklearn.ensemble import GradientBoostingClassifierX,y = load_iris(return_X_y=True)X_df = pd.DataFrame(X,columns=list("ABCD"))sf = SelectFromModel(estimator=GradientBoostingClassifier(),threshold=None,prefit=False,norm_order=1)sf.fit(X_df,y)X_new = X_df[X_df.columns.values[sf.get_support()]]。

特征选择方法

特征选择方法

特征选择方法特征选择是机器学习和数据挖掘中的重要环节,其目的是从原始特征中选择出对目标变量有重要影响的特征,以提高模型的预测性能和降低计算成本。

在实际应用中,特征选择方法的选择对最终模型的性能有着重要的影响。

本文将介绍几种常见的特征选择方法,以帮助读者更好地理解和应用特征选择技术。

1. 过滤式特征选择。

过滤式特征选择是在训练模型之前对特征进行选择,其主要思想是根据特征与目标变量之间的相关性来进行选择。

常用的过滤式特征选择方法包括相关系数、信息增益、卡方检验等。

这些方法通过对特征进行评估,筛选出与目标变量相关性较高的特征,从而达到降低特征维度、提高模型性能的目的。

2. 包裹式特征选择。

包裹式特征选择是在模型训练过程中进行特征选择,其主要思想是将特征选择过程嵌入到模型训练中。

常用的包裹式特征选择方法包括递归特征消除、基于模型的特征选择等。

这些方法通过反复训练模型并调整特征集合,最终选择出对模型性能影响最大的特征组合。

3. 嵌入式特征选择。

嵌入式特征选择是在模型训练过程中自动地进行特征选择,其主要思想是将特征选择过程融入到模型参数的学习过程中。

常用的嵌入式特征选择方法包括L1正则化、决策树剪枝等。

这些方法通过在模型训练过程中对特征进行惩罚或剪枝,从而实现特征选择的目的。

4. 混合式特征选择。

混合式特征选择是将多种特征选择方法进行组合,以充分利用各种方法的优势。

常用的混合式特征选择方法包括特征重要性评估、特征组合搜索等。

这些方法通过综合考虑不同特征选择方法的结果,选择出对模型性能影响最大的特征集合。

在实际应用中,特征选择方法的选择应根据具体问题的特点和数据的特征来进行。

需要注意的是,特征选择过程应该是一个迭代的过程,需要不断地尝试不同的方法和参数,以找到最优的特征集合。

另外,特征选择方法的选择也需要考虑到模型的类型和性能指标,以确保选择出的特征集合能够在实际应用中发挥最大的作用。

总之,特征选择是机器学习和数据挖掘中至关重要的一环,其选择方法的合理性和有效性直接影响着最终模型的性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Relief算法最早由Kira提出,最初局限于两类数据的分类
问题。Relief算法是一种特征权重算法,根据各个特征和
类别的相关性赋予特征不同的权重,权重小于某个阈值的 特征将被移除。 Relief算法中特征和类别的相关性是基于特征对近距离样 本的区分能力。
-3-
Relief 算法
算法从训练集D中随机选择一个样本R,然后从和R同类的
-5-
-6-
Relief 算法
由于Relief算法比较简单,但运行效率高,并且结果也比较 令人满意,因此得到广泛应用,但是其局限性在于只能处理 两类别数据. 1994年Kononeill对其进行了扩展,得到了ReliefF作算法,
可以处理多类别问题。
该算法用于处理目标属性为连续值的回归问题。ReliefF算法 在处理多类问题时,每次从训练样本集中随机取出一个样本 R,然后从和R同类的样本集中找出R的k个近邻样本 (near Hits),从每个R的不同类的样本集中均找出k个近邻样 本(near Misses),然后更新每个特征的权重
1
2
0.1226
0.3590
0.3754
第四个特征最重要,第二个特征最不重要
-19-
rankfeatures 函数
[IDX, Z] = rankfeatures(X, Group) 使用类别可分性原则排序特征
Rankfeatures使用单独的评价准则对二元分类问题排序特
征。 X是数据矩阵,每一列是一个观测数据向量,行的数量对 应于原始特征集合中特征的数量,Group是类标号 IDX是那些最显著的特征的行的索引,Z是使用准则的绝对
是1-10,因此不需要归一化,但是数据样本中存在一些不 完整,会影响实际的程序运行,经过程序处理,将这一部 分数据删除。这些不完整的数据都是由于实际中一些原因 没有登记或者遗失的,以“?”的形式代表。
-13-
Relief 实例
1. 将数据直接可按ctrl+A,ctrl+C拷贝到excel文件中。 2. 拷贝后,在excel中可用数据分割,按属性分割单列数
特征权重的计算经常依赖于K,如果设置K为1,结果可能
因为数据噪声而不可靠,如果K设置为X矩阵中观测样本的 数量相当,relieff可能查找重要的属性失败。 一般情况下我们可设置K=10
可设置多个不同的K来评价属性排序的稳定性
-17-
Relief 函数介绍
例子: load ionosphere; %装载样本数据 [ranked,weights] = relieff(X,Y,10); %特征排序
和Near Miss上的距离,说明该特征对区分同类和不同类 的最近邻起负面作用,则降低该特征的权重。
-4-
Relief 算法
以上过程重复m次,最后得到各特征的平均权重。特征的
权重越大,表示该特征的分类能力越强,反之,表示该特
征分类能力越弱。Relief算法的运行时间随着样本的抽样 次数m和原始特征个数N的增加线性增加,因而运行效率 非常高。
7. 调用matlab函数 [ranked,weight] = relieff(breastcancer(:,1:10),breastcancer(:,11),10) 实现relieff特征选择
-15-
Relief 函数介绍
[RANKED,WEIGHT] = relieff(X,Y,K) 使用Relieff算法对分类问题计算属性的权重和排名
-7-
-8-
-9-
Relief 算法
Relief系列算法运行效率高,对数据类型没有限制,属于
一种特征权重算法,算法会赋予所有和类别相关性高的特 征较高的权重 算法的局限性在于不能有效的去除冗余特征。
-10-
Relief 实例
选用的数据集为:Breast Cancer Wisconsin Data 的索引,以特征的重要性排序,也即是说 RANKED(1)是最重要的特征
Y是结果列,如果列是数值型的,relieff函数默认执行回归分析,若是
非数值型的,例如整型类标号,默认执行分类预测
-16-
Relief 函数介绍
[RANKED,WEIGHT] = relieff(X,Y,K) 使用Relieff算法对分类问题计算属性的权重和排名
-21-
rankfeatures 函数
%使用线性判别式分类器测试前十个特征与rankfeature选 出的十个特征 C = classify(X(1:10,:)',X(1:10,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate Acc=0.8667
样本中寻找最近邻样本H,称为Near Hit,从和R不同类
的样本中寻找最近邻样本M,称为NearMiss,然后根据 以下规则更新每个特征的权重:如果R和Near Hit在某个 特征上的距离小于R和Near Miss上的距离,则说明该特 征对区分同类和不同类的最近邻是有益的,则增加该特征
的权重;反之,如果R和Near Hit在某个特征的距离大于R

-20-
rankfeatures 函数
例子: 找到约简的基因集合能够区分乳腺癌细胞和其他类型的癌 症细胞
load NCI60tmatrix; %装载样本数据
BC = GROUP == 8; %得到乳腺癌细胞的逻辑索引向量 %选择特征 I = rankfeatures(X,BC,'NumberOfIndices',12);
C = classify(X(I,:)',X(I,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate
Acc=1
-22-
rankfeatures 函数
% 使用交叉相关性权重进一步约简基因数量并测试这些特 征 I= rankfeatures(X,BC,'CCWeighting',0.7,'NumberOfIndices', 8); C = classify(X(I,:)',X(I,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate
据为多列数据,数据分割选用以符号(逗号)分割。
3. 查找含有?的数据行,整行删除 4. 保存数据为处理好的数据
-14-
Relief 实例
5. 打开matlab软件,在workspace窗口新增一变量 6. 点击导入数据按钮,选中刚刚保存好的excel数据文件,
导入数据,变量取名自定义如breastcancer
数据挖掘概念及技术
特征选择
Relief 算法
Relief为一系列算法,它包括最早提出的Relief以
及后来拓展的ReliefF和RReliefF,其中RReliefF
算法是针对目标属性为连续值的回归问题提出的,
下面仅介绍一下针对分类问题的Relief和ReliefF算法。
-2-
Relief 算法
%创建特征权重的直方图 bar(weights(ranked)); xlabel('Predictor rank'); ylabel('Predictor importance weight');
-18-
Relief 函数介绍
例子:
load fisheriris; %装载样本数据
[ranked,weight] = relieff(meas,species,10) %特征排序 ranked = 4 3 weight = 0.1399
中文名称为:威斯康星州乳腺癌数据集。 网址: /ml/datasets/Breast+Cancer+Wis consin
-11-
Relief 实例
下表是该数据集的11个属性名称及说明:
-12-
Relief 实例
在下载数据后,首先进行预处理,由于本文的数据范围都
-23-
-24-
相关文档
最新文档