一个机器学习的小栗子

有个游戏叫做 Fizz Buzz,游戏规则大概是酱的,从1开始数到100,如果被3整除喊 Fizz,如果被5整除喊 Buzz,如果同时被3和5整除就喊 FizzBuzz,否则直接喊数字。

好了,正常程序猿应该是这样用代码(这里以 Python 为例子)实现的:

result = []
for i in range(1,101):
  if i % 15 == 0:
    result.append('FizzBuzz')
  else if i % 3 == 0:
    result.append('Fizz')
  else if i % 5 == 0:
    result.append('Buzz')
  else:
    result.append(str(i))
print(''.join(result))

那么如果用机器学习的思路怎么实现呢?

Step 1

首先,我们要准备一个数据集 X,这个数据集大概是酱的:

[1,2,3,4,...,]

然后准备一个标注集,这个标注集大概是酱的:

['Fizz','Buzz','FizzBuzz',idendtity]

Step 2

训练数据,拿什么训练数据呢,拿一堆输入输出实例(你找门口大妈,给她5元钱红包,让她给你填上),这堆输入输出实例大概是酱的:

[(1,1),(2,2),(6,Fizz),(15,FizzBuzz),(20,Buzz),...]

Step 3

从输入数据中提取特征,编写分类器。

结语

当然啦,这个栗子很好地向我们展示了用代码编程和用数据编程思路上的区别。

怎么着,你对这个栗子的机器学习实现感兴趣?好吧,大牛 Joel 已经实现了,用力戳:

  1. http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/
  2. https://github.com/joelgrus/fizz-buzz-tensorflow

你可能感兴趣的:(一个机器学习的小栗子)