fscmrmr
语法
描述
返回预测指标,idx
= fscmrmr (资源描述
,ResponseVarName
)idx
重要性,下令预测(从最重要到最不重要)。表资源描述
包含预测变量和响应变量,ResponseVarName
,其中包含的类标签。您可以使用idx
选择的重要预测因子分类问题。
例子
排名预测的重要性
加载示例数据。
负载电离层
根据重要性等级的预测因子。
[idx,分数]= fscmrmr (X, Y);
创建一个酒吧的情节预测重要性分数。
栏(分数(idx))包含(“预测排名”)ylabel (“预测重要性分数”)
分数的下降之间的第一和第二最重要的预测因子大,而下降后第六预测相对较小。下降的重要性分数代表了特征选择的信心。因此,大型下降意味着软件有信心选择最重要的因素。小滴表明预测重要性的差异并不显著。
选择五大最重要的预测因子。找到这些预测的列X
。
idx (1:5)
ans =1×55 4 1 7 24
第五列X
是最重要的预测Y
。
选择特性和比较两种分类模型的精度
通过使用找到重要的预测因子fscmrmr
。然后比较完整的分类模型的精度(它使用所有预测)和减少模型使用使用的五个最重要的预测因子testckfold
。
加载census1994数据集。
负载census1994
表adultdata
在census1994
包含统计数据来自美国人口普查局预测一个人是否使每年超过50000美元。显示表的前三行。
头(adultdata, 3)
年龄workClass fnlwgt教育education_num marital_status种族职业关系性capital_gain capital_loss hours_per_week native_country工资___ ___________ __________ _____ _________________ _____________ _________________ _________________除了___ _____ _____ _____ _______ _______ * * * 39 State-gov 77516单身汉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
左边的工资
通过使用movevars
函数。
adultdata = movevars (adultdata,“fnlwgt”,“之前”,“工资”);头(adultdata, 3)
种族性别年龄workClass教育education_num marital_status职业关系capital_gain capital_loss hours_per_week native_country fnlwgt工资___ ___________ _____ _________________ _____________ _________________ _________________ _____ _____ _______,_______ __________ ______是_____________ * * * 39 State-gov单身汉13未婚Adm-clerical家族的白人男性2174 0 77516美国< = 50 k 50 Self-emp-not-inc单身汉13 Married-civ-spouse Exec-managerial丈夫白人男性0 0 83311年美国13日< = 50 k 38私人HS-grad 9离婚Handlers-cleaners家族的白人男性40 0 0美国2.1565 e + 05 < = 50 k
等级的预测adultdata
。指定的列工资
作为反应变量。
[idx,分数]= fscmrmr (adultdata,“工资”,“重量”,“fnlwgt”);
创建一个酒吧图预测重要的分数。使用预测的名称x设在标记标签。
栏(分数(idx))包含(“预测排名”)ylabel (“预测重要性分数”)xticklabels (strrep (adultdata.Properties.VariableNames (idx),“_”,“\ _”)xtickangle (45)
五个最重要的预测因子的关系
,capital_loss
,capital_gain
,教育
,hours_per_week
。
比较一个分类树的准确性训练与预测的准确性的一个训练有素的五个最重要的预测因子。
创建一个分类树模板使用默认选项。
C = templateTree;
定义表tbl1
包含所有预测和表tbl2
包含五个最重要的预测因子。
tbl1 = adultdata (:, adultdata.Properties.VariableNames (idx (1:13)));tbl2 = adultdata (:, adultdata.Properties.VariableNames (idx (1:5)));
通过分类树模板和两个表testckfold
函数。函数比较两个模型的精度重复交叉验证。指定“替代”、“大”
测试模型的零假设所有的预测是,最多五预测的模型一样准确。的“更大的”
选择是当“测试”
是“5 x2t”
(5×2配对t测试)或“10 x10t”
(10 *重复交叉验证t测试)。
(h p) = testckfold (C, C, tbl1、tbl2 adultdata.salary,“重量”adultdata.fnlwgt,“替代”,“更大的”,“测试”,“5 x2t”)
h =逻辑0
p = 0.9969
h
= 0和p值几乎是1,表示失败拒绝零假设。使用模型的五个因素不会导致精确度损失相比,模型的预测。
现在训练一个分类树使用选定的预测。
mdl = fitctree (adultdata,的工资~关系+ capital_loss + capital_gain +教育+ hours_per_week ',…“重量”adultdata.fnlwgt)
mdl = ClassificationTree PredictorNames:{‘教育’‘关系’‘capital_gain’‘capital_loss’‘hours_per_week} ResponseName:“工资”CategoricalPredictors:[1 - 2]一会:(< = 50 k > 50 k) ScoreTransform:“没有一个”NumObservations: 32561属性,方法
输入参数
资源描述
- - - - - -样本数据
表
样本数据,指定为一个表。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含额外的列和观察权重。
响应变量可以是一个直言,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。如果响应变量是一个字符数组,每个元素的响应变量必须对应一行的数组。
如果
资源描述
包含响应变量,你想使用所有剩余的变量资源描述
作为预测因子,然后通过使用指定的响应变量ResponseVarName
。如果资源描述
还包含观察权重,那么您可以指定使用的重量权重
。如果
资源描述
包含响应变量,和你想使用剩余的变量的一个子集资源描述
作为预测因子,然后由使用指定变量的子集公式
。如果
资源描述
不包含响应变量,然后指定一个响应变量通过使用Y
。响应变量和资源描述
必须有相同数量的行。
如果fscmrmr
使用变量的子集资源描述
预测,那么函数索引预测仅使用子集。中的值“CategoricalPredictors”
名称-值对参数和输出参数idx
不计数函数的预测没有排名。
fscmrmr
认为南
,”
(空字符向量),”“
(空字符串),<失踪>
,<定义>
值资源描述
一个反应变量缺失值。fscmrmr
不使用观测与失踪的响应变量的值。
数据类型:表
ResponseVarName
- - - - - -响应变量名
特征向量包含变量名称或字符串标量资源描述
公式
- - - - - -说明模型的响应变量和预测变量的子集
特征向量|字符串标量
响应变量的解释模型和预测变量的一个子集,指定为一个特征向量或字符串标量形式“Y ~ x1 + x2 + x3”
。在这种形式,Y
代表的响应变量,x1
,x2
,x3
代表了预测变量。
指定变量的子集资源描述
为预测因子,使用一个公式。如果您指定一个公式fscmrmr
没有等级变量吗资源描述
不出现在公式
。
公式中的变量名必须两变量名资源描述
(Tbl.Properties.VariableNames
MATLAB)和有效®标识符。您可以验证变量名资源描述
通过使用isvarname
函数。如果变量名是无效的,那么您可以将其转换使用matlab.lang.makeValidName
函数。
数据类型:字符
|字符串
Y
- - - - - -反应变量
数值向量|分类向量|逻辑向量|字符数组|字符串数组|单元阵列的特征向量
响应变量、指定为一个数字分类,或逻辑向量,字符或字符串数组或单元阵列的特征向量。每一行的Y
代表的标签对应的行X
。
fscmrmr
认为南
,”
(空字符向量),”“
(空字符串),<失踪>
,<定义>
值Y
缺失值。fscmrmr
不使用和缺失值的观察吗Y
。
数据类型:单
|双
|分类
|逻辑
|字符
|字符串
|细胞
X
- - - - - -预测数据
数字矩阵
预测数据,指定为一个数字矩阵。每一行的X
对应于一个观察,每一列对应一个预测变量。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“CategoricalPredictors”,[1 - 2],“详细”,2
将前两个预测变量指定为分类变量和指定冗长水平2。
CategoricalPredictors
- - - - - -列表的分类预测
向量的正整数|逻辑向量|字符矩阵|字符串数组|单元阵列的特征向量|“所有”
分类预测列表,该表中指定的值。
价值 | 描述 |
---|---|
向量的正整数 | 向量中的每个条目是一个索引值表明相应的预测分类。索引值介于1和 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行是一个预测变量的名字。名称必须匹配的名称资源描述 。垫的名字与额外的空格字符矩阵的每一行有相同的长度。 |
字符串数组或单元阵列的特征向量 | 数组中的每个元素是一个预测变量的名字。名称必须匹配的名称资源描述 。 |
“所有” |
所有预测都直言。 |
默认情况下,如果预测数据表(资源描述
),fscmrmr
假设变量是直言如果它是一个逻辑向量,无序分类向量,字符数组,字符串数组或单元阵列特征向量。如果预测数据是一个矩阵(X
),fscmrmr
假设所有的预测都是连续的。识别任何其他预测分类预测,通过使用指定它们CategoricalPredictors
名称-值参数。
例子:“CategoricalPredictors”、“所有”
例子:CategoricalPredictors = 5 6 8 [1]
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
一会
- - - - - -类的名字用于排名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|单元阵列的特征向量
类的名称用于排名,指定为逗号分隔组成的“类名”
和分类、字符或字符串数组,一个逻辑或数值向量,或单元阵列的特征向量。一会
必须具有相同的数据类型Y
或响应变量资源描述
。
如果一会
每个元素是一个字符数组,那么必须对应一个数组的行。
使用“类名”
:
指定的顺序
之前
维对应于类订单。选择一个子集类排名。例如,假设所有不同的类名称的集合
Y
是{' a ', ' b ', ' c '}
。从类等级预测使用的观察“一个”
和“c”
只是,指定“类名”,{' a ', ' c '}
。
的默认值“类名”
所有不同的类名称的集合在吗Y
或响应变量资源描述
。默认的“类名”
价值的数学要求如果响应变量顺序。否则,默认值按字母顺序排序。
例子:“类名”,{' b ', ' g '}
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
之前
- - - - - -先验概率
“经验”
(默认)|“统一”
|向量的标量值|结构
UseMissing
- - - - - -是否使用缺失值的预测指标
假
(默认)|真正的
指标是否在预测中使用缺失值,指定为真正的
使用的值排名,或假
丢弃的值。
fscmrmr
认为南
,”
(空字符向量),”“
(空字符串),<失踪>
,<定义>
值缺失值。
如果您指定UseMissing
作为真正的
,然后fscmrmr
使用缺失值排名。分类变量,fscmrmr
把缺失的值作为一个额外的类别。连续变量,fscmrmr
的地方南
装箱的值在一个单独的本。
如果您指定UseMissing
作为假
,然后fscmrmr
不使用缺失值排名。因为fscmrmr
计算互信息为每一对变量,函数不丢弃整个行值时行部分失踪。fscmrmr
使用对所有值不包括缺失值。
例子:“UseMissing”,真的
例子:UseMissing = true
数据类型:逻辑
详细的
- - - - - -冗长的水平
0
(默认)|非负整数
冗长的层面上,指定为逗号分隔组成的“详细”
和一个非负整数。的价值详细的
控制软件的诊断信息显示在命令窗口。
0 -
fscmrmr
不显示任何诊断信息。1 -
fscmrmr
显示运行时间计算互信息和排名预测。≥2 -
fscmrmr
显示运行时间和更多信息与计算互信息。你增加的信息量增加“详细”
价值。
例子:“详细”,1
数据类型:单
|双
输出参数
更多关于
算法
最小冗余最大相关性(MRMR)算法
MRMR算法[1]找到一组最优的特性是相互和最大限度地不同,可以表示响应变量有效。的算法最小化冗余特性集和最大化的相关性响应变量的特性集。算法量化使用互信息的冗余和相关性variables-pairwise互信息的特征和互信息的特性和响应。您可以使用此算法分类问题。
MRMR算法的目标是找到一组最优年代最大化的功能V年代的相关性,年代对响应变量y,最大限度地减少W年代的冗余年代,在那里V年代和W年代定义与互信息我:
|的|特征的数量吗年代。
寻找一组最优年代需要考虑所有2|Ω|组合,Ω是整个特性集,而是MRMR算法中特征通过远期计划,这需要吗O(|Ω|·|年代|)计算,利用互信息商(筛选)值。
在哪里Vx和Wx的相关性和冗余功能,分别为:
的fscmrmr
函数中所有功能Ω并返回idx
(特性的指数特性重要性)下令使用MRMR算法。因此,计算成本O(|Ω|2)。函数量化的重要性使用启发式算法的功能,并返回一个评分(分数
)。大的得分值表明,相应的预测是很重要的。同时,功能重要性评分下降代表了特征选择的信心。例如,如果选择一个功能的软件很有信心x,然后下一个最重要的得分值特性比的得分值小得多x。您可以使用输出找到一组最优年代对于一个给定数量的特性。
fscmrmr
排名功能如下:
选择功能最大的相关性, 。选中的功能添加到一个空集年代。
找到的特性与非零相关性和零冗余的补充年代,年代c。
如果年代c不包括与非零特征相关性和零冗余,步骤4。
否则,选择功能最大的相关性, 。将选中的功能添加到集合年代。
重复第2步,直到所有功能的冗余不为零年代c。
选择最大的特征进行筛选值非零相关性和非零冗余年代c,并添加选中的特性集年代。
重复步骤4直到所有功能的相关性为零年代c。
添加的特性与零相关年代以随机的顺序。
软件可以跳过任何步骤如果不能找到一个满足条件的特性中描述的步骤。
引用
[1],C。,H. Peng. "Minimum redundancy feature selection from microarray gene expression data."生物信息学和计算生物学》杂志上。3卷,第二,2005年,页185 - 205。
[2]Darbellay, g。,即Vajda。“估计的自适应分区信息的观测空间”。IEEE信息理论。45卷,4号,1999年,页1315 - 1321。
版本历史
介绍了R2019bR2020a:指定“UseMissing”,真的
使用预测中的遗漏值排名
从R2020a开始,您可以指定是否使用或丢弃缺失值的预测排名通过使用“UseMissing”
名称-值对的论点。的默认值“UseMissing”
是假
因为大多数在统计和机器学习分类训练函数工具箱™不使用缺失值进行训练。
在R2019b,fscmrmr
在默认情况下使用缺失值预测。更新你的代码,指定“UseMissing”,真的
。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。