- 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:

- Effective C#:改善C#代碼的50個有效方法(原書第3版)
- Java應用開發與實踐
- Spring Cloud、Nginx高并發核心編程
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Amazon S3 Cookbook
- SAP BusinessObjects Dashboards 4.1 Cookbook
- Android底層接口與驅動開發技術詳解
- Java程序設計
- 數據結構案例教程(C/C++版)
- C語言程序設計實驗指導 (第2版)
- IBM Cognos Business Intelligence 10.1 Dashboarding cookbook
- C專家編程
- GameMaker Essentials
- JavaScript+jQuery網頁特效設計任務驅動教程
- Mudbox 2013 Cookbook