halcon分类算子:select_feature_set_svm

select_feature_set_svm

名称

select_feature_set_svm —选择功能的最佳组合以对提供的数据进行分类。

签名

描述

select_feature_set_svm从一组要素中选择一个最佳子集以解决给定的分类问题。分类问题必须在ClassTrainDataHandle中用带注释的训练数据指定,并将由支持向量机(SVM)进行分类。可以在create_class_svm中找到此分类器的属性的详细信息

运算符的结果是经过训练的分类器,该分类器在SVMHandle中返回 此外,在SelectedFeatureIndices中返回索引列表或所选要素的名称要使用此分类器,请为SelectedFeatureIndices中提到的所有特征计算新的输入数据 ,并将它们传递给分类器。

该运算符的可能应用是比较某些特征提取技术的不同参数集。另一个应用程序是搜索可以区分不同类的功能。

另外,可以为SVM估算“ nu”和 “ gamma”的值。为了仅估计这两个参数而不更改特征集,必须将特征向量指定为一个大的子特征。

若要定义应从ClassTrainDataHandle中选择 的特征,可以通过调用set_feature_lengths_class_train_dataClassTrainDataHandle中的特征向量的维分组为子特征子功能可以包含特征向量的多个后续元素。操作员将决定使用这些子功能中的每个子功能,是将其用于分类还是将其省略。

所选子功能的索引在SelectedFeatureIndices中返回 如果在set_feature_lengths_class_train_data中设置了名称,则将返回这些名称而不是索引。如果之前没有为ClassTrainDataHandle调用 set_feature_lengths_class_train_data,则特征向量的每个元素都被视为一个子特征。

选择方法 SelectionMethod是贪婪搜索“贪婪” (迭代添加具有最高增益的特征)或动态振荡搜索“ greedy_oscillating” (添加具有最高增益的特征并进行测试,然后测试是否可以忽略任何已添加的特征没有太大的损失)。通常最好使用“贪婪”方法 ,因为它更快。仅在子特征为低维或冗余的情况下,应选择“ greedy_oscillating”方法

优化标准是训练数据的两次交叉验证的分类率。获得的最佳值在Score中返回

可以使用参数GenParamNamesGenParamValues将用于分类的SVM的参数'nu''gamma'设置为'auto'如果将它们设置为“自动”,则估计的是估计的最佳“ nu”和/或 “ gamma”自动估计“ nu” 和“ gamma”会花费大量时间(最多几天,具体取决于数据集和特征数量)。

此外,还有一个参数“ mode”,可以将其设置为 “ one-versus-all” 或“ one-versus-one”可以在create_class_svm中找到这两种模式以及作为径向基函数(RBF)内核的内核参数的参数'nu'和 'gamma'的说明

注意

该操作员可能要花费大量时间,具体取决于训练文件中数据集的大小和功能部件的数量。

请注意,如果只有少量训练数据可用,则不应调用此运算符。由于过拟合的风险,操作员select_feature_set_svm可能会提供得分很高的分类器。但是,分类器在测试时可能表现不佳。

并行化

  • 多线程类型:可重入(与非排他运算符并行运行)。

  • 多线程作用域:全局(可以从任何线程调用)。

  • 在内部数据级别自动并行化。

该运算符返回一个句柄。请注意,此句柄类型的实例的状态可以由特定的运算符更改,即使这些运算符将句柄用作输入参数也是如此。

参量

ClassTrainDataHandle(input_control)  class_train_data → (整数)

处理训练数据。

SelectionMethod(input_control)  字符串→ (字符串)

执行选择的方法。

默认值: “贪婪”

值列表:“ greedy”“ greedy_oscillating”

GenParamNames(input_control)  字符串(数组)→ (字符串)

用于配置选择过程和分类器的通用参数名称。

默认值: []

值列表:'gamma''mode''nu'

GenParamValues(input_control)  数字(数组)→ (实数/整数/字符串)

通用参数的值,用于配置选择过程和分类器。

默认值: []

建议值: 0.02、0.05,“自动”“一对一”“一对全”

SVMHandle(output_control)  class_svm → (整数)

经过训练的SVM分类器,仅使用所选功能。

SelectedFeatureIndices(output_control)  字符串数组→ (字符串)

所选要素集包含索引。

Score 得分(output_control)  实数组→ (实数)

使用双重交叉验证获得的分数。

示例(HDevelop)

* Find out which of the two features distinguishes two Classes
NameFeature1 := 'Good Feature'
NameFeature2 := 'Bad Feature'
LengthFeature1 := 3
LengthFeature2 := 2
* Create training data
create_class_train_data (LengthFeature1+LengthFeature2,\
  ClassTrainDataHandle)
* Define the features which are in the training data
set_feature_lengths_class_train_data (ClassTrainDataHandle, [LengthFeature1,\
  LengthFeature2], [NameFeature1, NameFeature2])
* Add training data
*                                                         |Feat1| |Feat2|
add_sample_class_train_data (ClassTrainDataHandle, 'row', [1,1,1,  2,1  ], 0)
add_sample_class_train_data (ClassTrainDataHandle, 'row', [2,2,2,  2,1  ], 1)
add_sample_class_train_data (ClassTrainDataHandle, 'row', [1,1,1,  3,4  ], 0)
add_sample_class_train_data (ClassTrainDataHandle, 'row', [2,2,2,  3,4  ], 1)
* Add more data 
* ...
* Select the better feature with a SVM
select_feature_set_svm (ClassTrainDataHandle, 'greedy', [], [], SVMHandle,\
  SelectedFeatureSVM, Score)
clear_class_train_data (ClassTrainDataHandle)
* Use the classifier
* ...
clear_class_svm (SVMHandle)

结果

如果参数有效,则运算符select_feature_set_svm 返回值2(H_MSG_TRUE)。如有必要,将引发异常。

可能的前辈

create_class_train_data, add_sample_class_train_data, set_feature_lengths_class_train_data

可能的继任者

classify_class_svm

备择方案

select_feature_set_mlp, select_feature_set_knn, select_feature_set_gmm

也可以看看

select_feature_set_trainf_svm, gray_features, region_features


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864