Изменения

Перейти к: навигация, поиск

Метод опорных векторов (SVM)

1648 байт добавлено, 02:14, 9 апреля 2019
Нет описания правки
* [https://arxiv.org/abs/1901.09643v1 Support Features Machine (SFM)]
* [http://www.robots.ox.ac.uk/~minhhoai/papers/SVMFeatureWeight_PR.pdf Relevance Features Machine (RFM)]
 
==Примеры кода==
===Пример на языке Java===
Пример классификации с применением <code>smile.classification.SVM</code><ref>[https://haifengl.github.io/smile/api/java/smile/classification/SVM.html/ Smile, SVM]</ref>
 
<code>Maven</code> зависимость:
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-core</artifactId>
<version>1.5.2</version>
</dependency>
 
'''import''' smile.classification.SVM;
'''import''' smile.data.NominalAttribute;
'''import''' smile.data.parser.DelimitedTextParser;
'''import''' smile.math.kernel.GaussianKernel;
'''import''' java.util.Arrays;
 
<font color="green">// read train & test dataset</font>
'''var''' parser = new DelimitedTextParser();
parser.setResponseIndex(new NominalAttribute("class"), 0);
'''var''' train = parser.parse("USPS Train", this.getClass().getResourceAsStream("/smile/data/usps/zip.train"));
'''var''' test = parser.parse("USPS Test", this.getClass().getResourceAsStream("/smile/data/usps/zip.test"));
'''var''' classes = Arrays.stream(test.labels()).max().orElse(0) + 1;
<font color="green">// build SVM classifier</font>
'''var''' svm = new SVM<>(new GaussianKernel(8.0), 5.0, classes, SVM.Multiclass.ONE_VS_ONE);
svm.learn(train.x(), train.labels());
svm.finish();
<font color="green">// calculate test error rate</font>
'''var''' error = 0;
for (int i = 0; i < test.x().length; i++) {
if (svm.predict(test.x()[i]) != test.labels()[i]) {
error++;
}
}
System.out.format("USPS error rate = %.2f%%\n", 100.0 * error / test.x().length);
== См. также ==
Анонимный участник

Навигация