import numpy as np import pandas as pd data = pd.read_csv('enjoysport.csv') concepts = np.array(data.iloc[:,0:-1]) print(concepts) target = np.array(data.iloc[:,-1]) print(target) def learn(concepts, target): specific_h = concepts[0].copy() print("initialization of specific_h and general_h") print(specific_h) general_h = [["?" for i in range(len(specific_h))] for i in range(len(specific_h))] print(general_h) for i, h in enumerate(concepts): print("For Loop Starts") if target[i] == "yes": print("If instance is Positive ") for x in range(len(specific_h)): if h[x]!= specific_h[x]: specific_h[x] ='?' general_h[x][x] ='?' if target[i] == "no": print("If instance is Negative ") for x in range(len(specific_h)): if h[x]!= specific_h[x]: general_h[x][x] = specific_h[x] else: general_h[x][x] = '?' print(" steps of Candidate Elimination Algorithm",i+1) print(specific_h) print(general_h) print("\n") print("\n") indices = [i for i, val in enumerate(general_h) if val == ['?', '?', '?', '?', '?', '?']] for i in indices: general_h.remove(['?', '?', '?', '?', '?', '?']) return specific_h, general_h s_final, g_final = learn(concepts, target) print("Final Specific_h:", s_final, sep="\n") print("Final General_h:", g_final, sep="\n")