图片缩略图”itemprop=

特征选择图书馆

版本7.0.2020.3 (723 KB) 乔治•
特征选择库(MATLAB工具箱)

202下载

更新2020年5月03

视图版本历史

查看许可协议

特征选择图书馆(2018年FSLib)是一种广泛适用的MATLAB库特征选择(属性或变量选择),可以减少问题的高维度数据的准确性最大化模型,自动决策规则的性能以及降低数据采集成本。
* FSLib MATLAB于2017年被授予由接收MATLAB中央硬币。
我们非常感激如果你能给我们一些反馈这个工具箱。我们重视您的意见,欢迎你的评级。
如果你使用我们的工具箱(或方法包含在它),请考虑引用:
[1]Roffo G。梅尔齐,S。,Castellani, U. and Vinciarelli, A., 2017. Infinite Latent Feature Selection: A Probabilistic Latent Graph-Based Ranking Approach. arXiv preprint arXiv:1707.07538.
[2]Roffo G。梅尔齐,S。and Cristani, M., 2015. Infinite feature selection. In Proceedings of the IEEE International Conference on Computer Vision (pp. 4202-4210).
[3]Roffo, g和梅尔齐,S。,2017年7月。排名:学习功能通过特征向量中心排名和选择。在新领域挖掘复杂的模式:第五国际研讨会,2016年NFMCP结合ECML-PKDD 2016年举行,莉娃▽加尔达湖,意大利,2016年9月19日修改论文选集(卷,10312年,p。19)。不可靠的人。

[4]Roffo G。,2017年。学习和学习排名排名:在模式识别应用程序排名的作用。arXiv预印本arXiv: 1706.05933。

引用作为

乔治(2021)。特征选择图书馆(//www.tatmou.com/matlabcentral/fileexchange/56937-feature-selection-library), MATLAB中央文件交换。检索

评论和评级(162年)

穆罕默德Khabbaz

你好,谢谢你的包。我只是想知道一个人怎么能改变对svm rfe内核。你有任何关于这个文档吗?

斯楠伊斯兰教

李永好

金宝app支持作者

你好乔治,我现在能够使用演示代码。我试着运行各种过滤器和每个过滤器我得到一个不同的排名。在这种情况下,我该如何决定哪些特性是最对的。请帮助。我应该尝试与其他代码吗?

尼古拉·杜

Zeynab Mousavikhamene

一点:我在想如果你能展示你在代码中发现了w(变换矩阵),并应用它对费雪方程3.83提供的参考书。我看到的相关计算训练。费舍尔的方法但不是改变了。费舍尔方法,排名的功能完成后转换到一个新的空间。

Zeynab Mousavikhamene

更新:我试图探索重量为每个特性(不仅输出排名),我尝试添加一个。输出和我收到这个错误:
a.weights
索引超出了数组元素的数量(0)。

误差在费舍尔/ subsref(第72行)
坏蛋=堆栈{1};

Zeynab Mousavikhamene

Zeynab Mousavikhamene

Zeynab Mousavikhamene

乔治把每个特性的选择器是排名。我需要每个特性的分数。显然这个软件不报告分数为每个特性。

乔治•

嗨@Zeynab,谢谢你的问题。Q1: listFS单元阵列的字符串,methodID应该是一个整数值。你确定你正确索引数组?例如,listFS{1}或listFS{2}等?
Q2:特征选择应该应用于训练数据,这是因为你不应该有测试数据(和它的标签在监督的情况下设置),如果你在整个数据集应用FS是不公平的,你的特征选择策略运作(~显然更好~),因为它见证了所有的数据,但是,你是过度拟合的数据在泛化(有高概率)和失去你真正的测试数据。谷歌搜索动机对培训/测试分裂毫升为进一步的细节。
问题3:随机特性被添加到显示FS可以有效地检测那些无关紧要的功能由建设(随机- >)和丢弃它们。这是一个演示文件,所以玩具数据演示的一部分,你可以看到不同的方法检测和选择相关特性。演示提供了一个简单的对比FS工具箱中的方法的集合。谢谢你的问题,我希望我的答案可以帮助!

Zeynab Mousavikhamene

你好,乔治
为什么你在火车运行特征选择中设置演示吗?我认为做特征选择对整个数据点会回来更全面的数据的趋势。也请你解释为什么你再次添加随机特性值来训练集的演示(X_train = [X_train,兰德(120 4)];)?
谢谢

乔治•

嗨@pallavi X_train数据和y你用饲料分类器?它看起来像你有一个问题在你的数据X和Y仔细检查如果你正确地传递给函数。

Zeynab Mousavikhamene

你好,乔治
我收到这个错误当试图运行费舍尔的演示:
不能使用一个值类型的费舍尔作为索引。

错误的演示(第70行)
selection_method = listFS {methodID};%选择

嗨,乔治,
我的新机器学习。我试图运行演示。m代码和我遇到以下错误
使用classreg.learning错误。FitTemplate / fillIfNeeded(第666行)
showplot不是一个有效的参数名称. .

你能解释我如何改正它。我已经改变了功能fitcsvm ClassificationSVM在我的代码

鲱鱼穆罕默德

嗨,乔治非常感谢你的努力
我想知道如果你能帮助我吗?
我想要一个工具盒粗糙集理论进行特征选择

乔治•

感谢大家这些年来使用这个工具箱。
我很高兴已经对很多人有用。
我希望你知道我是共享代码和库作为志愿者为MATLAB和(我不工作我没有利润从这个)。
我可以投入到这个库更新是有限的。
这个图书馆不是一个商业产品,因此它可能包含不一致,错误,或者我遗忘在更新一些旧文件。
尽管如此,我尽力纠正错误你发现通过改善这个开源的库。
再次感谢你。

乔治•

嗨brai,
这个文件仍然在图书馆从最初的实现。
我固定的一些问题和更新新版本的代码。谢谢你发现的bug。
请注意查询词+ EM算法的实现是基于代码:
https://github.com/lizhangzhan/plsa
https://github.com/lizhangzhan/plsa/blob/master/plsa.m
我可以继续讨论我们的邮件对话!

brai Cancela

我尝试使用董继玲女士算法,但似乎这不是好的。我不确定的实现,所以我想指出的问题:
1)113行:它说性病。^ 2,但是我认为这是性病,然后使用方差在第150行。如果不是,150行划分由std ^ 4。
2)159行:该算法需要低概率的值类的垃圾箱,但是根据论文应该是高的。
3)243行:prob_token_factor不更新,但是prob_tokens_factor,未使用的。导致prob_token_factor EM循环从来没有被更新。

Shinuk金

亲爱的乔治,
我一直使用蜘蛛超过10年。现在我安装工具箱,数据,但是它总是错误命令的显示。数据,显示数据(算法,X, Y)或数据(X, Y)的工作原理。但是我输入数据(X, Y),它表示显示错误:没有足够的输入参数。“算法”的数据格式是什么,什么是“超级”费舍尔的格式吗?
你能帮我吗?

Zehua戴

谢谢你的工作。
我在使用这个工具箱encoutered一些问题。
当我运行演示。m文件,errors happened. And I found the functions svmtrain and svmclassify are not used in MATLAB 2018b, the software suggested me replacing them by fitcsvm and ClassificationSVM. However, after I modified them,the program still cannot run. I do not know why, can you help me?

adhusch

更新下面的演示与布拉德提供的补丁(2018年12月26日)是nessaary最近Matlab上运行。如果源可以更新就好了。

默罕默德Safdar

乔治•

嗨,马克,谢谢你下载工具箱,drtoolbox你似乎有问题,而不是fslib。下载降维工具箱,因为你发现这里只是一个图书馆,只有一些功能。

Marc Youcef

嗨,我相信后面的工作是伟大的但我真的面临很多麻烦test_toolbox。正常运行。我得到多个错误:
- - - - - - - - - - - -
在位置2的指数超过数组界限(不得超过3)。”
警告:本征维数估计使用CorrDim失败!
- - - - - - - - - - - - -
看着某一个点:
MATLAB \附件\工具箱\ \特征选择图书馆\ FSLib_v6.2.1_2018 \ lib \ \ csdp.exe drtoolbox \技术
我怎么能得到这一个吗?

最重要的是,我试图运行drgui。m和当使用散射策划我num2str错误如scattern的第112行。m是试图让num2str (hs, % 20.20 f)和海关处理。
感谢所有已经很多。

高科技的人

萨玛Ragab

@Giorgio非常感谢
我有一个问题,我不明白:
在运行演示文件(使用FSV方法或fisher)在我的数据,它给了我85%的准确性。然后我试着运行Demo_InfFs文件但是我准确性57% ! !我的错在哪里?
谢谢你的问候;

王濛

你好,谢谢你的了不起的工作。我有一个问题关于这个。
如果包装方法像rfe也只返回排名个人体重,混淆了我如何实现。从我的观点,我们必须尝试不同的特征子集而不是单个的功能包装方法。所以对我来说似乎你评估特征子集内部包装代码,说Xsubset,和一些其他的方法来提取个人特性的重要性,Xindiv说,在所有的特性集。最后我们得到的排名。如果是这样的话,为什么不直接返回结果的特征子集,即Xsubset。因为当我们使用包装器方法,我们想要得到最好的子集。即使代码返回个人排名,我不确定,如果前面几个特性包括一个子集是最好的子集。

力平黄

@Giorgio谢谢你的帮助!

乔治•

如果你的非数字数据
标签={“蓝”、“绿色”、“红色”};
有些功能不工作。你需要的数字数据:
标签= (1、2、3)

乔治•

力平似乎你的数据不是数字(整数、浮点数、双)

力平黄

我在跟踪误差,有人能帮助
未定义的函数“isnan”“名义”类型的输入参数。

乔治•

@samar ragab谢谢你的帮助!

萨玛Ragab

@wenyan曹
注意:你必须有“visual studio”和“x86_64-w64-mingw32”
只是下载库,这个库还“大型线性分类库”,你可以在这里下载:https://www.csie.ntu.edu.tw/ cjlin / liblinear /
然后运行。m文件。如果效果好,这是好的. .另一方面你应该按照readme文件可以运行它。
最好的祝愿

闻堰曹

你好,我是一个新手。这是一个原始的问题。我怎么使用这个工具箱?我希望你能给我指导。我将很感激。

萨玛Ragab

你好,如何实现这个库(演示& Demo_InfFS)多类问题吗?
谢谢提前;

Ananya Dutta

如何找到这两个特性等级1和等级2,选择哪些特性。

Ananya Dutta

让墨西哥人文件错误。不知道该做什么

马西莫Ribilini

这就跟你问声好!感谢你这个库。我们使用它在我的公司。

王约翰

克努特安德烈Skaug

你好,这可能是一个愚蠢的问题,但有可能提供预先确定权重的每个特征都进入一个特征选择算法(例如特征向量中心算法)?

菲利克斯•伊曼纽尔

你好,乔治,你真的做得很好。我一直在寻找一个机会这样的代码使用。我已经提取的特征和应用SVM的分数很低,我相信这可以帮助提高提取的性能特性。我有问题的代码。我试图使用使代码构建第一个和我有这个错误。本增加了所有必要的功能。

错误使用cd
不能CD F: \ bin \ lib(名称不存在或不是一个目录)。

错误make123forfeatureselection(第5行)
cd(“自由”);

使用MATLAB 2018 b。希望从你读。谢谢你先生!

七张

乔治•

你好!
@Muhammed:可能sigma_ij和corr_ij倒置,这不会引起很多问题,如果你设置α= 05这两个公式是相同的。
0.2 alpha,对应在这种情况下,α= 0.8。如果你使用交叉验证训练集上找到最好的α,会没有问题。我将尝试修复它,使它与纸。
@Samar: Demo_InfFS只包含交叉验证的结构,你可以学习最好的α参数。你不能运行它,因为它是但它。尝试演示。m轻易运行代码。

穆罕默德Yucel

你好,我不理解一个矩阵的计算,它是不同的方法。
论文指出,
一个=(α* sigma_ij +(1α)* corr_ij);
但这样代码实现
一个=(α* corr_ij +(1α)* sigma_ij);

萨玛Ragab

嗨,我有一个错误在运行Dimo_InfFs.m
植物体内非结构性数组字段分配一个对象。

错误在火车(第32行)
algo.training_time = cputime;

错误Demo_InfFS(41)行
简历=火车(Y_train X_train_ cmd);
任何帮助请吗?

肯Irok

嗨,我有一个问题关于这个。我目前有一组数据列(12),我计划分类所提到的数据(通过使用资讯、支持向量机等)。现在,我计划在消除一些列的数据来提高它的准确性。和这个特性选择图书馆似乎是完美的。然而,刚刚开始MATLAB,我目前不知道编译工具。我得到一些错误在编译个人库(特征选择方法。m文件)。任何帮助,这是高度赞赏。谢谢。

乔治•

这就跟你问声好!你的意思是多类分类?
在情况下,是的。
所有FS“无监督”是自然的方法适用于多类问题,因为他们不考虑任何类标签。
至于“监督”,FS方法,其中一些工作reliefF等多类问题,SVM-RFE,……

双凌彭

你好,这是工具箱适合多个类别的分类吗?如果是,如何实现它?谢谢你!

埃琳娜Bassanelli

固定的。谢谢!

乔治•

你好,
火车属于LIBLINEAR函数——一个图书馆对于大型线性分类,你可以在这里下载:https://www.csie.ntu.edu.tw/ cjlin / liblinear /

埃琳娜Bassanelli

嗨,乔治,谢谢你分享你的工具箱!
我使用DemoInfFD一些麻烦。脚本,因为当我运行它,我得到以下错误:
“未定义的函数“火车”,“双”类型的输入参数。
错误Demo_InfFS(41)行
简历=火车(Y_train X_train_ cmd);“
我使用Windows上的Matlab2016a 10。
有什么建议吗?
谢谢
埃琳娜

陈化

乔治•

@Brad感谢你,我会尽快修复它。

布莱德

仅供参考——svmtrain () & svmclassify ()
在2018 b这些函数被移除,所以周围的演示脚本失败第200行。我相信下面的更新将解决这个问题…

%使用线性支持向量机分类器金宝app
svmStruct = fitcsvm (X_train (:, (1: k)), Y_train);
sv = svmStruct.金宝appSupportVectors;
gscatter (X_train (:, (1)), X_train (:, (2)), Y_train);抓住
情节(sv (: 1), sv (:, 2),‘ko’,‘MarkerSize’, 10);推迟
C =预测(svmStruct X_test (:, (1: k)));
err_rate = (Y_test ~ = C) / P.TestSize总和;%错误分类率
conMat = confusionmat (Y_test C);%的混淆矩阵

这个项目是否则,胜利努力。做得很好。

最好的一个完美的工具箱,我发现在文件交换!出色的工作!荣誉!

V RAJINIKANTH

优秀的工作。

frankjk

好? ?

郑彭

哈,我发现我的错。标签必须是1,而不是1和0

神凯文

莉莉郭

感谢你的分享,这对我很重要,谢谢

乔治•

F.Y.I.
新特刊”特征选择满足深度学习”
这个特殊问题的主要焦点将特征选择和深度学习,这是多深的问题学习模型可以充满了特征选择和排序策略。
有关更多信息,请参阅提交页面(https://www.mdpi.com/journal/informatics/special_issues/FSMDL)

勒•Robelli

奇妙的,非常感谢!

生动的郑

你好,乔治!谢谢你的分享。我有一个问题:[19]套索的源代码吗?我不能在工具箱中找到它。

佩德罗博尔赫斯

佩德罗博尔赫斯

你好,乔治!它可以是一个愚蠢的问题……但是,你是什么意思“分数”在“慢性疲劳综合症”功能?我怎么能访问这些值?代码不返回他们的工作区。

Hamzeh Ghasemzadeh

谢谢你的分享!
的一些方法使用“类”变量选择的类。在你的工具箱里其他方法呢?你知道他们是否适用于多范式?
另外,如果你可以提供引用实现方法,这将是美好的!

水晶杨

谢谢! !

乔治•

固定的。谢谢。

乔治•

我“l检查. .对不起

尼古拉斯Blauch

嗨。我相信新版本包含错误的infFS函数。演示失败因为infFS给出太多的参数。infFS。m表示从4.0版。

乔治•

新版本可用,请编译解决方案。运行make。

百万桶Idrisi科技

失踪libsvm_classifier_spider

乔治•

这就跟你问声好!请查看演示新版本6.1 - >添加新文件:如何选择最好的参数Inf-FS董继玲女士。

乔治•

你有多少令牌使用吗?注意,T > = 4

Hello-Caihua

我得到了错误:错误使用histc;边缘矢量必须单调引入

Jinya苏

Hello-Caihua

你好,谢谢你的伟大的工作。我有一个问题。当我运行这个工具箱对matlab 2015 b 8.1和8 gb内存64位的窗口,我得到了“内存不足”的错误。我跟着一些建议如重置Jave堆大小,但它不工作。我该怎么办?

ZhenHui太阳

对于matlab2018a
% svmStruct = svmtrain (X_train (:, (1: k)), Y_train, showplot, true);
% C = svmclassify (svmStruct X_test (:, (1: k)),“showplot”,真正的);
svmClassifier = fitcsvm (X_train (:, (1: k)), Y_train);
[C分数]=预测(svmClassifier X_test (:, (1: k)));

埃里克舒尔茨

你好,

我用Matlab在windows 2015 10计算机。我总是错误:“错误使用墨西哥人
没有发金宝app现支持编译器或SDK。的选项,请访问//www.tatmou.com/金宝appsupport/compilers/R2015a/win64.html。”谁能帮我吗?

乔治•

嗨@dongyang !不幸的是,排名工具箱提供了一个收集的方法,你应该决定一个先天的基数子集。如果你想要一个方法,为您提供功能的一个子集可以去套索方法,它们估计用于删除冗余特性通过减少权重为零,在这一过程中,您可以选择的子集的特性系数> 0。我希望帮助!最好的。

东阳市

你好乔治:
谢谢你分享你的代码。我有一些问题,
我怎么能输出特性使用这个工具箱的一个子集,而不是排名的功能。

京华熊

尼古拉斯Blauch

你好乔治:
我想对测试数据进行交叉验证RFE期间以一种“动态”的方式。
我有试着设置。测试_on_the_fly = struct('loss','class_loss','data',test_dset);
test_dset =数据(X_test Y_test);

这将抛出一个错误在培训:
未定义的函数或变量“集团”。

错误rfe /培训>评估(第122行)
如果~ isa (a.test_on_the_fly。因此,“集团”),a.test_on_the_fly。结果=组;结束

知道如何解决这个问题吗?我不确定“集团”应该是什么,以及我是否需要设置a.test_on_the_fly。提前结果。

谢谢,
尼克

Grzegorz Nowacki

Ioannis

亲爱的乔治,

很高兴看到编译和运行的一切顺利
在版本6中。了不起的工作!

小民曰

嗨,乔治,

工具箱是伟大的。似乎从rfe排名算法总是1到N,不管我的数据。是我遗漏了什么东西?排名应该特性的重要性吗?

乔治•Roffo

你好,我要发布一个新版本6.0和几个更新。最好的。

omid eghbali

你好,乔治
谢谢你分享你的代码。我有一些问题,
我如何导入该toolbax matlab 2017 ?

chintan沙

错误使用墨西哥人
没有发金宝app现支持编译器或SDK。的选项,请访问
//www.tatmou.com/金宝appsupport/compilers/R2014a/win64

arghavani


谢谢你分享你的代码。这是一个错误,我接待编译时请你帮我个忙吗?
使
+构建和安装
estmutualinfo.cpp构建墨西哥人(dll)
建筑的Microsoft Windows SDK 7.1 (c++)。
墨西哥人成功完成。
estpab.cpp构建墨西哥人(dll)
建筑的Microsoft Windows SDK 7.1 (c++)。
墨西哥人成功完成。
libsvm_classifier_spider.cpp构建墨西哥人(dll)
警告:转义字符“\ m”并不是有效的。看到“doc sprintf”支持特殊字符。金宝app
>在做(20)行
错误使用墨西哥人
未知的文件扩展名”。
使误差(20)行
eval(['墨西哥人libsvm_classifier_spider。cpp svm.cpp-Icompiletools ',sprintf(['compiletools',filesep,'mexarg.cpp'])])

康纳Fahy

感谢乔治这个非常有用的和易于使用的库……

康纳Fahy

拉杰卜·穆克吉

乔治•Roffo

乔治•Roffo

这就跟你问声好!
实际上这不是一个图书馆的问题,你丢失的文件位于:FSLib_v5.2_2017 / lib / compiletools / mexarg.h
你的编译器找不到,所以你可以尝试添加的文件夹和子文件夹路径然后再次编译。
最好的,

Harsha Dudeja

这是一组完整的错误运行。m文件
错误使用墨西哥人
libsvm_classifier_spider.cpp
E: \ FSLib_v5.2_2017 (1) \ FSLib_v5.2_2017 \ lib \ libsvm_classifier_spider.cpp(11):致命的
C1083错误:不能打开包含文件:“mexarg。h:没有这样的文件或目录

使误差(20)行
eval(['墨西哥人libsvm_classifier_spider。cpp svm.cpp
-Icompiletools’, sprintf ([compiletools, filesep, ' mexarg.cpp ']))

Harsha Dudeja

特征选择方法:rfe
培训rfe(内核线性支持向量机)的壮举= 43 output_rank = 1…
培训时1
训练支持向量机内核线性....
未定义的函数或变量“libsvm_classifier_spider”。

错误支持向量机/培训(第225行)
[α,xSV, bias0] = libsvm_classifier_spider ({X, X}, {Y, Y},…

算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);

错误rfe /培训(36行)
[res, a.child] =火车(未经训练,dat);

算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);

错误spider_wrapper(55行)
(tr) =火车(a, dset);

错误rfe_rf(16行)
排名= spider_wrapper (TrainFeatures TrainClass numF,低(rfe));
请帮助

乔治•

@shun:谢谢你的反馈。我可能固定错误,介绍了在前面的上传。对不起。
@liliin: FSV是一种包装方法。对不起,你在哪里发现的引用FSV和过滤器呢?

避开张

你好乔治,我有一个问题在使用infFS模式。摘要相关术语corr = 1-abs(斯皮尔曼(fi, fj)),但是在你的代码中,为什么似乎corr =枪兵(fi, fj) ?

liliinChina

你好乔治,我有一个问题关于fsv特征选择方法,在你的指南书,你说fsv包装器方法,但您的代码表明这是一种过滤方法。你能告诉我你在代码中引用的原则。

PRADOSH NAYAK

这个错误被发现通过运行“make.m”。要做什么呢?

错误使用墨西哥人
没有发金宝app现支持编译器或SDK。的选项,请访问//www.tatmou.com/金宝appsupport/compilers/R2014a/win32

使误差(17行)
墨西哥人([列表(我). name]);

说Pertuz

优秀的工作

将有关ODABAS YILDIRIM

嗨,乔治,谢谢你分享你的代码。我有一些问题,
我有100个样本(84火车16测试)和每个人有648个属性,所以我有100 * 648的矩阵。我创建x_train (84 * 648), y_train (84 * 1), x_test (16 * 648), y_test (16 * 1)。
在选择方法,一些错误发生。我粘贴命令窗口;

+特征选择方法:10
培训l0(内核线性支持向量机)的壮举= 648 output_rank = 1 ....
训练支持向量机内核线性....
约束1删除,因为依赖

没有平等的约束…

错误使用+
矩阵维度必须一致。
错误quadsolve(第414行)
y = y + fd * dy;
错误支持向量机/培训(50行)
[α,偏见]= quadsolve(比释动能的(大小(比释动能,1),1),y ', 0, algo.C);
算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);
错误l0 /培训(30行)
[r, alg.child] =火车(alg.child datTemp);
算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);
错误spider_wrapper(55行)
(tr) =火车(a, dset);
错误feat_selec(第205行)
排名= spider_wrapper (X_train Y_train numF,低(selection_method));
你的建议给我吗?

乔治•

这就跟你问声好!
为了编译工具箱只需要运行”。“从主文件夹。
请打开。m文件and check the paths separator: addpath(genpath('./compiletools'));
/ Linux操作系统下使用,如果你在MS Windows上运行的代码可能需要换成\如:目录(genpath (”。\ compiletools '));

从你的输出你似乎安装了合适的C编译器。如果你仍然有问题复制粘贴错误,否则很难理解是错误的。最好的祝愿

塞缪尔•沃尔特

你好乔治,我比理查德也有同样的问题。起初我运行mexall。- file和得到这个输出:
编译…
建筑与gcc。
墨西哥人成功完成。
建筑与gcc。
墨西哥人成功完成。
建筑与gcc。
墨西哥人成功完成。
建筑“g++”。
墨西哥人成功完成。
编译完成。

在那之后我想跑。m文件但得到错误:未知的文件扩展名”。错误(20)行。
我做错了什么?提前谢谢你。

理查德Finlan

你好,我使用make.m下载不会构建。我需要做什么?未找到目录/lib/compiletools /失踪。在第20行运行时发生错误。m文件。谢谢你!

乔治•

嗨,抱歉的家伙mathworks降级图书馆因为.mex文件上传。我上传最后版本。

他范教授

你好乔治,
我如何解决这个问题(我使用董继玲女士)
作业有更多比单体下标单体rhs维度

Suhani阿加瓦尔

Vinayak Swarnkar

乔治•

你好,排名(1)是最歧视的特性。排名(结束)最严重的特性。最好的。

你好乔治,

我想知道如何调用后排名的方向特性

(排名、权重子集)=董继玲女士(X_train Y_train 0);

排名(1)“最判别”功能还是排名(结束)?

谢谢提前

乔治•

你好,
请确保您已经正确地编译工具箱:
在。/ FSLib_v5.0_2017 / lib / drtoolbox - - > mexall.m运行

你应该该输出:

> > mexall
编译…
建筑与gcc。
墨西哥人成功完成。
建筑与gcc。
墨西哥人成功完成。
建筑与gcc。
墨西哥人成功完成。
建筑“g++”。
墨西哥人成功完成。
编译完成。

Suhani阿加瓦尔

使用internal.stats错误。parseArgs(42)行
错误的数量的参数。

错误pca(第170行)
[vAlgorithm, vCentered vEconomy vNumComponents,妇人,vWeights,…

错误intrinsic_dim(第197行)
[mappedX,映射]= pca (X,大小(X, 2));

错误Untitled12(39)行
dd = intrinsic_dim (X,技术{2});

里斯Chappell

yap林

乔治•

根据我们的实验“无限的潜在功能选择:概率潜在的基于排名的方法”ICCV 2017年,我们的董继玲女士结果是最稳定、健壮的监督FS技术。
看到这篇论文的结果:https://goo.gl/WiDmu2
执行多级FS,你总是可以使用1-vs-all策略。
让我们考虑一下我们有4类。
我们可以获得最好的子集代表每个类通过设置相应的类标签:
sub1)标签1类标签1类2、3、4
sub2)标签1类2标签1类1,3,4
sub3)标签1 - 3班、标签1,1,2,4
sub4)标签1类4、标签1类2、3、4
之后,我们可以提取最常见的子集(相交sub1 sub2 sub3 sub4)。

Unnikrishnan P

你好,
请建议我最好的监督特征选择方法从这个工具箱高维、多类数据(7类)

穆罕默德Alhussan

你好,
每当我使用mRMR方法培训数据和标签,MATLAB不断崩溃,当我使用它。
任何人都有类似的问题?

> >有限元分析,分数]= mRMR (M, L, 10) % M是X-train, L是Y-train,我想选择10特性。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
访问违例发现太阳21:38:47 2017年8月13日
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


提前谢谢你!

amr alanwar

rabbasi

谢谢你的贡献,我有一个问题关于LaplacianScore。当我使用你的代码的例子是包含在您的代码中,关于constructW函数它给了我一个警告:“警告:这个函数已经改变和度规不再被支持”的延续,它给了我一个错误在LaplacianScore(有限元分析,W)功能:金宝app
“真正下标索引必须是正整数或逻辑值”。。就像我说的,实现对兰德的数据作为一个例子在代码的解释。我将感激如果你解释原因。

维克多Calle

乔治•

无限的特征选择在监督和非监督的方式工作,你可以让你的选择仅仅通过设置参数一口= 1(监督)或少量= 0(无监督)。

(排名,w) = infFS (X_train Y_train,α,吃晚饭,0);

X_train是一个矩阵,标准的“设计矩阵”(看到主教,2006)每一行是一个样本,每一列功能。
Y_train是一个列向量的标签,如果你有两类,这个向量是这样的:[1,1,1,1,1,1,1,等。]“
α是混合参数,您可以设置通常α= 0.9没问题。

没有办法知道有多少功能使用先验,大多数FS方法只是排名根据他们的特性程度的相关性,所以你可以选择N特性并将它们传递给一个分类器顶部看到它们是如何工作的。如果不够可以增加相应的N…

前N特性有可能的最好的分类
最好!

地中海Aymane Ahajjam

朱利安,我ReliefF算法用于类似的问题而且做得很成功!
祝你好运

朱利安

你好,对不起,这个非常基本的问题。这种方法可以用来确定哪些最好(视觉)特性为给定的分类在二进制图像分类任务?谢谢。朱利安

Eliya苏丹

你好,
是否有意义,我运行代码两次相同的数据,得到不同的结果?
我使用了mrmr和费舍尔的方法。
谢谢!
eliya。

乔治•

我的评论消失了。
SVM-RFE是基于支持向量机的,所以
1)你正常输入数据吗?支持向量机工作更好更快的投入在区间[0,1],
一个非常简单的方法是:X = X。/总和(X, 2)
2)检查是否在Y向量失踪的标签像[1 1 1 1 1 3 3 3 3 4 4 4 4 5 5 5 5]<——这里没有2,也许这可以产生一个异常。在这种情况下你应该重新分配标签如下:
[1 1 1 1 1 3 3 3 3 4 4 4 4 5 5 5 5]- > [1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4]

乔治•

* * * *对不起”检查如果你在Y向量有缺失的标签像[1 1 1 1 1 3 3 3 3 4 4 4 4 5 5 5 5]<——这里没有4,也许这可以生成一个异常。”
我的意思是标签2不见了…在这种情况下你应该重新分配标签是这样的:
[1 1 1 1 1 3 3 3 3 4 4 4 4 5 5 5 5]- > [1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4]
最好的,

elahe afshari

嗨亲爱的乔治Roffo

我使用svm-rfe (FSLIB)为两个数据集(臭氧& ozone2)相似,但对臭氧数据集正确运行和ozone2数据集运行它并没有结束。

%函数SR = SVMRFEOzone (TrainData)
% %演示文件
流(‘\ nFEATURE选择工具箱v 4.0 2016 - Matlab \ n”);

%从列表中选择一个特征选择方法
listFS = {‘InfFS’,‘ecf’,‘mrmr’,‘relieff’,‘mutinffs’,‘fsv’,‘拉普拉斯算子’,‘mcf’,‘rfe’,‘10’,‘雪’,‘udf’,‘llcfs’, cfs的};

[methodID] = readInput (listFS);
selection_method = listFS {methodID};%选择
%包括依赖关系
目录(' / lib。');%的依赖性
目录(' /方法。');% FS方法

%的数量特征
% numF =大小(X_train, 2);
vectorvote = 0 (72);
TrainData =负载(“ozone.mat”);
TrainData = TrainData.TrainData;

%对训练数据特征选择

X_train = TrainData (1:201 1:72);
Y_train = TrainData (1:201, 73);
排名= spider_wrapper (X_train Y_train 60,降低(rfe));
61:72 rankingD =排序(排序(1));
rankingB =排序(排序(1一60));
vectorvote (rankingD (:)) = vectorvote (1, rankingD (:)) + 9;
TrainData (:, rankingD (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

X_train1 = TrainData(201:400一60);
Y_train1 = TrainData (201:400, 61);
ranking1 = spider_wrapper (X_train1 Y_train1 60,降低(rfe));
51:60 rankingD1 =排序(ranking1 (1));
rankingB1 =排序(ranking1 (1:50));
rankingB1 = rankingB (rankingB1 (:));
vectorvote (rankingB (rankingD1 (:))) = vectorvote (1, rankingB (rankingD1 (:))) + 8;
TrainData (:, rankingD1 (:)) = [];

% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train2 = TrainData (401:600, 1:50);
Y_train2 = TrainData (401:600, 51);
ranking2 = spider_wrapper (X_train2 Y_train2 40,降低(rfe));
41:50 rankingD2 =排序(ranking2 (1));
rankingB2 =排序(ranking2 (1, 1));
rankingB2 = rankingB1 (rankingB2 (:));
vectorvote (rankingB1 (rankingD2 (:))) = vectorvote (1, rankingB1 (rankingD2 (:))) + 7;
TrainData (:, rankingD2 (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train3 = TrainData (600:801, 40);
Y_train3 = TrainData (600:801, 41);
ranking3 = spider_wrapper (X_train3 Y_train3 30,降低(rfe));
31:40 rankingD3 =排序(ranking3 (1));
rankingB3 =排序(ranking3 (1:30));
rankingB3 = rankingB2 (rankingB3 (:));
vectorvote (rankingB2 (rankingD3 (:))) = vectorvote (1, rankingB2 (rankingD3 (:))) + 6;
TrainData (:, rankingD3 (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train4 = TrainData (802:1000, 1:30);
Y_train4 = TrainData (802:1000 31);
ranking4 = spider_wrapper (X_train4 Y_train4 25,降低(rfe));
26:30 rankingD4 =排序(ranking4 (1));
rankingB4 =排序(ranking4 (1:25));
rankingB4 = rankingB3 (rankingB4 (:));
vectorvote (rankingB3 (rankingD4 (:))) = vectorvote (1, rankingB3 (rankingD4 (:))) + 5;
TrainData (:, rankingD4 (:)) = [];


TrainData1 =负载(“ozone2.mat”);
TrainData1 = TrainData1.xc11;

%对训练数据特征选择

X_train = TrainData1 (1:201 1:72);
Y_train = TrainData1 (1:201, 73);
排名= spider_wrapper (X_train Y_train 60,降低(rfe));
61:72 rankingD =排序(排序(1));
rankingB =排序(排序(1一60));
vectorvote (rankingD (:)) = vectorvote (1, rankingD (:)) + 9;
TrainData (:, rankingD (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

X_train1 = TrainData1(201:400一60);
Y_train1 = TrainData1 (201:400, 61);
ranking1 = spider_wrapper (X_train1 Y_train1 60,降低(rfe));
51:60 rankingD1 =排序(ranking1 (1));
rankingB1 =排序(ranking1 (1:50));
rankingB1 = rankingB (rankingB1 (:));
vectorvote (rankingB (rankingD1 (:))) = vectorvote (1, rankingB (rankingD1 (:))) + 8;
TrainData (:, rankingD1 (:)) = [];

% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train2 = TrainData1 (401:600, 1:50);
Y_train2 = TrainData1 (401:600, 51);
ranking2 = spider_wrapper (X_train2 Y_train2 40,降低(rfe));
41:50 rankingD2 =排序(ranking2 (1));
rankingB2 =排序(ranking2 (1, 1));
rankingB2 = rankingB1 (rankingB2 (:));
vectorvote (rankingB1 (rankingD2 (:))) = vectorvote (1, rankingB1 (rankingD2 (:))) + 7;
TrainData (:, rankingD2 (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train3 = TrainData1 (600:801, 40);
Y_train3 = TrainData1 (600:801, 41);
ranking3 = spider_wrapper (X_train3 Y_train3 30,降低(rfe));
31:40 rankingD3 =排序(ranking3 (1));
rankingB3 =排序(ranking3 (1:30));
rankingB3 = rankingB2 (rankingB3 (:));
vectorvote (rankingB2 (rankingD3 (:))) = vectorvote (1, rankingB2 (rankingD3 (:))) + 6;
TrainData (:, rankingD3 (:)) = [];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X_train4 = TrainData1 (802:1000, 1:30);
Y_train4 = TrainData1 (802:1000 31);
ranking4 = spider_wrapper (X_train4 Y_train4 25,降低(rfe));
26:30 rankingD4 =排序(ranking4 (1));
rankingB4 =排序(ranking4 (1:25));
rankingB4 = rankingB3 (rankingB4 (:));
vectorvote (rankingB3 (rankingD4 (:))) = vectorvote (1, rankingB3 (rankingD4 (:))) + 5;
TrainData (:, rankingD4 (:)) = [];



卜拉希米迈赫迪

你好,乔治!
非常感谢你这个工具箱!
我有一个问题关于特征选择使用fisher线性判别式。在报纸上有关你引用的工具箱Generelized特性顾等人提出的分数但似乎工具箱执行定义的“简单”费舍尔选择杜达et al . 2012。那是正确的吗?

乔治•

这就跟你问声好!感谢您下载工具箱,可以为您提供的一些技术特性的一个子集。但是一般来说,他们只是执行排序的步骤,在这种情况下你可以决定多少特性选择先验或使用任何形式的交叉验证决定(大约)有多少他们维护。

Zafer COMERT

非常感谢你宝贵的贡献。
我刚刚下载FSLib由你。我有一个问题。功能排名过程后,我们如何决定需要多少特性最好的精度?

jae baak

忘记下面的评论。发现Matlab编译器并不是唯一一个。这个工具箱是伟大的。

jae baak

想试试这但我没有访问Matlab编译器。是预编译版本可用的地方?(除了死链接的第一个评论)谢谢!

佩德罗第24位

德文·沙利文

FS的极佳工具,记录和优秀的README文件细节和引用的各种方法。

我希望它为多层次或基于回归的特征选择工作,但我要看看我是否能找到一种方法使其成为可能。

——编辑:值得注意的是,这里使用支持向量机工具“将在未来的版本中被删除”和需要替换更新的功能。

——EDIT2:想出了如何多为费舍尔至少工作。对别人感兴趣:
1。把你的标签(Y)到一个nxm矩阵m =数量的类和n =数量的样品(与值1或1演示)。
2。修改“spider_wrapper”10行:a.method =“分类”;a.method = 2; % 1 - 3可以任意数量取决于你的方法的偏好(见60行FSLib_v4.2_2016 / FSLib_v4.2_2016 / FSLib_v4.2_2016 / lib / @fisher /培训。详情)
3所示。不要试图使用svm阴谋的结果,不会为多级数据工作。特征选择后停止Demo.m(第149行)。

乔治•

你好大卫,“\”和“/”路径有关您的操作系统(Linux或Windows)也许你需要从切换到另一个基于它,欢迎你:)

大卫。Nardone

嗨,乔治,谢谢你的建议。有\在第9行而不是/文件,使文件路径“/ lib”。欢呼:)

乔治•

你好大卫,你确定你编译解决方案吗?在使用工具箱之前你应该运行make文件,它似乎是一个墨西哥人文件丢失,也检查包括FSLib文件夹及其子文件夹的路径。

大卫。Nardone

排名= spider_wrapper (X, Y, N_DS (rfe))触发这个堆栈错误跟踪:

未定义的函数的libsvm_classifier_spider输入参数类型的“细胞”。

错误支持向量机/培训(第225行)
[α,xSV, bias0] = libsvm_classifier_spider ({X, X}, {Y, Y},…

算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);

错误rfe /培训(36行)
[res, a.child] =火车(未经训练,dat);

算法误差/火车(第103行)
(dat,寒冷)=培训(藻类,dat);

错误spider_wrapper(12)行
(tr) =火车(a, dset);

你能建议我如何解决它吗?

乔治•

你好大卫,Inf-FS是一种无监督的方法,然而在这个工具箱可以找到该方法的两个变量。
函数(排名、体重)= infFS (X_train Y_train,α,监督,详细)

设置监督= 0使用无监督的版本,在这种情况下你可以设置Y_train = []

如果你想使用监督版本然后设置监督= 1,并提供正确的类标签。

谢谢你的问题,
希望这可以帮助!

大卫·帕拉西奥斯

你好,有一个问题关于infFS算法。如果它是一个无监督特征选择方法,为什么你必须提供一个Y_train向量与类标签吗?

nVIDIApascal

YJXia

Helmie哈米德

日前杨

Afsoon

这个工具箱进行多级数据吗?我已经与1320特性和3类数据,我需要特征选择阶段。但是这个工具箱不能为我的数据工作。

安德里亚

洛里被关闭的

我发现FSLib是一个非常有用的工具!非常感谢开发人员!

大卫

乔治•

你好,谢谢你的反馈。我添加了“特征选择图书馆(MATLAB工具箱)”邮政的纸。论述了FS最重要的方法。的可用性,您可以在工具箱中找到一个演示文件旨在允许用户运行代码容易和使用工具箱提供的每个方法。

加布里埃尔Theberge

嗨,你的工具箱看起来很有趣,但你提供任何的readme文件或任何其他文档来学习如何使用它呢?
非常感谢!

安德鲁斯Sobral

太好了!谢谢你!

Chuong阮

你好非常感谢图书馆。我有一个问题。费舍尔[6]的方法,是图书馆实现提出的广义费舍尔得分Quanquan顾等2012年,(更复杂),或者只是古典费舍尔得分。谢谢你!

frankjk

黄海

gabriele tosadori

乔治•

MATLAB版本兼容性
创建R2017b
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

FSLib_v7.0.1_2020_2

FSLib_v7.0.1_2020_2 / eval_metrics

FSLib_v7.0.1_2020_2 / lib

FSLib_v7.0.1_2020_2 / lib / @algorithm

FSLib_v7.0.1_2020_2 / lib / @ data

FSLib_v7.0.1_2020_2 / lib / @distance

FSLib_v7.0.1_2020_2 / lib / @fisher

FSLib_v7.0.1_2020_2 / lib / @kernel

FSLib_v7.0.1_2020_2 / lib / @l0

FSLib_v7.0.1_2020_2 / lib / @loss

FSLib_v7.0.1_2020_2 / lib / @rfe

FSLib_v7.0.1_2020_2 / lib / @svm

FSLib_v7.0.1_2020_2 / lib / drtoolbox

FSLib_v7.0.1_2020_2 / lib / drtoolbox / gui

FSLib_v7.0.1_2020_2 / lib / drtoolbox /技术

FSLib_v7.0.1_2020_2 / lib /文件

FSLib_v7.0.1_2020_2 /方法