fscchi2
使用卡方检验进行单变量特征排序分类
语法
描述
使用排序功能(预测器)卡方测试.表idx
= fscchi2 (资源描述
,ResponseVarName
)资源描述
包含预测变量和响应变量,以及ResponseVarName
响应变量的名称在吗资源描述
.函数返回idx
,其中包含按预测因子重要性排序的预测因子指标,即idx (1)
是指数最重要的预测指标。你可以使用idx
为分类问题选择重要的预测因子。
例子
矩阵中的秩预测器
在数值矩阵中排列预测因子,并创建预测因子重要性分数的条形图。
加载样例数据。
负载电离层
电离层
包含预测变量(X
)和响应变量(Y
).
使用卡方检验对预测因子进行排序。
[idx,scores] = fscchi2(X,Y);
中的值分数
是负对数吗p值。如果一个p-value小于每股收益(0)
,则对应的得分值为正
.在创建条形图之前,确定是否分数
包括正
值。
找到(isinf(分数)
Ans = 1x0空双行向量
分数
不包括正
值。如果分数
包括正
值,可以替换正
通过一个大的数字,然后创建一个条形图,以实现可视化的目的。详细信息请参见在表中排名预测器.
创建预测器重要性分数的条形图。
栏(分数(idx))包含(“预测排名”) ylabel (“预测者重要性评分”)
选择前五个最重要的预测因素。找到这些预测因子的列X
.
idx (1:5)
ans =1×55 7 3 8 6
第五列X
最重要的预测因素是什么Y
.
在表中排名预测器
在表格中对预测因子排序,并创建预测因子重要性分数的条形图。
如果数据在一个表中fscchi2
对表中的变量子集进行排序,然后函数仅使用该子集对变量进行索引。因此,一个好的实践是将您不希望排列的预测器移动到表的末尾。移动响应变量和观察权重向量。然后,输出参数的索引与表的索引一致。
加载census1994数据集。
负载census1994
表adultdata
在census1994
包含美国人口普查局的人口数据,以预测一个人的年收入是否超过5万美元。显示表的前三行。
头(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已婚-公民-配偶-行政-管理-丈夫-白人男性0 0 13美国<=50K 38二等兵2.1565e+05 hs -毕业生9离婚处理人-清洁工没有家庭的白人男性0 0 40美国<=50K
在表格中adultdata
,第三列fnlwgt
是样本的权重,和最后一列工资
是响应变量。移动fnlwgt
在的左边工资
通过使用movevars
函数。
成人数据= movevars(成人数据,“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已婚-公民-配偶-行政-管理-丈夫-白人男性0 0 13美国83311 <=50K 38私人hs -毕业生9离婚处理-清洁工-非家庭白人男性0 0 40美国2.1565e+05 <=50K
对预测因子进行排序adultdata
.指定列工资
作为响应变量,并指定列fnlwgt
作为观察权重。
[idx,scores] = fscchi2(成人数据,“工资”,“重量”,“fnlwgt”);
中的值分数
是负对数吗p值。如果一个p-value小于每股收益(0)
,则对应的得分值为正
.在创建条形图之前,确定是否分数
包括正
值。
idxInf = find(isinf(scores))
idxInf =1×81 3 4 5 6 7 10 12
分数
包括八个正
值。
创建一个预测器重要性分数的条形图。的预测器名称x-轴标记标签。
图形栏(scores(idx))“预测排名”) ylabel (“预测者重要性评分”) xticklabels (strrep (adultdata.Properties.VariableNames (idx),“_”,“\ _”) xtickangle (45)
的酒吧
函数不为正
值。为正
值,与最大有限分数具有相同长度的图条。
持有在酒吧(分数(idx(长度(idxInf) + 1) *(长度(idxInf), 1))传说(“有限的分数”,“正分数”)举行从
条形图使用不同的颜色显示有限分数和Inf分数。
输入参数
资源描述
- - - - - -样本数据
表格
示例数据,指定为表。不允许使用字符向量的单元格数组以外的多列变量和单元格数组。
每行资源描述
对应一个观测值,每一列对应一个预测变量。可选地,资源描述
可以包含响应变量和观察权重的附加列。
响应变量可以是类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。如果响应变量是字符数组,则响应变量的每个元素必须对应于数组中的一行。
如果
资源描述
包含响应变量,您希望在中使用所有剩余变量资源描述
作为预测器,然后通过使用指定响应变量ResponseVarName
.如果资源描述
还包含观测权重,然后可以通过使用指定权重权重
.如果
资源描述
包含响应变量,并且您希望仅在中使用其余变量的子集资源描述
作为预测器,然后通过使用指定变量的子集公式
.如果
资源描述
不包含响应变量,然后通过使用Y
.响应变量和资源描述
必须有相同的行数。
如果fscchi2
中使用变量的子集资源描述
作为预测器,函数仅使用该子集对预测器进行索引。中的值“CategoricalPredictors”
名称-值对参数和输出参数idx
不要计算函数没有排序的预测因子。
fscchi2
认为南
,”
(空字符向量),""
(空字符串),< >失踪
,<定义>
值资源描述
响应变量缺少值。fscchi2
不使用缺少值的观察值作为响应变量。
数据类型:表格
ResponseVarName
- - - - - -响应变量名
中包含变量名称的字符向量或字符串标量资源描述
公式
- - - - - -响应变量的解释模型和预测变量的子集
特征向量|字符串标量
响应变量和预测变量子集的解释模型,在表单中指定为字符向量或字符串标量“Y ~ x1 + x2 + x3”
.在这种形式下,Y
表示响应变量,和x1
,x2
,x3
表示预测变量。
中指定变量的子集资源描述
作为预测因素,使用公式。如果你指定一个公式,那么fscchi2
不排名任何变量资源描述
没有出现在公式
.
公式中的变量名必须同时为资源描述
(Tbl.Properties.VariableNames
)和有效的MATLAB®标识符。中的变量名可以验证资源描述
通过使用isvarname
函数。变量名无效,则可以使用matlab.lang.makeValidName
函数。
数据类型:字符
|字符串
Y
- - - - - -反应变量
数值向量|分类向量|逻辑向量|字符数组|字符串数组|字符向量的单元格数组
响应变量,指定为数字、类别或逻辑向量、字符或字符串数组或字符向量的单元格数组。每行Y
的对应行的标签X
.
fscchi2
认为南
,”
(空字符向量),""
(空字符串),< >失踪
,<定义>
值Y
丢失的值。fscchi2
不使用缺少值的观察Y
.
数据类型:单
|双
|分类
|逻辑
|字符
|字符串
|细胞
X
- - - - - -预测数据
数字矩阵
预测器数据,指定为数值矩阵。每行X
对应一个观测值,每一列对应一个预测变量。
数据类型:单
|双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“UseMissing”“NumBins”,20日,真的
将箱子的数量设置为20,并指定在预测器中使用缺失值进行排名。
CategoricalPredictors
- - - - - -分类预测符列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符的列表,指定为此表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。名称必须与中的名称相匹配资源描述 .用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素都是一个预测变量的名称。名称必须与中的名称相匹配资源描述 . |
“所有” |
所有预测因素都是绝对的。 |
默认情况下,如果预测器数据在表(资源描述
),fscchi2
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定它是分类的。如果预测器数据为矩阵(X
),fscchi2
假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用CategoricalPredictors
名称-值参数。
例子:“CategoricalPredictors”、“所有”
例子:分类预测=[1 5 6 8]
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
一会
- - - - - -用于排序的类名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
用于排序的类的名称,指定为逗号分隔的对,由“类名”
以及类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会
必须具有相同的数据类型Y
或者响应变量资源描述
.
如果一会
是字符数组,则每个元素必须对应数组中的一行。
使用“类名”
:
的顺序
之前
与类顺序相对应的维度。选择一个类的子集进行排名。例如,假设集合中所有不同的类名
Y
是{' a ', ' b ', ' c '}
.使用类的观察对预测器进行排序“一个”
而且“c”
只是,指定“类名”,{' a ', ' c '}
.
的默认值“类名”
所有不同类名的集合在吗Y
或者响应变量资源描述
.默认的“类名”
如果响应变量是有序的,则值具有数学顺序。否则,默认值按字母顺序排列。
例子:“类名”,{' b ', ' g '}
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
NumBins
- - - - - -用于装箱连续预测器的箱数
10(默认)|正整数标量
用于对连续预测符进行装箱的箱数,指定为逗号分隔的对,由“NumBins”
一个正整数标量。
例子:“NumBins”,50岁
数据类型:单
|双
之前
- - - - - -先验概率
“经验”
(默认)|“统一”
|标量向量|结构
UseMissing
- - - - - -指示是否使用或丢弃预测器中缺失的值
假
(默认)|真正的
指示是否使用或丢弃预测器中缺失的值,指定为逗号分隔的对,由“UseMissing”
,要么真正的
使用或假
丢弃预测器中缺失的值以进行排名。
fscchi2
认为南
,”
(空字符向量),""
(空字符串),< >失踪
,<定义>
值为缺失值。
如果你指定“UseMissing”,真的
,然后fscchi2
使用缺失值进行排序。对于一个分类变量,fscchi2
将缺失值作为一个额外类别处理。对于一个连续变量,fscchi2
的地方南
值放在单独的bin中进行装箱。
如果你指定“UseMissing”,假的
,然后fscchi2
不使用缺失值进行排序。因为fscchi2
为每个预测器单独计算重要性分数,当该行中的值部分缺失时,函数不会丢弃整行。对于每个变量,fscchi2
使用所有没有丢失的值。
例子:“UseMissing”,真的
数据类型:逻辑
输出参数
算法
版本历史
R2020a中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。