コード例 #1
0
def get_confusion_matrix(model, test_images, test_labels):
    """ 用测试集评估模型,得到混淆矩阵
    Args:
        model (NearestNeighbor): 训练好的模型
        test_images (list[np.ndarray]): 测试集图片
        test_labels (list[int]): 测试集标签
    Returns:
        np.array: 混淆矩阵
    """
    pred_labels = []
    for i, image in enumerate(test_images):
        pred_labels.append(predict(model, image))

        if (i + 1) % 10 == 0:
            print(i)

    return ConfMat(test_labels, pred_labels)
コード例 #2
0
ファイル: ADM_example_02.py プロジェクト: balqui/PyDaMelo
from data import Data
from naivebayes import NaiveBayes
from maxapost import MaxAPost
from confmat import ConfMat

filename = "datasets/weatherNominal.td"
## filename = "datasets/titanic.td"
## filename = "datasets/cmc.td"
## filename = "datasets/german.td"
## filename = "datasets/markbasksex.td"

d = Data(filename)
d.report()

## pr = NaiveBayes(d)
pr = MaxAPost(d)
pr.train()
## pr.show()

cm = ConfMat(pr.clsscnts)
for (v, c_true) in d.test_set:
    c_pred = pr.predict(v)[0]
    #        print(v, c_pred, "( true class:", c_true, ")")
    cm.mat[c_pred, c_true] += 1

# pr.show()
cm.report()
コード例 #3
0
from naivebayes import NaiveBayes
from maxapost import MaxAPost
from data import Data

#filename = "ds/weatherNominalTr.txt"
filename = "ds/titanicTr.txt"

d = Data(filename, 75)

prmap = MaxAPost(d)
prmap.train()

prnb = NaiveBayes(d)
prnb.train()

cmmap = ConfMat(prmap.clsscnts)
cmnb = ConfMat(prnb.clsscnts)
comparing = set([])
for (v, c_true) in d.test_set:
    c_pred_map = tuple(prmap.predict(v))
    c_pred_nb = tuple(prnb.predict(v))
    if len(c_pred_map) and len(c_pred_nb):
        warn = (c_pred_map[0] != c_pred_nb[0])
        cmmap.mat[c_pred_map[0], c_true] += 1
        cmnb.mat[c_pred_nb[0], c_true] += 1
    else:
        warn = True
    if warn:
        comparing.add((v, c_true, c_pred_map, c_pred_nb))

print