/SVM-mapreduce

A map reduce approach to SVM classification. http://r-es.org/Concursos+V+Jornadas

Primary LanguageRApache License 2.0Apache-2.0

SVM-mapreduce

A map reduce approach to SVM classification. http://r-es.org/Concursos+V+Jornadas

Brief description of Training50K.csv (sep=\t)

  • 8 continuous vars (x1..x8),
  • 7 categorics vars (xc1..xc7)
  • 3 predicted var yes/no (y1..y3) (sorted by complexity, y1 > y2, ...)

SVM training - support vectors

Model for y1 var

Training SVM for y1 label (gamma=0.001, C=50.)

K-Fold validation:
X train: (30000, 16)
y train: (30000,)
X test: (20000, 16)
y test: (20000,)

Supported vectors length: (124, 16)
Dual coef. length: (1, 124)

Score k-fold validation: 1.000000

Vector 1 Labeled: 1.0 Model prediction: [ 1.]
Decision function: [[ 1.23194725]]
[1]

Model for y2 var

Training SVM for y2 label (gamma=0.01, C=30.)

K-Fold validation:
X train: (30000, 16)
y train: (30000,)
X test: (20000, 16)
y test: (20000,)

Supported vectors length: (5819, 16)
Dual coef. length: (1, 5819)

Score k-fold validation: 0.913350

Vector 1 Labeled: 0.0 Model prediction: [ 0.]
Decision function: [[-3.46318592]]
[0]

Model for y3 var

Training SVM for y3 label (gamma=0.001, C=50.)

K-Fold validation:
X train: (30000, 16)
y train: (30000,)
X test: (20000, 16)
y test: (20000,)


Supported vectors length: (3638, 16)
Dual coef. length: (1, 3638)

Score k-fold validation: 0.949350

Vector 1 Labeled: 0.0 Model prediction: [ 0.]
Decision function: [[-2.67298744]]
[0]

R - Iterative approach

Decision function from the scikit-learn package.

# Get value from decision function (from support vector and dual coef)
value <- 0
for (i in 2:dim(support_vectors_)[1]) { 
    value <- value + dual_coef_[i] * norm(as.matrix(vector - support_vectors_[i,])))
                     
}

R - Mapreduce approach

Using the above decision function, we apply calculate the distance of each vector to each support vector applying the dual coef. In the reduce step, we summarize the previous part from each vector.