示例#1
0
文件: DDA.py 项目: kelvict/rnn-py
    def train(data, target, rbf, theta_plus=0.4, theta_minus=0.1, epochs=1):

        # criando primeiro neuronio rbf e o adicionando na rede
        first_neuron = RBFNeuron(centroid=data[0], label=target[0], radius=numpy.inf)
        first_neuron.set_weight(1.0)

        rbf.get_rbf_neurons().append(first_neuron)

        itered = 0

        # executando a quantidade de epocas desejada
        while itered < epochs:
            itered += 1
            print itered

            # para cada padrão...
            for pattern, label in zip(data[1 : len(data)], target[1 : len(target)]):

                label_rbfneurons = rbf.get_rbf_for_label(label)

                if len(label_rbfneurons) > 0:

                    exist_neuron = False
                    # só os neuronios do label
                    for rbf_neuron in label_rbfneurons:
                        if rbf_neuron.output(pattern) >= theta_plus:

                            exist_neuron = True

                            rbf_neuron.set_weight(rbf_neuron.get_weight() + 1.0)

                            break

                    if not exist_neuron:
                        DDA.__add_rbf_neuron(rbf, pattern, label, theta_minus)

                else:
                    DDA.__add_rbf_neuron(rbf, pattern, label, theta_minus)

                max_radius = DDA.__max_radius(rbf=rbf, rbf_centroid=pattern, label=label, theta_minus=theta_minus)

                # atribuindo o maior raio a todos os neuronios que não forem da classe label
                for other_label_rbf_neuron in rbf.get_rbf_for_not_label(label):
                    other_label_rbf_neuron.set_radius(max_radius)
示例#2
0
文件: DDA.py 项目: renanlf/rnn-py
 def train(data, target, rbf, theta_plus=.4, theta_minus=.1, epochs=1):
     
     #criando primeiro neuronio rbf e o adicionando na rede
     first_neuron = RBFNeuron(centroid=data[0], label=target[0], radius=numpy.inf)
     first_neuron.set_weight(1.0)
     
     rbf.get_rbf_neurons().append(first_neuron)
     
     itered = 0
     
     # executando a quantidade de epocas desejada
     while itered < epochs:
         itered += 1
         print itered            
         
         # para cada padrão...
         for pattern, label in zip(data[1:len(data)], target[1:len(target)]):
         
             label_rbfneurons = rbf.get_rbf_for_label(label)
             
             if len(label_rbfneurons) > 0 :
                 
                 exist_neuron = False 
                 #só os neuronios do label
                 for rbf_neuron in label_rbfneurons:
                     if rbf_neuron.output(pattern) >= theta_plus:
                         
                         exist_neuron = True
                         
                         rbf_neuron.set_weight(rbf_neuron.get_weight() + 1.0)
                         
                         break;
                         
                 if not exist_neuron:
                     DDA.__add_rbf_neuron(rbf, pattern, label, theta_minus)
                                 
             else:
                 DDA.__add_rbf_neuron(rbf, pattern, label, theta_minus)
             
             max_radius = DDA.__max_radius(rbf=rbf, rbf_centroid=pattern, label=label, theta_minus=theta_minus)
             
             #atribuindo o maior raio a todos os neuronios que não forem da classe label
             for other_label_rbf_neuron in rbf.get_rbf_for_not_label(label):
                 other_label_rbf_neuron.set_radius(max_radius)
示例#3
0
文件: DDA.py 项目: renanlf/rnn-py
 def __add_rbf_neuron(rbf, pattern, label, theta_minus):
     rbf_neuron = RBFNeuron(centroid=pattern, label=label)
                     
     rbf_neuron.set_weight(1.0)
                     
     max_radius = DDA.__max_radius(rbf, rbf_neuron.get_centroid(), label, theta_minus)
                             
     rbf_neuron.set_radius(max_radius)
                             
     rbf.get_rbf_neurons().append(rbf_neuron)
示例#4
0
文件: DDA.py 项目: kelvict/rnn-py
    def __add_rbf_neuron(rbf, pattern, label, theta_minus):
        rbf_neuron = RBFNeuron(centroid=pattern, label=label)

        rbf_neuron.set_weight(1.0)

        max_radius = DDA.__max_radius(rbf, rbf_neuron.get_centroid(), label, theta_minus)

        rbf_neuron.set_radius(max_radius)

        rbf.get_rbf_neurons().append(rbf_neuron)