Encoders

I have implemented Scalar, Category and MultiEncoder

Here is how to use them :

import sys
sys.path.extend(['../../ilib', '../../ilib/encoders', '../../ilib/modules'])
from scalar_encoder import *
from category_encoder import *
from multi_encoder import *

Scalar encoder

se = ScalarEncoder(minimum=0,maximum=100,vsize=100,spaOnbits=0.1)
se.encode(55)
49:50:51:52:53:54:55:56:57:58
se.decode(se.encode(55))
55.000
print se.info
> Scalar encoder -----
min-max/range : 0-100/100
buckets,width,n : 90,10,100
resolution : 1.11, 0.0111%
sparsity : 0.10, spa_nbits:10

Category encoder

cat = CategoryEncoder(ncats=5, vsize=50)
cat.encode(3)
30:31:32:33:34:35:36:37:38:39
se.decode(se.encode(3))
3.000
print cat.info
> Category encoder -----
Num of categories : 5
Num of bits : 50
sparsity : 0.20, spa_nbits:10

Multi encoder

multi = MultiEncoder(encoders=[se,cat])
multi.encode([55,3])
49:50:51:52:53:54:55:56:57:58:80:81:82:83:84:85:86:87:88:89

NotImplemented : multi.decode(multi.encode([55,3]))

print multi.info
=====================================
> Scalar encoder -----
min-max/range : 0-100/100
buckets,width,n : 90,10,100
resolution : 1.11, 0.0111%
sparsity : 0.10, spa_nbits:10
-----------------------------------
> Category encoder -----
Num of categories : 5
Num of bits : 50
sparsity : 0.20, spa_nbits:10
-----------------------------------
Total number of bits : 150
Sparsity : 0.133333333333
Sparse bits : 20