---
# System prepended metadata

title: Big Data. SVM (Suport Vector Machine).
tags: [' Big Data', ' machine learning', DAM]

---

---
title: Big Data. SVM (Suport Vector Machine).
tags: DAM, machine learning, Big Data
---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)    
    
</div>



<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# SVM (support vector machine / màquines de suport vectorial) per classificació
![images](https://hackmd.io/_uploads/Hk73ZE3dp.jpg)

## 1. Introducció

### 1.1 Definició de Màquines de Suport Vectorial (SVM)

Les Màquines de Suport Vectorial (SVM) són un conjunt d'algoritmes d'aprenentatge supervisat utilitzats per a la classificació i regressió. El seu principal objectiu és trobar l'hiperpla òptim que maximitzi el marge de separació entre les classes en un espai de característiques d'alta dimensió. Aquests algoritmes destaquen per la seva capacitat per treballar eficaçment en conjunts de dades complexes i no lineals.

### 1.2 Hiperpla i Separació de Classes

* **Hiperpla**: L'hiperpla és una generalització del concepte d'un pla en espais de dimensions superiors. En SVM, l'hiperpla és crucial ja que actua com una superfície de decisió que ajuda a separar les diferents classes a l'espai de característiques.
* **Marge**: El marge és la distància perpendicular des de l'hiperpla als punts més propers de les classes. SVM busca trobar l'hiperpla que maximitza aquest marge, la qual cosa contribueix a la robustesa del model davant de noves dades.
* **Vectors de Suport**: Els vectors de suport són els punts de dades que estan més a prop de l'hiperpla i tenen un paper fonamental en la determinació del marge. Aquests punts són essencials ja que qualsevol canvi en ells podria afectar la posició de l'hiperpla.

#### Definició d'hiperpla.
En un espai p-dimensional, un hiperpla es defineix com un subespai pla i afí de dimensions p−1. El terme afí significa que el subespai no necessàriament ha de passar per l'origen. En un espai de dues dimensions, l'hiperpla és un subespai d'1 dimensió, és a dir, una recta. En un espai tridimensional, un hiperpla és un subespai de dues dimensions, un pla convencional. Per a dimensions p>3 no és intuitiu visualitzar un hiperpla, però el concepte de subespai amb p−1 dimensions es manté.

La definició matemàtica d'un hiperpla és bastant senzilla. En el cas de dues dimensions, l'hiperpla es descriu segons l'equació d'una recta:

    β0+β1x1+β2x2=0

Podem comprovar que l'equació de dalt es pot transformar en l'equació típica de la recta que tots hem vist a ensenyament secundari: __'y = mx + b'__, dividint tota l'expressió entre -β2:

    β0/-β2+β1/-β2x1+β2/-β2x2=0 
    
I sustituïnt β0/-β2 per **b** i β1/-β2 per **a**.

Donats els paràmetres β0, β1 i β2, tots els parells de valors x=(x1,x2) pels quals es compleix l'igualtat són punts de l'hiperpla. Aquesta equació es pot generalitzar per a p-dimensions:

    β0+β1x1+β2x2+...+βpxp=0

I de manera semblant, tots els punts definits pel vector x=(x1,x2,...,xp) que compleixen l'equació pertanyen a l'hiperpla.

Quan xx no satisfà l'equació:

    β0+β1x1+β2x2+...+βpxp<0
    
o bé
    
    β0+β1x1+β2x2+...+βpxp>0

El punt x1, x2 cau a un costat o a l'altre de l'hiperpla. Així doncs, es pot entendre que un hiperpla divideix un espai p-dimensional en dues meitats. Per saber a quin costat de l'hiperpla es troba un punt determinat x1, x2, només cal calcular el signe de l'equació.




### 1.3 Kernel Trick i No Linealitat

__Veure:__ [https://cienciadedatos.net/documentos/py24-svm-python.html](https://cienciadedatos.net/documentos/py24-svm-python.html)

#### Kernel Trick:
SVM pot gestionar eficientment problemes no lineals mitjançant el "kernel trick". Aquest enfocament consisteix a mapar les dades originals a un espai de característiques de major dimensió, on és més probable que les dades siguin linealment separables. Això permet a SVM realitzar classificacions en espais no lineals sense la necessitat de calcular explícitament les coordenades a l'espai de característiques d'alta dimensió.

#### Tipus de Kernels:
Existeixen diferents tipus de kernels, com ara lineals, polinòmics i RBF (funcions de base radial), amb exemples que il·lustren com afecten la capacitat del model per adaptar-se a dades específiques.


### 1.4 Exemples d'Aplicacions de Màquines de Suport Vectorial (SVM):

1. Classificació d'Imatges Médiques:
    Utilitat: Les SVM es fan servir per a classificar imatges mèdiques, com ara detectar tumors en imatges de tomografia computaritzada (TC) o ressonància magnètica (RM). La capacitat de les SVM per manejar conjunts de dades complexos i la seva robustesa fan que sigui eficaç en aquest context.
    Limitació: Pot ser un repte si el conjunt de dades és molt gran i la dimensionalitat és alta. Així mateix, si les classes estan molt solapades, les SVM poden tenir dificultats.

2. Anàlisi de Sentiments en Text:
    Utilitat: Les SVM són utilitzades per a classificar opinions i sentiments en textos, com ara en anàlisi de tuits o ressenyes de productes. Poden manejar eficaçment característiques no lineals i són útils per a tasques de classificació de text.
    Limitació: Si les dades textuales són molt desequilibrades o contenen molts matissos, les SVM podrien no ser tan precises com altres mètodes més especialitzats.

3. Bioinformàtica i Genòmica:
    Utilitat: Les SVM són emprades en bioinformàtica per a classificar patrons en seqüències genòmiques o identificar gens rellevants en conjunts de dades massius. Poden gestionar dades d'alta dimensionalitat i complexitat.
    Limitació: Si les dades genòmiques són molt rares o si hi ha moltes característiques redundants, les SVM poden experimentar dificultats.

4. Detecció de Fraus en Targetes de Crèdit:
    Utilitat: Les SVM es poden utilitzar per a la detecció de fraus en targetes de crèdit, ja que poden identificar patrons anomals en els patrons de despesa. La capacitat de gestionar conjunts de dades desequilibrats és un avantatge.
    Limitació: Si les tècniques de frau evolucionen ràpidament, les SVM poden necessitar actualitzacions freqüents per mantenir-se efectives.

5. Reconeixement de Caràcters en Documents Escanejats:
    Utilitat: Les SVM són eficaces per a reconèixer caràcters en documents escanejats, com ara en la digitalització de textos antics o la reconeixença òptica de caràcters (OCR). Poden adaptar-se a formes no lineals i patrons complexes.
    Limitació: En presència de molt soroll o variabilitat en l'escriptura, les SVM poden trobar dificultats en el reconeixement de caràcters.

[Exemple a Google Colab](https://colab.research.google.com/drive/1CS34EK9pPlbbyBL92OgSZODsCFDU6Scq?usp=sharing)