我有多个类的dict
概率:
class 1: 0.1, 0.3, 0.6, 0.7
class 2: 0.3, 0.1, 0.4, 0.5
class 3: 0.3, 0.2, 0.8, 0.1
我有一个测试功能矩阵(例如在这种情况下只有4个)我想要识别正确的类。我已将此矩阵转换为布尔值,对于每个样本,我需要迭代所有类并保留True
的概率,或者如果不是则找到补码。
例如:
T, T, F, T
应该返回
class 1: 0.1, 0.3, 0.4, 0.7
class 2: 0.3, 0.1, 0.6, 0.5
class 3: 0.3, 0.2, 0.2, 0.1
我已经编写了一些伪代码(我知道非常unpythonic),但我正在努力编写能满足我要求的代码。
For each row in test:
for each row in class:
if item in test == T
append item in class (to some np.array)
else:
append (1 - item in class) (to some np.array)
append some np.array to some matrix
非常感谢任何帮助。感谢
这是我执行上述操作的代码。我意识到我甚至无法排到[i] ......这是非常不完整的,我还有更多要写的东西。
def NB_predict(llhood, priors, X_test):
X_test_b = np.array(X_test, dtype = bool)
#init a temp holder for calculations
temp = np.zeros(X_test.shape[1])
for row in X_test:
mat = np.zeros((len(priors),X_test.shape[1]))
for cls, ll_probs in llhood.items():
temp = np.zeros(X_test.shape[1])
for i in np.arange(0, row):
if row[i] == True:
np.append(temp, ll_probs[i])
else: np.append(temp, (1-ll_probs[i]))
np.append(mat, temp)
return mat