主要内容

FSCMRMR.

使用最小冗余最大相关性(MRMR)算法分类的等级功能

描述

idx.= fscmrmr (TBL.responsevarname.使用该排列功能(预测器)MRMR算法.桌子TBL.包含预测变量和响应变量responsevarname.是响应变量的名称TBL..函数返回idx.,其中包含通过预测的重要性排序的预测器指数。您可以使用idx.为分类问题选择重要的预测因子。

idx.= fscmrmr (TBL.公式指定要在变量中考虑的响应变量和预测变量TBL.通过使用公式

例子

idx.= fscmrmr (TBL.Y排名预测因素TBL.使用响应变量Y

例子

idx.= fscmrmr (XY排名预测因素X使用响应变量Y

idx.= fscmrmr (___名称,价值除了以前语法中的任何输入参数组合之外,使用一个或多个名称值对参数指定其他选项。例如,您可以指定先前的概率和观察权重。

idx.得分) = fscmrmr (___还返回预测的分数得分.一个较大的得分值表明相应的预测器是重要的。

例子

全部收缩

加载样本数据。

加载电离层

基于重要性等待预测器。

[idx,分数]= fscmrmr (X, Y);

创建一个预测标志重要评分的条形图。

BAR(分数(IDX))XLABEL('预测的排名')ylabel(“预测变量重要性评分”

图包含轴。轴包含类型栏的物体。

第一和第二最重要的预测器之间的分数下降很大,而第六预测器之后的液滴相对较小。重要性评分的下降代表了特征选择的置信度。因此,大幅下降意味着该软件对选择最重要的预测因子是有信心的。小滴表示预测性重要性的差异并不重要。

选择前五大最重要的预测因子。找到这些预测器的列X

IDX(1:5)
ans =.1×55 4 1 7 24

第五列X是最重要的预测因子Y

查找使用重要的预测FSCMRMR..然后比较完整的分类模型(使用所有的预测器)和简化模型(使用5个最重要的预测器)的准确性testckfold.

加载人口普查1994数据集。

加载人口普查1994.

桌子AdultData.人口普查1994.包含来自美国人口普查局的人口统计数据,以预测个人每年赚超过50,000美元。显示表的前三行。

头(AdultData,3)
ans =.3×15表年龄workClass fnlwgt教育education_num marital_status种族职业关系性capital_gain capital_loss hours_per_week native_country薪水  ___ ________________ __________ _________ _____________ __________________ _________________ _____________ _____ ____ ____________ ____________ ______________ ______________ ______ 39 State-gov77516单身汉13未婚Adm-clerical家族的白人男性2174 0 40美国< = 50 k 50 Self-emp-not-inc 83311单身汉13 Married-civ-spouse Exec-managerial丈夫13美国白人男性0 0 < = 50 k 38私人2.1565 e + 05 HS-grad 9离婚Handlers-cleaners家族的白人男性40 0 0美国< = 50 k

的输出参数FSCMRMR.仅包括函数中排名的变量。在将表传递到函数之前,将不希望在表格的末尾进行排名,包括响应变量和权重的变量,以便输出参数的顺序与表的顺序一致。

在该表AdultData.,第三列fnlwgt.是样品的重量,和最后一栏的重量工资是响应变量。移动fnlwgt.至左侧工资通过使用搬运活动功能。

AdultData = MoveVars(AdultData,'fnlwgt''前''薪水');头(AdultData,3)
ans =.3×15表年龄workClass教育education_num婚姻状况职业关系种族性别capital_gain capital_loss hours_per_week NATIVE_COUNTRY fnlwgt工资___ ________________ _________ _____________ __________________ _________________ _____________ _____ ____ ____________ ____________ ______________ ______________ __________ ______ 39国政务学士13未婚ADM-文书不在位家庭白人男性21740 40美国-美国77516 <= 50K 50自EMP-未INC大学13已婚-CIV-配偶Exec的-管理夫白人男性0 0 13美利坚-美国83311 <= 50K 38私人HS-研究所9离婚处理程序的清洁剂未在家庭白人男性0 0 40美国,美国2.1565e + 05 <= 50K

对预测者进行排序AdultData..指定列工资作为响应变量。

[Idx,scores] = FSCMRMR(AdultianData,'薪水'“重量”'fnlwgt');

创建一个预测标志重要分数的条形图。使用预测的名称x轴刻度标记。

BAR(分数(IDX))XLABEL('预测的排名')ylabel(“预测变量重要性评分”)XTicklabels(Strrep(Adjordata.properties.variablenames(Idx),'_''\ _'))xtickangle(45)

图包含轴。轴包含类型栏的物体。

五个最重要的预测因子是关系capital_losscapital_gain教育, 和每周几小时

比较培训的分类树的准确性,以所有预测器培训到具有五个最重要的预测因子训练的准确性。

使用默认选项创建分类树模板。

c = templatetree;

定义表格tbl1包含所有预测器和表格tbl2包含五个最重要的预测指标。

TBL1 = AdultData(:,Aduclandata.properties.variablenames(IDX(1:13)));TBL2 = AdultData(:,AdultData.properties.VariaBlenames(IDX(1:5)));

将分类树模板和两个表传递给testckfold.功能。该功能通过反复的交叉验证两个模型的精度比较。指定“替代”、“大”为了测试与所有预测器的模型最多是与五个预测器的模型准确的模型。的'更大'选项可用'测试''5x2t'(5-by-2配对t测试)或'10x10t'(10比10重复交叉验证t测试)。

[h,p] = testckfold(c,c,tbl1,tbl2,amertandata.salary,“重量”,AdultData.fnlwgt,'选择''更大''测试''5x2t'
h =逻辑0
p值= 0.9969

h等于0和p-Value几乎是1,表明未能拒绝零假设。与五个预测器的模型不导致与所有预测器的模型相比丢失准确性。

现在使用所选的预测器列出分类树。

mdl = fitctree(amertandata,'薪水〜关系+ capital_loss + capital_gain +教育+ herm_per_week'......“重量”,AdultData.fnlwgt)
MDL = ClassificationTree PredictorNames:{1×5细胞} ResponseName: '工资' CategoricalPredictors:[1 2]的类名:[<= 50K> 50K] ScoreTransform: '无' NumObservations:32561的属性,方法

输入参数

全部收缩

示例数据,指定为表。不允许使用除了字符向量的单元格阵列之外的多色变量和单元阵列。

每一排TBL.对应一个观察值,每一列对应一个预测变量。可选地,TBL.可以包含用于响应变量和权重观察附加列。

响应变量可以是分类数组、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。如果响应变量是一个字符数组,那么响应变量的每个元素必须对应数组的一行。

  • 如果TBL.包含响应变量,并且您希望使用所有剩余的变量TBL.作为预测器,然后通过使用指定响应变量responsevarname..如果TBL.也包含观察权值,那么您可以通过使用指定权值权重

  • 如果TBL.包含响应变量,并且只想仅使用剩余变量的子集TBL.作为预测器,然后使用的是使用变量的子集公式

  • 如果TBL.不包含响应变量,然后通过使用指定响应变量Y.响应变量和TBL.必须有相同的行数。

如果FSCMRMR.使用的变量中的一个子集TBL.作为预测器,然后函数仅使用子集对预测器进行索引。的值“CategoricalPredictors”名称值对参数和输出参数idx.不计算预测的功能并不靠前。

FSCMRMR.考虑''(空字符向量),""(空字符串),<缺失>, 和<未定义>价值TBL.为响应变量被丢失的值。FSCMRMR.不使用响应变量缺失值的观察。

数据类型:桌子

响应变量名称,指定为字符向量或字符串标量,包含变量的名称TBL.

例如,如果响应变量是列YTBL.tbl.y.),然后指定responsevarname.作为'是'

数据类型:char|细绳

响应变量的解释模型和预测变量的子集,指定为表单中的字符向量或字符串标量'y〜x1 + x2 + x3'.在这种形式,Y表示响应变量,和X1X2, 和X3表示预测变量。

指定变量的子集TBL.作为预测者,使用一个公式。如果你指定一个公式,那么FSCMRMR.排名并不靠前的任何变量TBL.没有出现在公式

公式中的变量名必须是其中的两个变量名TBL.tbl.properties.variablenames.)和有效MATLAB®标识符。您可以验证变量名TBL.通过使用isvarname功能。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makevalidname.功能。

数据类型:char|细绳

响应变量,指定为数字,类别,或逻辑向量,一个字符或字符串数​​组,或字符向量的单元阵列。每一排Y的对应行的标签X

FSCMRMR.考虑''(空字符向量),""(空字符串),<缺失>, 和<未定义>价值Y缺少值。FSCMRMR.不使用为Y

数据类型:单身的|双倍的|分类|逻辑|char|细绳|细胞

预测数据,指定为数字矩阵。每一排X对应一个观察值,每一列对应一个预测变量。

数据类型:单身的|双倍的

名称值对参数

指定可选的逗号分离对名称,价值论点。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'patoricalpricictors',[1 2],'verbose',2指定作为分类变量的前两个预测器变量,并指定呈现级别级别为2。

分类预测,指定在此表中的值的一个列表。

价值 描述
正整数矢量

向量中的每个条目是与包含分类变量的预测数据列对应的索引值。索引值在1之间p, 在哪里p是用于训练模型的预测器数量。

如果FSCMRMR.使用输入变量的子集作为预测器,然后函数仅使用子集索引预测器。的“CategoricalPredictors”值不计算响应变量,观察权重变量和功能不使用的任何其他变量。

逻辑矢量

一个真的条目意味着预测器数据的相应列是分类变量。矢量的长度是p

字符矩阵 矩阵的每一行是预测器变量的名称。名字必须匹配TBL..使用额外的空白填充名称,因此字符矩阵的每行具有相同的长度。
字符串阵列或字符向量的单元数组 数组中的每个元素都是一个预测变量的名称。名字必须匹配TBL.
'全部' 所有预测因素都是分类的。

默认情况下,如果预测数据是在一个表(TBL.),FSCMRMR.假设变量是分类的,如果它是逻辑向量,无序分类向量,字符数组,字符串数组或字符向量的单元数组。如果预测器数据是矩阵(X),FSCMRMR.假设所有预测因子都是连续的。要将任何其他预测因子识别为分类预测器,请通过使用来指定它们“CategoricalPredictors”名称值参数。

例子:'CategoricalPredictors', '所有'

数据类型:单身的|双倍的|逻辑|char|细绳|细胞

的类的名称,以用于排名,指定为逗号分隔的一对组成的'classnames'以及类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会必须具有相同的数据类型Y或响应变量TBL.

如果一会是一个字符数组,那么每个元素都必须对应于数组的一行。

'classnames'到:

  • 指定的顺序事先的对应于类顺序尺寸。

  • 选择排名的类别。例如,假设所有不同类别名称的集合Y{' a ', ' b ', ' c '}.使用来自类的观察结果对预测器进行排序'一种''C'仅限,指定'classnames',{'a','c'}

默认值'classnames'是所有不同类名的集合Y或响应变量TBL..默认值'classnames'如果响应变量是序数,则值具有数学排序。否则,默认值具有字母顺序排序。

例子:“类名”,{' b ', ' g '}

数据类型:分类|char|细绳|逻辑|单身的|双倍的|细胞

每个类的先前概率,指定为以下之一:

  • 字符矢量或字符串标量。

    • '经验'中的响应变量中的类频率确定类概率Y或者TBL..如果你通过观察权重,FSCMRMR.使用权重来计算类的概率。

    • '制服'将所有类的概率是相等的。

  • 向量(每个类的一个标量值)。的对应元素的类顺序'事先的',设置'classnames'名称值参数。

  • 结构年代有两个领域。

    • S.ClassNames包含类名作为与响应变量相同类型的变量Y或者TBL.

    • S.ClassProbs包含相应概率的向量。

FSCMRMR.在归一化每个类的权重(“重量”)要加入相应类的现有概率的值。

例子:'先前','制服'

数据类型:char|细绳|单身的|双倍的|塑造

用于在预测器中使用或丢弃缺失值的指示,指定为包括的逗号分隔对“UseMissing”和任何一种真的使用或错误的为了排名而丢弃预测器中缺失的值。

FSCMRMR.考虑''(空字符向量),""(空字符串),<缺失>, 和<未定义>值缺少值。

如果您指定'veremissing',真实, 然后FSCMRMR.使用缺失的排名值。对于一个分类变量,FSCMRMR.将丢失的值作为额外的类别处理。对于连续变量,FSCMRMR.地点单独的垃圾箱中的值用于分布。

如果您指定'veremissing',false, 然后FSCMRMR.对于排名不使用缺失值。因为FSCMRMR.计算每对变量的互动信息,当行中的值部分丢失时,该函数不会丢弃整行。FSCMRMR.使用所有对值不包括遗漏值。

例子:'veremissing',真实

数据类型:逻辑

详细级别,指定为逗号分隔对组成'verbose'和一个非负整数。的价值verb控制软件在命令窗口中显示的诊断信息的数量。

  • 0 -FSCMRMR.不显示任何诊断信息。

  • 1 -FSCMRMR.显示用于计算的经过时间相互信息和排名预测。

  • ≥2 -FSCMRMR.显示与计算相互信息相关的经过时间和更多消息。当您增加时,信息量增加'verbose'价值。

例子:'verbose',1

数据类型:单身的|双倍的

观察权重,指定为逗号分隔的配对组成“重量”和标量值的矢量或变量的名称TBL..函数对每一行的观测值进行加权X或者TBL.具有相应的价值权重.的大小权重必须等于行的数量X或者TBL.

如果将输入数据指定为表TBL., 然后权重可以是变量的名称TBL.包含数字矢量。在这种情况下,您必须指定权重为一个字符向量或标量的字符串。例如,如果权重向量是列WTBL.TBL.W.),然后指定'重量,'w'

FSCMRMR.将每个类中的权重标准化,以加入相应类的现有概率的值。

数据类型:单身的|双倍的|char|细绳

输出参数

全部收缩

预测因素的指标X或者TBL.通过预测的重要性命令,返回为1-by-r数字矢量,在哪里r是排名的预测因子的数量。

如果FSCMRMR.使用的变量中的一个子集TBL.作为预测器,然后函数仅使用子集对预测器进行索引。例如,假设TBL.包含10列,并指定的最后5列TBL.通过使用预测变量公式.如果idx (3)5,那么第三个最重要的预测是在第10列TBL.,这是子集中的第五预测器。

预测分数,返回为1逐r数字矢量,在哪里r是排名的预测因子的数量。

一个较大的得分值表明相应的预测器是重要的。此外,特征重要性得分的下降表示特征选择的置信度。例如,如果软件有信心选择一个特性x,然后下一个最重要的特征的分数值远小于分数值x

  • 如果你使用X指定预测器或使用所有变量TBL.作为预测,则在值得分与预测器有相同的订单X或者TBL.

  • 如果指定的变量中的一个子集TBL.作为预测,则在值得分与子集具有相同的顺序。

例如,假设TBL.包含10列,并指定的最后5列TBL.通过使用预测变量公式.然后,得分(3)包含第8列的分数值TBL.,这是子集中的第三预测器。

更多关于

全部收缩

相互信息

两个变量之间的互信息测量通过了解其他变量可以减少一个变量的不确定性。

相互信息离散随机变量XZ被定义为

X Z σ. j P X x Z z j 日志 P X x Z z j P X x P Z z j

如果XZ是独立的,然后等于0.如果XZ是同一个随机变量,然后等于熵X

FSCMRMR.函数使用这个定义来计算互信息值都分类(离散的)和连续变量。FSCMRMR.将一个连续变量离散为256个箱子或变量中唯一值的数量,如果它小于256。该函数使用自适应算法为每一对变量找到最优的二元容器[2]

算法

全部收缩

MRMR (Minimum Redundancy Maximum Relevance)算法

MRMR算法[1]查找相互和最大不同的最佳特征集,可以有效地表示响应变量。该算法最小化特征集的冗余,并最大化特征设置为响应变量的特征的相关性。该算法使用变量的相互信息与特征和响应的相互信息的相互信息来定量冗余和相关性。您可以使用此算法进行分类问题。

在MRMR算法的目标是找到一个最佳的集年代的功能最大化V年代,相关性年代关于响应变量y,并最小化W年代,冗余年代, 在哪里V年代W年代被定义为相互信息

V 年代 1 | 年代 | σ. x 年代 x y

W 年代 1 | 年代 | 2 σ. x z 年代 x z

|的|是功能的数量年代

找到最佳集合年代需要考虑所有2|ω.|组合,在哪里ω.是整个功能集。相反,MRMR算法通过前向加法方案排列特征,这需要O(|ω.|·|年代|))计算,通过使用互信息额定额定(MIQ)值。

MIQ. x V x W x

在哪里VxWx是一个功能的相关性和冗余:

V x x y

W x 1 | 年代 | σ. z 年代 x z

FSCMRMR.功能排列所有特征ω.并退货idx.(使用MRMR算法(特征重要性订购的特征指数)。因此,计算成本变为O(|ω.|2.该函数使用启发式算法和返回量化功能的重要性分数.一个较大的得分值表明相应的预测器是重要的。此外,特征重要性得分的下降表示特征选择的置信度。例如,如果软件有信心选择一个特性x,然后下一个最重要的特征的分数值远小于分数值x.您可以使用输出查找最佳集合年代对于给定数量的功能。

FSCMRMR.排名的功能如下:

  1. 具有最大相关性选择的功能, 最大限度 x ω. V x .将所选功能添加到空集中年代

  2. 查找的互补与非零相关性的特点和零冗余年代年代c

    • 如果年代c不包括与非零相关性和零冗余功能,请转到第4步。

    • 否则,选择具有最大相关性的功能, 最大限度 x 年代 c W x 0 V x .将所选功能添加到集合中年代

  3. 重复步骤2,直到所有功能都不为零年代c

  4. 选择具有NOZERO相关性和非零冗余的MIQ值最大的功能年代c,并将所选特性添加到集合中年代

    最大限度 x 年代 c MIQ. x 最大限度 x 年代 c x y 1 | 年代 | σ. z 年代 x z

  5. 重复步骤4,直到所有功能的相关性为零年代c

  6. 添加具有零相关性的功能年代以随机顺序。

如果无法找到满足步骤中描述的条件的功能,软件可以跳过任何步骤。

兼容性考虑因素

展开全部

行为R2020a改变

参考

[1] Ding, C.和H. Peng。从微阵列基因表达数据中选择最小冗余特征中国生物信息学与计算生物学杂志。第3卷第2期,2005年,185-205页。

Darbellay, g.a.,和I. Vajda。通过对观测空间的自适应划分来估计信息。IEEE关于信息理论的交易。卷。45,第4号,1999年,第1315至1321年。

介绍了R2019b