3 ID3 Algorithm Updated
3 ID3 Algorithm Updated
1 Experiment 3
1
[12]: import math
def entropy(probs): #overall entropy
return sum([-prob*math.log(prob,2) for prob in probs])
[16]: attribute_names=list(df_tennis.columns)
attribute_names.remove('PlayTennis')
training_data = df_tennis.iloc[1:-4] # all but last thousand instances
test_data = df_tennis.iloc[-4:] # just the last thousand
2
train_tree = id3(training_data, 'PlayTennis', attribute_names)
print("\n\nThe Resultant Decision train_tree is :\n")
print(train_tree)
test_data['predicted2'] = test_data.
↪apply(classify,axis=1,args=(train_tree,'Yes') )
print ('\n\n Training the model for a few samples, and again predicting␣
↪\'Playtennis\' for remaining attribute')
↪index)) ))
Training the model for a few samples, and again predicting 'Playtennis' for
remaining attribute
The Accuracy for new trained data is : 0.75
C:\Users\Admin\AppData\Local\Temp\ipykernel_4940\150528394.py:8:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
[ ]: