主要内容

FSCMRMR.

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

描述

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

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

例子

idx.= fscmrmr(资源描述y排名预测因素资源描述使用响应变量y

例子

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

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

[idx.得分] = fscmrmr(___也返回预测分数得分.大得分值表示相应的预测器很重要。

例子

全部折叠

加载样本数据。

负载电离层

根据重要性对预测因素进行排序。

[Idx,scores] = fscmrmr(x,y);

创建预测器重要性分数的条形图。

栏(分数(idx))包含(“预测排名”)ylabel('预测重点评分'

图中包含一个坐标轴。坐标轴包含bar类型的对象。

第一和第二重要预测指标之间的分数下降很大,而第六重要预测指标之后的分数下降相对较小。重要性分数的下降表示特征选择的置信度。因此,大的下降意味着软件有信心选择最重要的预测因子。小幅度的下降表明预测因子重要性的差异不显著。

选择最重要的五个预测因素。中找到这些预测器的列X

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

第五纵队X是最重要的预测因子y

通过使用找到重要的预测因子FSCMRMR..然后比较完整分类模型(使用所有预测器)的精度和使用五个最重要的预测因子的缩小模型testckfold.

加载census1994数据集。

负载census1994

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

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

输出论据FSCMRMR.只包含按函数排序的变量。在将表传递给函数之前,将不希望排序的变量(包括响应变量和权重)移动到表的末尾,以便输出参数的顺序与表的顺序一致。

在表格中AdultData.,第三列fnlwgt是样品的重量,以及最后一列薪水是响应变量。移动fnlwgt在左边薪水通过使用movevars函数。

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-Not Inc学士13结婚 -  Civ-Spouse Exec-Manager Justric Males 0 0 1 13美国83311 <= 50K 38私人HS-Grad 9离婚处理器 - 清洁剂Not-In-Family White Male 0 0 0 40美国2.1565E + 05 <= 50K

排名预测因子AdultData..指定列薪水作为响应变量。

[idx,分数]= fscmrmr (adultdata,“工资”'重量'“fnlwgt”);

创建预测器重要性分数的条形图。使用预测器名称X-axis刻度标签。

栏(分数(idx))包含(“预测排名”)ylabel('预测重点评分') xticklabels (strrep (adultdata.Properties.VariableNames (idx),'_'“\ _”) xtickangle (45)

图中包含一个坐标轴。坐标轴包含bar类型的对象。

五个最重要的预测因子是关系Capital_Loss.资本收益教育, 和hours_per_week

比较用所有预测器训练的分类树的准确性和用五个最重要的预测器训练的分类树的准确性。

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

C = templateTree;

定义表TBL1.包含所有预测器和表格TBL2.包含五个最重要的预测因子。

tbl1 = adultdata (:, adultdata.Properties.VariableNames (idx (1:13)));tbl2 = adultdata (:, adultdata.Properties.VariableNames (idx (1:5)));

将分类树模板和两个表传递给testckfold.函数。该功能通过重复的交叉验证比较了两种模型的精度。指定'替代','更大'测试一个零假设,即包含所有预测器的模型最多与包含五个预测器的模型一样准确。这'更大'选项可用'测试''5x2t'(5-by-2配对T.测试)或“10 x10t”(10比10重复交叉验证T.测试)。

(h p) = testckfold (C, C, tbl1、tbl2 adultdata.salary,'重量',AdultData.fnlwgt,“替代”'更大''测试''5x2t'
h =逻辑0.
p = 0.9969.

H等于0P.-value几乎等于1,表示拒绝零假设失败。与包含所有预测因素的模型相比,使用包含五个预测因素的模型不会导致准确性的损失。

现在使用选定的预测器训练分类树。

mdl = fitctree (adultdata,'工资~关系+资本损失+资本收益+教育+每周工时'......'重量',AdultData.fnlwgt)
mdl = classificationtree predictorn:{1x5 cell} racatectename:'薪资'类别预防icon:[1 2] ClassNames:[<= 50k> 50k] ScorEtransform:'无'NumObServations:32561属性,方法

输入参数

全部折叠

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

每一行的资源描述对应一个观察值,每一列对应一个预测变量。可选地,资源描述可以包含响应变量和观察权重的附加列。

响应变量可以是字符向量的分类,字符或字符串阵列,逻辑或数字矢量或字符向量阵列。如果响应变量是一个字符数组,则响应变量的每个元素必须对应于数组的一行。

  • 如果资源描述包含响应变量,并且您希望使用中的所有剩余变量资源描述作为预测器,然后使用responsevarname..如果资源描述还包含观察权重,然后您可以通过使用来指定权重重量

  • 如果资源描述包含响应变量,并且您希望仅使用其中剩余变量的一个子集资源描述作为预测器,然后使用公式

  • 如果资源描述不包含响应变量,则使用y.响应变量和资源描述必须具有相同数量的行。

如果FSCMRMR.使用变量子集资源描述作为预测器,该函数仅使用子集索引预测器。价值'pationoricalpricictors'名称值对参数和输出参数idx.不要计算函数不等级的预测器。

FSCMRMR.认为''(空字符向量),(空字符串),< >失踪, 和<定义>价值资源描述对于缺少值的响应变量。FSCMRMR.不使用响应变量缺失值的观察。

数据类型:表格

中的响应变量名,指定为包含变量名的字符向量或字符串标量资源描述

例如,如果响应变量是列y资源描述tbl.y.),然后指定responsevarname.作为“Y”

数据类型:字符|细绳

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

中指定变量的子集资源描述作为预测器,使用公式。如果您指定公式,那么FSCMRMR.没有排列任何变量资源描述没有出现在公式

公式中的变量名称必须是变量名称资源描述Tbl.Properties.VariableNames)和有效的matlab®身份标识。您可以验证变量名称资源描述通过使用isvarname.函数。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makevalidname.函数。

数据类型:字符|细绳

响应变量,指定为数字,分类或逻辑向量,字符或字符串数​​组,或字符向量的小区数组。每一行的y表示相应行的标签X

FSCMRMR.认为''(空字符向量),(空字符串),< >失踪, 和<定义>价值y丢失值。FSCMRMR.不使用具有缺失值的观察y

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

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

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

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。姓名参数名和价值是相应的价值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“CategoricalPredictors”,[1 - 2],“详细”,2将前两个预测变量指定为分类变量,并将详细程度指定为2。

分类预测器列表,指定为此表中的值之一。

价值 描述
正整数矢量

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

如果FSCMRMR.使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。这'pationoricalpricictors'值不计算响应变量、观察权重变量和函数未使用的任何其他变量。

逻辑矢量

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

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

默认情况下,如果预测器数据在表中(资源描述),FSCMRMR.如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假设它是类别变量。如果预测数据是一个矩阵(X),FSCMRMR.假设所有预测器都是连续的。要将任何其他预测器标识为分类预测器,请使用'pationoricalpricictors'名称-值参数。

例子:'patericalpricictors','全部'

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

用于排名的类的名称,指定为逗号分隔的配对组成“类名”和一个分类,字符或字符串阵列,逻辑或数字矢量,或字符向量的单元格数组。Classnames.必须具有相同的数据类型y或者是响应变量资源描述

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

使用“类名”:

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

  • 选择一个类的子集进行排名。例如,假设集合中所有不同的类名y{'a','b','c'}.使用课程的观察排列预测器'一种''C'只是,指定'classnames',{'a','c'}

默认值“类名”是否包含所有不同的类名y或者是响应变量资源描述.默认的“类名”如果响应变量是有序的,则值具有数学顺序。否则,默认值按字母顺序排列。

例子:'classnames',{'b','g'}

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

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

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

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

    • '制服'设置所有类概率等于。

  • 向量(每个类的一个标量值)。指定相应元素的类顺序“之前”,设置“类名”名称-值参数。

  • 结构S.两个字段。

    • S.Classnames.将类名包含为与响应变量相同类型的变量y或者资源描述

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

FSCMRMR.将每个类中的重量正常化('重量')的先验概率值相加。

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

数据类型:字符|细绳|单身的|双倍的|结构体

指示是否使用或丢弃预测器中丢失的值,指定为逗号分隔对,由'veremissing',要么真的使用或在排名中丢弃缺失的值。

FSCMRMR.认为''(空字符向量),(空字符串),< >失踪, 和<定义>值为缺失值。

如果您指定“UseMissing”,真的,然后FSCMRMR.使用缺失值进行排名。对于分类变量,FSCMRMR.将缺失的值视为额外的类别。对于连续变量,FSCMRMR.地点值放在单独的容器中进行分类。

如果您指定“UseMissing”,假的,然后FSCMRMR.不使用缺失的排名值。因为FSCMRMR.计算每对变量的互信息,当行中的值部分丢失时,函数不会丢弃整个行。FSCMRMR.使用不包含缺失值的所有对值。

例子:“UseMissing”,真的

数据类型:逻辑

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

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

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

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

例子:'verbose',1

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

观察权值,指定为逗号分隔的对,由'重量'和标量值或变量名的向量资源描述.函数重量每行中的观察X或者资源描述对应的值在重量.的大小重量必须等于行数X或者资源描述

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

FSCMRMR.对每个类别的权重进行归一化,使其与各自类别的先验概率值相加。

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

输出参数

全部折叠

预测因素的指标X或者资源描述通过预测的重要性命令,返回为1-by-R.数字矢量,R.是排名的预测因子的数量。

如果FSCMRMR.使用变量子集资源描述作为预测器,该函数仅使用子集索引预测器。例如,假设资源描述包含10列,您可以指定最后五列资源描述作为预测因子变量使用公式.如果IDX(3)5.然后第三个最重要的预测器是第10列资源描述,它是子集中的第五个预测因子。

预测的分数,返回为1-by-R.数字矢量,R.是排名的预测因子的数量。

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

  • 如果你使用X指定预测器或使用。中的所有变量资源描述作为预测因子,那么值得分和预测数的顺序一样X或者资源描述

  • 如果指定了变量的子集资源描述作为预测因子,那么值得分和子集的顺序一样。

例如,假设资源描述包含10列,您可以指定最后五列资源描述作为预测因子变量使用公式.然后,分数(3)包含第8列的分数值资源描述,它是子集中的第三个预测因子。

更多关于

全部折叠

相互信息

两个变量之间的互信息衡量的是,通过了解另一个变量,一个变量的不确定性可以减少多少。

相互信息一世离散随机变量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)算法

MRMR算法[1]找出一组相互的、最大不相似的、能有效表示响应变量的最优特征。该算法使特征集的冗余最小化,使特征集与响应变量的相关性最大化。该算法利用变量的互信息——特征的成对互信息和特征与响应的互信息来量化冗余度和相关性。你可以用这个算法来解决分类问题。

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

V. S. = 1 | S. | σ. X S. 一世 X y

W. S. = 1 | S. | 2 σ. X Z. S. 一世 X Z.

| S |是功能的数量S.

寻找最优集S.需要考虑一下2|Ω|组合,在哪里Ω是整个特性集。相反,MRMR算法通过前向加法方案对特征进行排序,这需要O.(|Ω|··|S.|))计算,使用互信息商(MIQ)值。

MIQ. X = V. X W. X

在哪里V.XW.X为特征的相关性和冗余,分别为:

V. X = 一世 X y

W. X = 1 | S. | σ. Z. S. 一世 X Z.

FSCMRMR.函数排名所有功能Ω并返回idx.(根据特征重要性排序的特征指数)。因此,计算成本就变成O.(|Ω|2.该函数使用启发式算法量化特性的重要性并返回分数.大得分值表示相应的预测器很重要。此外,特征重要性分数的下降代表了特征选择的置信度。例如,如果软件有信心选择要素X,然后下一个最重要的特征的分数值远小于分数值X.您可以使用输出来找到最优集S.对于给定数量的功能。

FSCMRMR.排名的功能如下:

  1. 选择具有最大相关性的功能, 马克斯 X Ω V. X .将选定的特性添加到空集S.

  2. 在补充中找到具有非零相关性和零冗余的功能S.S.C

    • 如果S.C不包括具有非单相关性和零冗余的功能,转到步骤4。

    • 否则,选择相关性最大的特征, 马克斯 X S. C W. X = 0. V. X .将选定的特性添加到集合中S.

  3. 重复步骤2,直到所有特性的冗余不为零S.C

  4. 中具有非零相关性和非零冗余的MIQ值最大的特征S.C,并将所选功能添加到集合中S.

    马克斯 X S. C MIQ. X = 马克斯 X S. C 一世 X y 1 | S. | σ. Z. S. 一世 X Z.

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

  6. 添加与之无关的特性S.以随机的顺序。

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

兼容性考虑因素

展开全部

R2020A中的行为发生了变化

参考文献

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

[2] Darbellay,G. A.和I. Vajda。“通过观察空间的自适应划分估计信息。”IEEE关于信息理论的交易。卷。45,第4,1999号,第1315-1321页。

在R2019B中介绍