-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
31 lines (30 loc) · 1.21 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import sys
from BuildDataset import makeTrainDataset,makeValisdationSet,makeTestDataset
from BuildDecisionTree import DT_Learn
from Pruning import postPruningTree
from Analisi import classify,accuracy
sys.setrecursionlimit(15000000)
lenghtTR = input('Definire la grandezza del training set in termini di esempi da 1 a 60000 : ')
dataset = makeTrainDataset(int(lenghtTR))
lenghtTS = input('Definire la grandezza del test set in termini di esempi da 1 a 10000 : ')
data , label = makeTestDataset(int(lenghtTS))
attr = []
for i in range(len(dataset[0])):
attr.append(i)
print('Inizio fase di training')
tree = DT_Learn(dataset,attr,attr[-1])
print ('Fase di training terminata')
print('si classificano i dati')
classification = classify(tree,data)
print('Fine classificazione dei dati')
a = accuracy(classification,label)
print( 'l accuratezza è : ' + str( a ) + '%' )
test , val = makeValisdationSet(int(lenghtTR))
print ('Inizio fase di pruning dell albero')
t = postPruningTree(val,attr[-1],a,tree)
print('Pruning terminato')
print('si classificano i dati')
classification = classify(tree,data)
print('Fine classificazione dei dati')
a = accuracy(classification,label)
print( 'l accuratezza dopo il pruning è : ' + str( a ) + '%' )