Python library for dot product classification

Question:

I have the following python pyseudo-code:

A1 = "101000001111"
A2 = "110000010101"
B2 = "000111010000"
B2 = "000110100000"
# TODO get X = [x1, x2, ..., x12]
assert(A1 * X > .5)
assert(A2 * X > .5)
assert(B1 * X < .5)
assert(B2 * X < .5)

So this will basically be a regression based classification.

0.5 is my threshold but how to get X?

Asked By: Ohumeronen

||

Answers:

  1. You need to find 12 coefficients. You can try to use LogisticRegression or LinearRegression

  2. When you have linear coefficients you can use np.dot or @ operator to get a dot product.

Example:

import numpy as np
from sklearn.linear_model import LogisticRegression

A1 = "101000001111"
A2 = "110000010101"
B1 = "000111010000"
B2 = "000110100000"

A1 = np.array(list(A1), np.float32)
A2 = np.array(list(A2), np.float32)
B1 = np.array(list(B1), np.float32)
B2 = np.array(list(B2), np.float32)

X = np.array((A1, A2, B1, B2))
y = np.array([1, 1, 0, 0])
w = model = LogisticRegression(fit_intercept=False).fit(X, y).coef_.flatten()

print(A1.dot(w))
print(A2.dot(w))
print(B1.dot(w))
print(B2.dot(w))

assert A1 @ w > 0.5
assert A2 @ w > 0.5
assert B1 @ w < 0.5
assert B2 @ w < 0.5

Results:

1.7993630995882384
1.5032155788245702
-1.0190643734998346
-1.0385501901808816
Answered By: u1234x1234