def p_vector(p):
    """
    VECTOR : VECTOR ',' TERM
           | TERM
    """
    if len(p) == 4:
        p[0] = p[1] + [p[3]]
    else:
        p[0] = Vector(values=[p[1]])
Beispiel #2
0
from random import randint, seed
from perceptron import PerceptronTrain, PerceptronTest
from structures import Vector, Scalar, Dataset
from utils import train_test_split, eval_predictions

seed(42)

v = Vector(randint(-100, 100), randint(-100, 100))
xs = [Vector(randint(-100, 100), randint(-100, 100)) for i in range(500)]
ys = [v * x * Scalar(randint(-1, 9)) for x in xs]
# generate vector-label pairs
data = [(vector, label) for vector, label in zip(xs, ys)]
# split data
train, test = train_test_split(data)
# retrieve labels only from a test set
y_true = [entry[1].sign() for entry in test]

# train
weights, bias = PerceptronTrain(train)
# apply perceptron to classify test set
preds = PerceptronTest(weights, bias, test)

# evaluate the performance
score = eval_predictions(preds, y_true)

print(score)
from structures import Scalar, Vector

x = Scalar(4.0)
y = Scalar(2.0)
a = Vector(1.0, 2.0, 3.0)
b = Vector(3.0, 4.0, 5.0)
# __add__
print(x+y)
# __sub__
print(x - y)
# __mul__ Scalar
print(x * y)
# __mul__ Vec
print(y * a)


# __truediv__
print(x / y)
# __rtruediv__
print(y.__rtruediv__(b))


# sign
print(x.sign())
print(Scalar(-7).sign())
print(Scalar(0).sign())


# Vector + Vector
print(a + b)
# magnitute