我有以下 python 偽代碼:
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)
所以這基本上是一個基于回歸的分類。
0.5 是我的門檻,但如何獲得 X?
uj5u.com熱心網友回復:
您需要找到 12 個系數。您可以嘗試使用
LogisticRegression或LinearRegression當您有線性系數時,您可以使用
np.dotor@運算子來獲得點積。
例子:
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
結果:
1.7993630995882384
1.5032155788245702
-1.0190643734998346
-1.0385501901808816
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520804.html
