-
Notifications
You must be signed in to change notification settings - Fork 3
/
3_CandidateElimination.py
36 lines (29 loc) · 1.03 KB
/
3_CandidateElimination.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
32
33
34
35
36
import csv, numpy as np,copy
data=np.array(list(csv.reader(open("3.csv","r"))))
concept = np.array(data[:,:-1])
target = np.array(data[:,-1])
for i in range(len(target)):
if(target[i] == "Y"):
specific = concept[i]
break
generic = [["?" for i in range(len(specific))] for i in range(len(specific))]
for i in range(len(target)):
if(target[i] == "Y"):
for j in range(len(specific)):
if(specific[j] != concept[i][j]):
specific[j] = "?"
generic[j][j] = "?"
else:
for j in range(len(specific)):
if specific[j] != concept[i][j]:
generic[j][j] = specific[j]
else:
generic[j][j] = "?"
str=copy.copy(generic)
indices1=[i for i,val in enumerate(str) if val == ['?','?','?','?','?','?']]
for j in indices1:
str.remove(['?','?','?','?','?','?'])
print("G{} = {}".format(i, str))
print("S{} = {}".format(i, specific))
print("Final G = {}".format(str))
print("Final S = {}".format(specific))