文档帮助中心文档
使用卡方检验进行分类的单变量特征排序
idx = fscchi2(Tbl,ResponseVarName)
idx = fscchi2(Tbl,公式)
idx = fscchi2(Tbl,Y)
idx = fscchi2(X,Y)
Idx = fscchi2(___、名称、值)
[idx,scores] = fscchi2(___)
例子
idx= fscchi2 (资源描述,ResponseVarName)对使用的特性(预测器)进行排序卡方测试.表资源描述包含预测变量和响应变量,和ResponseVarName响应变量的名称是否在资源描述.函数返回idx,其中包含预测因子的指数,按预测因子的重要性、意义排序idx (1)是指数最重要的预测指标。你可以用idx为分类问题选择重要的预测因子。
idx= fscchi2 (资源描述,ResponseVarName)
idx
资源描述
ResponseVarName
idx (1)
idx= fscchi2 (资源描述,公式)中的变量中指定要考虑的响应变量和预测器变量资源描述通过使用公式.
idx= fscchi2 (资源描述,公式)
公式
idx= fscchi2 (资源描述,Y)对预测器进行排序资源描述使用响应变量Y.
idx= fscchi2 (资源描述,Y)
Y
idx= fscchi2 (X,Y)对预测器进行排序X使用响应变量Y.
idx= fscchi2 (X,Y)
X
idx= fscchi2 (___,名称,值)除前面语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定其他选项。例如,您可以指定先验概率和观测权重。
idx= fscchi2 (___,名称,值)
名称,值
[idx,分数= fscchi2(___)还返回预测器分数分数.较大的评分值表明相应的预测因子是重要的。
[idx,分数= fscchi2(___)
分数
全部折叠
在数字矩阵中对预测器进行排序,并创建预测器重要性分数的条形图。
加载样例数据。
负载电离层
电离层包含预测变量(X)和响应变量(Y).
电离层
使用卡方检验对预测因子进行排序。
[idx,scores] = fscchi2(X,Y);
中的值分数是负对数吗p值。如果一个p-value小于每股收益(0),则对应的分值为正.在创建条形图之前,确定是否分数包括正值。
每股收益(0)
正
找到(isinf(分数)
Ans = 1x0空双行向量
分数不包括正值。如果分数包括正价值观,你可以替换正在创建条形图之前用一个很大的数字来表示。详情请参见对表中的预测器进行排序.
创建预测者重要性分数的条形图。
栏(分数(idx))包含(“预测排名”) ylabel (“预测重要性评分”)
选择前五个最重要的预测因素。找到这些预测器的列X.
idx (1:5)
ans =1×55 7 3 8 6
第五列X是最重要的预测因素吗Y.
在表格中对预测器进行排序,并创建预测器重要性评分的条形图。
如果您的数据在一个表和fscchi2对表中变量的子集进行排序,然后函数只使用该子集对变量进行索引。因此,一个好的实践是将您不想排序的预测器移动到表的末尾。同时移动响应变量和观测权重向量。然后,输出参数的索引与表的索引一致。
fscchi2
加载census1994数据集。
负载census1994
表adultdata在census1994它包含了来自美国人口普查局的人口数据,用来预测一个人的年收入是否超过5万美元。显示表的前三行。
adultdata
census1994
头(adultdata, 3)
ans =3×15表年龄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函数。
fnlwgt
工资
movevars
成人数据= movevars(成人数据,“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已婚公民配偶行政管理丈夫白人男性0 0 13美国83311 <=50K 38私立hs毕业生9离异杂工清洁工非家庭成员白人男性0 0 40美国2.1565 +05 <=50K
对预测因子进行排序adultdata.指定列工资作为响应变量,并指定列fnlwgt作为观察权重。
[idx,scores] = fscchi2(adultdata,“工资”,“重量”,“fnlwgt”);
idxInf = find(isinf(scores))
idxInf =1×81 3 4 5 6 7 10 12
分数包括八个正值。
创建预测者重要性分数的条形图。的预测器名称x-轴刻度标签。
图形栏(scores(idx)) xlabel(“预测排名”) ylabel (“预测重要性评分”) xticklabels (strrep (adultdata.Properties.VariableNames (idx),“_”,“\ _”) xtickangle (45)
的酒吧函数没有绘制任何条正值。为正与最大有限分数长度相同的值、图条。
酒吧
持有在酒吧(分数(idx(长度(idxInf) + 1) *(长度(idxInf), 1))传说(“有限的分数”,“正分数”)举行从
柱状图使用不同的颜色显示有限分数和Inf分数。
示例数据,指定为表。不允许多列变量和字符向量的单元格数组以外的单元格数组。
每一行资源描述对应一个观察结果,每一列对应一个预测变量。可选地,资源描述可以包含用于响应变量和观察权重的附加列。
响应变量可以是类别、字符或字符串数组、逻辑或数字向量,或者字符向量的单元格数组。如果响应变量是字符数组,则响应变量的每个元素必须对应数组的一行。
如果资源描述包含响应变量,并且希望在中使用所有剩余变量资源描述作为预测器,然后通过使用指定响应变量ResponseVarName.如果资源描述还包含观察权重,那么您可以使用权重.
权重
如果资源描述包含响应变量,并且您希望仅使用其余变量的子集资源描述作为预测器,然后通过使用指定变量的子集公式.
如果资源描述不包含响应变量,则使用Y.响应变量和资源描述必须有相同的行数。
如果fscchi2中使用变量的子集资源描述作为预测器,函数只使用子集索引预测器。中的值“CategoricalPredictors”名称-值对参数和输出参数idx不要计算函数不排序的预测器。
“CategoricalPredictors”
fscchi2认为南,”(空字符向量),""(空字符串),< >失踪,<定义>值资源描述响应变量缺少值。fscchi2不为响应变量使用缺少值的观察值。
南
”
""
< >失踪
<定义>
数据类型:表格
表格
响应变量名,指定为字符向量或字符串标量,其中包含变量的名称资源描述.
例如,如果响应变量是列Y的资源描述(资源描述。Y),然后指定ResponseVarName作为“Y”.
资源描述。Y
“Y”
数据类型:字符|字符串
字符
字符串
响应变量和预测变量子集的解释模型,在形式中指定为字符向量或字符串标量'Y ~ x1 + x2 + x3'.在这种形式中,Y表示响应变量,和x1,x2,x3表示预测变量。
'Y ~ x1 + x2 + x3'
x1
x2
x3
中指定变量的子集资源描述作为预测指标,使用公式。如果你指定一个公式,那么fscchi2没有对任何变量进行排序资源描述没有出现在公式.
公式中的变量名必须是资源描述(Tbl.Properties.VariableNames)和有效的MATLAB®标识符。中的变量名可以进行验证资源描述通过使用isvarname函数。如果变量名无效,则可以使用matlab.lang.makeValidName函数。
Tbl.Properties.VariableNames
isvarname
matlab.lang.makeValidName
响应变量,指定为数值、类别或逻辑向量、字符或字符串数组或字符向量的单元格数组。每一行Y的对应行的标签X.
fscchi2认为南,”(空字符向量),""(空字符串),< >失踪,<定义>值Y丢失的值fscchi2不使用缺失值的观察Y.
数据类型:单|双|分类|逻辑|字符|字符串|细胞
单
双
分类
逻辑
细胞
预测数据,指定为数值矩阵。每一行X对应一个观察结果,每一列对应一个预测变量。
数据类型:单|双
指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“UseMissing”“NumBins”,20日,真的
CategoricalPredictors
“所有”
类别预测器的列表,指定为此表中的值之一。
向量中的每个条目都是一个索引值,指示对应的预测器是分类的。索引值在1和之间p,在那里p用于训练模型的预测器的数量。
p
如果fscchi2使用输入变量的子集作为预测器,然后函数只使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数没有使用的任何其他变量。
一个真正的入口意味着对应的预测因子是绝对的。向量的长度是p.
真正的
默认情况下,如果预测器数据在表中(资源描述),fscchi2如果变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据是一个矩阵(X),fscchi2假设所有的预测器都是连续的。要将任何其他预测器标识为类别预测器,请使用“CategoricalPredictors”名称-值参数。
例子:“CategoricalPredictors”、“所有”
“CategoricalPredictors”、“所有”
数据类型:单|双|逻辑|字符|字符串|细胞
一会
用于排序的类的名称,指定为逗号分隔的对,由“类名”和类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会必须具有与?相同的数据类型Y或者说响应变量资源描述.
“类名”
如果一会是字符数组,则每个元素必须对应于数组的一行。
使用“类名”:
的顺序之前与类顺序对应的维度。
之前
选择一个类的子集进行排名。例如,假设所有不同的类名的集合Y是{' a ', ' b ', ' c '}.利用类的观察结果对预测因子进行排序“一个”而且“c”只是,指定“类名”,{' a ', ' c '}.
{' a ', ' b ', ' c '}
“一个”
“c”
“类名”,{' a ', ' c '}
的默认值。“类名”所有不同的类名的集合是否在Y或者说响应变量资源描述.默认的“类名”如果响应变量是有序的,则值具有数学顺序。否则,默认值按字母顺序排列。
例子:“类名”,{' b ', ' g '}
“类名”,{' b ', ' g '}
数据类型:分类|字符|字符串|逻辑|单|双|细胞
NumBins
用于对连续预测器进行分组的箱的数目,指定为逗号分隔的对,由“NumBins”和一个正整数标量。
“NumBins”
例子:“NumBins”,50岁
“NumBins”,50岁
“经验”
“统一”
每个类的先验概率,指定为以下之一:
字符向量或字符串标量。
“经验”中的响应变量中的类频率确定类概率Y或资源描述.如果你通过观察权重,fscchi2用权重来计算类概率。
“统一”将所有类的概率设置为相等。
Vector(每个类的一个标量值)。的对应元素的类顺序“之前”,设置“类名”名称-值参数。
“之前”
结构年代有两个字段。
年代
S.ClassNames中的响应变量类型相同的变量包含类名Y或资源描述.
S.ClassNames
S.ClassProbs包含相应概率的向量。
S.ClassProbs
fscchi2规范化每个类中的权重(“重量”)加起来,就等于各自类别的先验概率的值。
“重量”
例子:“前”、“制服”
“前”、“制服”
数据类型:字符|字符串|单|双|结构体
结构体
UseMissing
假
指示是否使用或丢弃预测器中缺失的值,指定为逗号分隔的对,由“UseMissing”,要么真正的使用或假丢弃预测器中缺失的值以进行排序。
“UseMissing”
fscchi2认为南,”(空字符向量),""(空字符串),< >失踪,<定义>值将丢失值。
如果你指定“UseMissing”,真的,然后fscchi2使用缺少的值进行排序。对于一个类别变量,fscchi2将缺失的值作为额外的类别处理。对于连续变量,fscchi2的地方南值在单独的bin中进行bin。
“UseMissing”,真的
如果你指定“UseMissing”,假的,然后fscchi2不使用缺失值进行排序。因为fscchi2为每个预测器单独计算重要性得分,当该行部分值缺失时,函数不会丢弃整行。对于每个变量,fscchi2使用所有没有缺失的值。
“UseMissing”,假的
例子:“UseMissing”,真的
数据类型:逻辑
(大小(X, 1), 1)
观察权值,用逗号分隔的对表示“重量”和标量值的向量或者变量的名称资源描述.函数对每一行的观测值进行加权X或资源描述的对应值权重.的大小权重必须等于中的行数X或资源描述.
如果将输入数据指定为表资源描述,然后权重变量的名称可以在资源描述它包含一个数字向量。在这种情况下,您必须指定权重作为字符向量或字符串标量。例如,如果权重向量是列W的资源描述(资源描述。W),然后指定“权重”W”.
W
资源描述。W
“权重”W”
fscchi2将每个类的权重归一化,使其加起来等于各自类的先验概率值。
数据类型:单|双|字符|字符串
中的预测指标X或资源描述根据预测器重要性排序,以1乘-的形式返回r数字向量,其中r是排序预测因子的数量。
如果fscchi2中使用变量的子集资源描述作为预测器,函数只使用子集索引预测器。例如,假设资源描述包含10列,并指定的最后5列资源描述作为预测变量公式.如果idx (3)是5,那么第三个最重要的预测因子是第10列资源描述,这是子集中的第五个预测因子。
idx (3)
5
预测分数,返回为1 × -r数字向量,其中r是排序预测因子的数量。
较大的评分值表明相应的预测因子是重要的。
如果你使用X指定预测器或使用所有的变量资源描述作为预测器,那么值分数和预测的顺序一样吗X或资源描述.
中指定变量的子集资源描述作为预测器,那么值分数与子集的顺序相同。
例如,假设资源描述包含10列,并指定的最后5列资源描述作为预测变量公式.然后,分数(3)中第8列的分数值资源描述,这是子集中的第三个预测因子。
分数(3)
fscchi2通过使用单个卡方检验检验每个预测变量是否独立于响应变量。一个小p-value表示对应的预测变量依赖于响应变量,因此是一个重要的特征。
输出分数是日志(p).因此,评分值越大,说明对应的预测因子很重要。如果一个p-value小于每股收益(0),则输出为正.
fscchi2在对变量进行分组或离散化后检查连续变量。方法可以指定容器的数量“NumBins”名称-值对参数。
fscmrmr|relieff|sequentialfs|fscnca
fscmrmr
relieff
sequentialfs
fscnca
이예제의수정된버전이있습니다。사용자가편집한내용을반하여이예제를여시겠습니까?
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您的地理位置,我们建议您选择:.
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。
联系当地办事处