コード例 #1
0
    indexlist = []

    for i in range(len(data_example)):
        indexlist.append(i)

    random.shuffle(indexlist)
    size = len(indexlist)
    for k in range(10):
        train = []
        test = []
        for i in range(size):
            if (i >= k * size / 10) and (i <= (k + 1) * size / 10):
                test.append(indexlist[i])
            else:
                train.append(indexlist[i])
        mynode = decision.makesubtree(data_example, ma, 'bot', train)
        result = decision.judgeData(mynode, data_example, ma, 'bot', test)
        tp = result[0]
        fp = result[1]
        fn = result[2]
        tn = result[3]
        accuracy += (tp + tn) / len(test)
        precise = tp / (tp + fp)
        recal = tp / (tp + fn)
        precision += precise
        recall += recal
        f1score += 2 * (1 / ((1 / precise) + (1 / recal)))
print("accuracy:", accuracy / 50)
print("precision:", precision / 50)
print("recall:", recall / 50)
print("f1score:", f1score / 50)
コード例 #2
0
for i in range(len(data_trai)):
    row = []
    for name in ma:
        row.append(data_trai[name][i])
    thedatatr.append(row)
    targettr.append(data_trai['bot'][i])
for i in range(len(data_test)):
    row = []
    for name in ma:
        row.append(data_test[name][i])
    thedatate.append(row)

for k in range(1):
    model = mybayes.buildmodel(data_trai, ma, 'bot', trainindexlist)
    result1 = model.getResult(data_test, ma, 'bot', testindexlist)
    mynode = decision.makesubtree(data_trai, ma, 'bot', trainindexlist)
    result2 = decision.getResult(mynode, data_test, ma, 'bot', testindexlist)
    logreg = LogisticRegression(C=1000).fit(thedatatr, targettr)
    thetar = logreg.predict(thedatate)
    result = []
    for i in range(len(result1)):
        t = result1[i] + result2[i] + thetar[i]
        if t >= 2:
            result.append(1)
        else:
            result.append(0)
    accuracy = 0.0
    precision = 0.0
    recall = 0.0
    f1score = 0.0
    tp = 0