Aim: Implement and demonstrate the FIND-S algorithm for finding the
most specific hypothesis based on a given set of training data samples. Read
the training data from a .CSV file.
Program:-
Program:
import csv
num_attributes = 6 a = [ ]
print("\n The Given Training Data Set \n")
with open('enjoysport.csv', 'r') as csvfile: reader = csv.reader(csvfile)
for row in reader: a.append (row) print(row)
print("\n The initial value of hypothesis: ") hypothesis = ['0'] * num_attributes print(hypothesis)
for j in range(0,num_attributes): hypothesis[j] = a[0][j];
print("\n Find S: Finding a Maximally Specific Hypothesis\n") for i in range(0,len(a)):
if a[i][num_attributes]=='yes':
for j in range(0,num_attributes): if a[i][j]!=hypothesis[j]:
hypothesis[j]='?' else :
hypothesis[j]= a[i][j]
print(" For Training instance No:{0} the hypothesis is ".format(i),hypothesis)
print("\n The Maximally Specific Hypothesis for a given Training Examples :\n")
print(hypothesis)
Data Set:
sunny warm normal strong warm same yes
sunny warm high strong warm same yes
rainy cold high strong warm change no
sunny warm high strong cool change yes
Output:
The Given Training Data Set
['sunny', 'warm', 'normal', 'strong', 'warm', 'same', 'yes']
['sunny', 'warm', 'high', 'strong', 'warm', 'same', 'yes']
['rainy', 'cold', 'high', 'strong', 'warm', 'change', 'no']
['sunny', 'warm', 'high', 'strong', 'cool', 'change', 'yes']
The initial value of hypothesis:
['0', '0', '0', '0', '0', '0']
Find S: Finding a Maximally Specific Hypothesis For Training Example No:0 the hypothesis is
['sunny', 'warm', 'normal', 'strong', 'warm', 'same']
For Training Example No:1 the hypothesis is ['sunny', 'warm', '?', 'strong', 'warm', 'same']
For Training Example No:2 the hypothesis is 'sunny', 'warm', '?', 'strong', 'warm', 'same']
For Training Example No:3 the hypothesis is 'sunny', 'warm', '?', 'strong', '?', '?']
The Maximally Specific Hypothesis for a given Training Examples:
['sunny', 'warm', '?', 'strong', '?', '?']