我有以下python py413 o代码:
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?
发布于 2022-10-24 19:16:04
,
LinearRegression或LogisticRegression。
np.dot或@运算符得到一个点乘积。示例:
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.0385501901808816https://stackoverflow.com/questions/74184767
复制相似问题