- Python Deep Learning
- Ivan Vasilev Daniel Slater Gianmario Spacagna Peter Roelants Valentino Zocca
- 511字
- 2021-07-02 14:31:00
Support vector machines
A support vector machine (SVM) is a supervised machine learning algorithm that is mainly used for classification. It is the most popular member of the kernel method class of algorithms. An SVM tries to find a hyperplane, which separates the samples in the dataset.
In the following diagram, on the top and bottom, you can see two classes of points (red and blue) that are in a two-dimensional feature space (the x and y axes). If both the x and y values of a point are below five, then the point is blue. In all other cases, the point is red. In this case, the classes are linearly-separable, meaning we can separate them with a hyperplane. Conversely, the classes in the image at the bottom are linearly-inseparable:

The SVM tries to find a hyperplane that maximizes the distance between itself and the points. In other words, from all possible hyperplanes that can separate the samples, the SVM finds the one that has the maximum distance from all points. In addition, SVMs can also deal with data that is not linearly-separable. There are two methods for this: introducing soft margins or using the kernel trick.
Soft margins work by allowing a few misclassified elements while retaining the most predictive ability of the algorithm. In practice, it's better not to overfit the machine learning model, and we could do so by relaxing some of the support-vector-machine hypotheses.
The kernel trick solves the same problem in a different way. Imagine that we have a two-dimensional feature space, but the classes are linearly-inseparable. The kernel trick uses a kernel function that transforms the data by adding more dimensions to it. In our case, after the transformation, the data will be three-dimensional. The linearly-inseparable classes in the two-dimensional space will become linearly-separable in the three dimensions and our problem is solved:

- Learning Microsoft Windows Server 2012 Dynamic Access Control
- Mastering NetBeans
- Java范例大全
- Developing Mobile Web ArcGIS Applications
- Mastering Natural Language Processing with Python
- Java加密與解密的藝術(第2版)
- Mastering Python Scripting for System Administrators
- Git高手之路
- Learning Selenium Testing Tools(Third Edition)
- Mastering ServiceNow(Second Edition)
- 可解釋機器學習:模型、方法與實踐
- 精通MATLAB(第3版)
- Instant Nancy Web Development
- C指針原理揭秘:基于底層實現機制
- Learning Bootstrap 4(Second Edition)