Untitled
unknown
plain_text
2 years ago
1.1 kB
6
Indexable
import numpy as np
class Perceptron:
def __init__(self, input_size, learning_rate=0.1):
self.weights = np.zeros(input_size + 1)
self.learning_rate = learning_rate
def predict(self, inputs):
summation = np.dot(inputs, self.weights[1:]) + self.weights[0]
return 1 if summation > 0 else 0
def train(self, training_inputs, labels, epochs):
for _ in range(epochs):
for inputs, label in zip(training_inputs, labels):
prediction = self.predict(inputs)
self.weights[1:] += self.learning_rate * (label - prediction) * inputs
self.weights[0] += self.learning_rate * (label - prediction)
# Example usage:
if __name__ == "__main__":
training_inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
labels = np.array([0, 0, 0, 1])
perceptron = Perceptron(2)
perceptron.train(training_inputs, labels, epochs=100)
test_inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
for inputs in test_inputs:
print(f"Input: {inputs}, Predicted Output: {perceptron.predict(inputs)}")
Editor is loading...
Leave a Comment