# Simple machine learning example for kids by Giles Booth @blogmywiki # http://www.suppertime.co.uk/blogmywiki/2021/09/simple-machine-learning-abstraction/ # Flash to a micro:bit and open a serial console to play from microbit import * import music import random bonds = [5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0] human_wins = 0 machine_wins = 0 turns = 0 wrong_tune = ["A2", "F2"] print() print('Train a machine to learn its number bonds to 10!') print('If I give you a random number, you tell me what you add to it to make 10') while True: number = random.randint(0,9) print() print('Current data set:') print(bonds) # added so you can see it improve its data set print('Number is ' + str(number)) print('Machine says the bond to 10 is ' + str(round(bonds[number]))) if number + round(bonds[number]) == 10: print('Machine is right!') display.show(Image.YES) music.play(music.POWER_UP) display.clear() machine_wins += 1 else: print('Machine is wrong, more training data needed.') display.show(Image.NO) music.play(wrong_tune) display.clear() human_answer = input('Give me your answer 1-10: ') if human_answer == 'quit': break elif human_answer == 'reset': human_wins = 0 machine_wins = 0 turns = 0 elif number + int(human_answer) == 10: print('Correct!') display.show(Image.YES) music.play(music.POWER_UP) display.clear() human_wins += 1 bonds[number] = (bonds[number] + int(human_answer)) / 2 else: print('Wrong! Are you trying to mislead a poor machine?') display.show(Image.NO) music.play(wrong_tune) display.clear() turns += 1 print() print('Human score ' + str(human_wins) + ' out of ' + str(turns)) print('Machine score ' + str(machine_wins) + ' out of ' + str(turns)) sleep(3000)