pythonmachine-learningclassificationmultilabel-classification

Python library for dot product classification


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?


Solution

    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