Links
Tutoriais
Apenas com Exemplos de Código em Python
- Analytics Vidhya::Understanding Support Vector Machine algorithm from examples (com muitos exemplos em Python)
- scikit-learn::Support Vector Machines (SVM)
Com Jupyters
- Python Data Science Handbook::In-Depth: Support Vector Machines
- IPython Cookbook::Using support vector machines for classification tasks
- O’Reilly Learning Platform::Introduction to Support Vector Machines
- Accelebrate::Getting Started with Machine Learning Using Python and Jupyter Notebooks (com exemplos de como instalar com Anaconda em Windows…)
- (Git com Jupyter) Support-Vector-Machines-SVM – A series of documented Jupyter notebooks implementing SVM and SVC’s.
- (Git com Jupyter) Learn to use Support Vector Machines in Python(sklearn)
- Kaggle::Niraj Verma – Support Vector Machine detail analysis (avançado!) – Run Support Vector machine with different kernels(linear,gaussian,polynomial) and also tune the various parameters such as C ,gamma and degree to find out the best performing model
Material de Referência e Discussão
Páginas de Manual do OpenCV
- Introduction to Support Vector Machines (2.4, C++)
- Support Vector Machines (3.0, C++)
- Introduction to Support Vector Machines (3.4, C++, Java, Python)
Páginas de Manual de SciKit-Learn (sklearn)
O que é SciKit-Learn? É outra biblioteca de AM que implementa SVN e muitas outras coisas:
- Simple and efficient tools for data mining and data analysis
- Accessible to everybody, and reusable in various contexts
- Built on NumPy, SciPy, and matplotlib
- Open source, commercially usable – BSD license
Abaixo um exemplo de código de SVM com SciKit-Learn. O código part eda premissa que você possui três funções: X, Y e x_test para gerar respectivamente os dados de treino, resultados_para_treino e teste.
#Import Library from sklearn import svm #Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset # Create SVM classification object model = svm.svc(kernel='linear', c=1, gamma=1) # there is various option associated with it, like changing kernel, gamma and C value. Will discuss more # about it in next section.Train the model using the training sets and check score model.fit(X, y) model.score(X, y) #Predict Output predicted= model.predict(x_test)
Páginas de Manual de mlpy
O que é mlpy? mlpy is a Python module for Machine Learning built on top of NumPy/SciPy and the GNU Scientific Libraries. mlpy provides a wide range of state-of-the-art machine learning methods for supervised and unsupervised problems and it is aimed at finding a reasonable compromise among modularity, maintainability, reproducibility, usability and efficiency.
SVMs e Conjuntos não-Linearmente Separáveis: a Espiral Dupla
Exemplo usando mlpy.
Código-exemplo da figura acima (spiral.data pode ser obtido aqui)(ou de nosso site):
import numpy as np import matplotlib.pyplot as plt import mlpy # sudo pip install mlpy f = np.loadtxt("spiral.data") x, y = f[:, :2], f[:, 2] svm = mlpy.LibSvm(svm_type='c_svc', kernel_type='rbf', gamma=100) svm.learn(x, y) xmin, xmax = x[:,0].min()-0.1, x[:,0].max()+0.1 ymin, ymax = x[:,1].min()-0.1, x[:,1].max()+0.1 xx, yy = np.meshgrid(np.arange(xmin, xmax, 0.01), np.arange(ymin, ymax, 0.01)) xnew = np.c_[xx.ravel(), yy.ravel()] ynew = svm.pred(xnew).reshape(xx.shape) fig = plt.figure(1) plt.set_cmap(plt.cm.Paired) plt.pcolormesh(xx, yy, ynew) plt.scatter(x[:,0], x[:,1], c=y) plt.show()
Como já discutimos em Redes Nuerais Tradicionais (Backpropagation simples) e em IBL, o problema da espiral dupla é um problema muito usado para testar métodos de AM. SVMs podem ser usadas com sucesso para resolver o problema da espiral dupla, se fizermos algumas escolhas específicas, por exemplo o uso de kernels com RBFs. Abaixo vários artigos que discutem este assunto, com exemplos em Python:
- Stackexchange/Cross-Validate: How to classify data which is spiral in shape?
- Há um exemplo na documentação padrão de MLPy: Support Vector Machines (SVMs)
- Exercício de Cornell(em Octave) sobre SVMs e espirais duplas: http://www.cs.cornell.edu/courses/cs4780/2015fa/web/projects/06kernels/06kernelsvm.html
Descrição e Discussão
- Medium::Machine Learning – Support Vector Machines
- Analytics Vidhya::Support Vector Machine – Simplified
- Towards Data Science::Support Vector Machine — Introduction to Machine Learning Algorithms
Disciplinas em Outras Universidades
- Stanford CS229: Machine Learning
- Apostila de SVM: http://cs229.stanford.edu/notes/cs229-notes3.pdf
- Exercício de Cornell (em Octave) sobre SVMs e espirais duplas: http://www.cs.cornell.edu/courses/cs4780/2015fa/web/projects/06kernels/06kernelsvm.html