主要内容

FSCCHI2.

使用Chi-Square测试进行分类的单变量特征排名

描述

例子

idx.= fscchi2 (TBL.,responsevarname.)使用秩(预测器)使用Chi-Square测试.桌子TBL.包含预测变量和响应变量,以及responsevarname.是响应变量的名称TBL..函数返回idx.,其中包含通过预测的重要性排序的预测器指数,意思idx(1)是最重要的预测指标。您可以使用idx.选择分类问题的重要预测因子。

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

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

例子

idx.= fscchi2 (X,Y)排名预测因素X使用响应变量Y

例子

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

例子

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

例子

全部折叠

在数值矩阵中对预测值进行排序,并创建预测值重要性得分的条形图。

加载示例数据。

负载电离层

电离层包含预测变量(X)和一个响应变量(Y).

使用Chi-Square测试等待预测器。

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

价值分数是负对数吗P- 值。如果一个P-value小于EPS(0),那么相应的分数值是INF..在创建条形图之前,请确定是否分数包括INF.值。

查找(isinf(分数))
ans = 1x0空双排向量

分数不包括INF.价值观如果分数包括INF.值,可以替换INF.在为可视化目的创建条形图之前,通过一个大数字号码。有关详细信息,请参阅桌子中的排名预测器

创建预测值重要性得分的条形图。

栏(分数(idx))包含(“预测等级”) ylabel (“预测重要性分数”)

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

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

IDX(1:5)
ans =1×55 7 3 8 6

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

对表中的预测因子进行排序,并创建预测因子重要性分数的条形图。

如果您的数据在表中,并且FSCCHI2.在表中排列变量的子集,然后函数仅使用子集索引变量。因此,良好的做法是移动你不想排名在表格的末尾的预测器。移动响应变量和观察权重向量。然后,输出参数的索引与表的索引一致。

加载census1994数据集。

负载census1994

桌子adultdatacensus1994包含来自美国人口普查局的人口统计数据,用来预测一个人每年的收入是否超过5万美元。显示表的前三行。

头(adultdata, 3)
ans =.3×15表教育类工作类词汇词汇词汇教育教育类工作类词汇词汇教育类词汇教育类词汇词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇教育类词汇婚姻婚姻状况的婚姻状况职业职业关系职业关系职业关系关系关系关系种族性别资本资本获取获取获取资本的时间损失时间。周本周土土土土土土语国家工资(国工资)的薪酬(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU39州政府77516名单身汉13名未婚行政文员不在家白人男性2174 0 40美国<=50K 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功能。

AdultData = MoveVars(AdultData,“fnlwgt”,'前','薪水');头(adultdata, 3)
ans =.3×15表种族性别年龄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.指定列薪水作为响应变量,并指定列fnlwgt作为观察权重。

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

价值分数是负对数吗P- 值。如果一个P-value小于EPS(0),那么相应的分数值是INF..在创建条形图之前,请确定是否分数包括INF.值。

idxinf = find(isinf(scores))
idxInf =1×8.1 3 4 5 6 7 10 12

分数包括八个INF.值。

创建预测值重要性得分的条形图。将预测器名称用于x-axis刻度标签。

图栏(分数(IDX))XLabel(“预测等级”) ylabel (“预测重要性分数”)XTicklabels(Strrep(Adjordata.properties.variablenames(Idx),'_','\ _') xtickangle (45)

这个酒吧函数不绘制INF.值。为INF.值,与最大有限分数长度相同的标绘条。

持有酒吧(分数(idx(长度(idxInf) + 1) *(长度(idxInf), 1))传说(“有限分数”,'INF分数')举行

图包含轴。轴包含2个类型的栏杆。这些对象代表有限分数,INF分数。

条形图使用不同的颜色显示有限分数和Inf分数。

输入参数

全部折叠

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

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

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

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

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

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

如果FSCCHI2.使用变量子集TBL.作为预测器,该函数仅使用子集对预测器进行索引。中的值“分类预测因素”名称值对参数和输出参数idx.不要计算函数不等级的预测器。

FSCCHI2.考虑,''(空字符向量),""(空字符串),<缺失>,<定义>价值TBL.对于缺少值的响应变量。FSCCHI2.不使用响应变量缺失值的观察。

数据类型:表格

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

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

数据类型:char|细绳

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

在中指定变量子集的步骤TBL.作为预测因素,使用公式。如果指定公式,则FSCCHI2.没有排列任何变量TBL.没有出现在公式

公式中的变量名必须是公式中的两个变量名TBL.(Tbl.Properties.VariableNames)和有效的matlab®标识符。您可以在中验证变量名TBL.通过使用isvarname功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makeValidName功能。

数据类型:char|细绳

响应变量,指定为数字、分类或逻辑向量、字符或字符串数组或字符向量的单元格数组。每一行的Y表示相应行的标签X

FSCCHI2.考虑,''(空字符向量),""(空字符串),<缺失>,<定义>价值Y缺少值。FSCCHI2.不使用缺少值的观测值Y

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

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

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

名称-值对的观点

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

例子:“UseMissing”“NumBins”,20日,真的将箱数设置为20,并指定在预测器中使用缺失值进行排名。

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

价值 描述
正整数矢量

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

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

逻辑向量

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

字符矩阵 矩阵的每一行是预测器变量的名称。名称必须与名称匹配TBL..用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组 数组中的每个元素都是预测变量的名称。名称必须与中的名称匹配TBL.
“所有” 所有的预测都是绝对的。

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

例子:“CategoricalPredictors”、“所有”

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

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

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

使用'classnames':

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

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

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

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

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

用于存放连续预测器的箱数,指定为逗号分隔对,由'numbins'一个正整数标量。

例子:'numbins',50

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

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

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

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

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

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

  • 结构s有两个领域。

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

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

FSCCHI2.将每个类别的权重归一化(“重量”)将各类别的先验概率值相加。

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

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

用于指示是否使用或放弃预测器中缺少的值,指定为逗号分隔对,由“我们失踪了”和任何一种真正的使用或放弃预测值中缺失的值以进行排名。

FSCCHI2.考虑,''(空字符向量),""(空字符串),<缺失>,<定义>值将是缺少的值。

如果您指定'veremissing',真实那么FSCCHI2.使用缺失的排名值。对于一个分类变量,FSCCHI2.将缺少的值视为额外类别。对于连续变量,FSCCHI2.的地方单独的垃圾箱中的值用于分布。

如果您指定'veremissing',false那么FSCCHI2.不使用缺失值进行排名。因为FSCCHI2.单独计算每个预测值的重要性分数,当行中的值部分缺失时,该函数不会丢弃整行。对于每个变量,FSCCHI2.使用不缺少的所有值。

例子:'veremissing',真实

数据类型:符合逻辑的

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

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

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

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

输出参数

全部折叠

预测因素的指标X或者TBL.通过预测的重要性命令,返回为1-by-R数字向量,其中R是排名的预测因子的数量。

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

预测器得分,以1-by-返回R数字向量,其中R是排名的预测因子的数量。

一个较大的得分值表明相应的预测器是重要的。

  • 如果你使用X指定预测器或使用所有变量TBL.作为预测器,然后是值分数和预测数的顺序一样X或者TBL.

  • 如果指定了变量的子集TBL.作为预测器,然后是值分数和子集的顺序一样。

例如,假设TBL.包括10列,您可以指定TBL.作为预测因子变量使用公式.然后,得分(3)包含第8列的分数值TBL.,这是子集中的第三预测器。

算法

全部折叠

使用Chi-Square测试排名单变量特征

  • FSCCHI2.检查每个预测变量是否与使用单独的Chi-Square测试无关。一个小的P-值表示对应的预测变量依赖于响应变量,因此是一个重要特征。

  • 输出分数-日志(P).因此,大得分值表示相应的预测器是重要的。如果一个P-value小于EPS(0),则输出为INF.

  • FSCCHI2.在排放后或离散化的变量后检查连续变量。您可以使用使用的垃圾箱数'numbins'名称-值对参数。

介绍了R2020a