Untitled

 avatar
unknown
plain_text
a month ago
2.0 kB
8
Indexable
import numpy as np

class Perceptron:
    def __init__(self, input_size, learning_rate=0.1):
        self.weights = np.random.rand(input_size) * 2 - 1
        self.bias = np.random.rand() * 2 - 1
        self.learning_rate = learning_rate

    def activate(self, x):
        return 1 if x >= 0 else 0

    def predict(self, inputs):
        summation = np.dot(inputs, self.weights) + self.bias
        return self.activate(summation)

    def train(self, training_data, labels, epochs):
        for _ in range(epochs):
            for inputs, label in zip(training_data, labels):
                prediction = self.predict(inputs)
                error = label - prediction
                self.weights += self.learning_rate * error * inputs
                self.bias += self.learning_rate * error

def create_character_patterns():
    patterns = {
        'X': [
            1,0,0,0,1,
            0,1,0,1,0,
            0,0,1,0,0,
            0,1,0,1,0,
            1,0,0,0,1
        ],
        'O': [
            0,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,1,1,0
        ],
        'T': [
            1,1,1,1,1,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0
        ]
    }
    return patterns

def main():
    patterns = create_character_patterns()
    training_data = []
    labels = []
    
    for char, pattern in patterns.items():
        training_data.append(pattern)
        labels.append(1 if char == 'X' else 0)
    
    training_data = np.array(training_data)
    labels = np.array(labels)
    
    perceptron = Perceptron(input_size=25)
    perceptron.train(training_data, labels, epochs=100)
    
    print("Testing the perceptron:")
    for char, pattern in patterns.items():
        prediction = perceptron.predict(pattern)
        print(f"Character {char}: {'X' if prediction == 1 else 'Not X'}")

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment