### Navigation

- index
- modules |
- next |
- previous |
- NeuroLab v0.0.9 documentation »
- Examples »

# Competing layer (newc)

Use `neurolab.net.newc()`

    import neurolab as nl
    import numpy as np
    import numpy.random as rand

    # Create train samples
    centr = np.array([[0.2, 0.2], [0.4, 0.4], [0.7, 0.3], [0.2, 0.5]])
    rand_norm = 0.05 * rand.randn(100, 4, 2)

    inp = np.array([centr + r for r in rand_norm]).reshape(100*4, 2)
    rand.shuffle(inp)

    # Create net with 2 inputs and 4 neurons
    net = nl.net.newc([[0.0, 1.0],[0.0, 1.0]], 4)
    # train with rule: Conscience Winner Take All algoritm (CWTA)
    error = net.train(inp, epochs=200, show=20)

    # Plot results:
    import pylab as pl
    pl.title('Classification Problem')
    pl.subplot(211)
    pl.plot(error)
    pl.xlabel('Epoch number')
    pl.ylabel('error (default MAE)')

    w = net.layers[0].np['w']

    pl.subplot(212)
    pl.plot(inp[:,0], inp[:,1], '.', \
                    centr[:,0], centr[:, 1] , 'yv', \
                    w[:,0], w[:,1], 'p')
    pl.legend(['train samples', 'real centers', 'train centers'])
    pl.show()

Result: |

### Navigation

- index
- modules |
- next |
- previous |
- NeuroLab v0.0.9 documentation »
- Examples »