用多类分类解决tic tac toe

时间:2016-10-28 22:31:06

标签: machine-learning

我正在尝试一种多类分类方法来解决tic tac toe问题。 我正在使用回归分类器来解决tic tac toe的单一步骤。为简单起见,计算机或分类器将永远是第二个玩家。我正在使用这样的数据集训练分类器。这是每次移动的预期输出和相应的特征向量。

y - X
2 - 0 0 0 | 0 X 0 | 0 0 0    # pay for 'O' at 2th location
1 - 0 0 O | 0 X 0 | 0 X 0    # pay for 'O' at 1st location
...

我已经分发了每个功能' O'或者' X'二进制3位编码。

0 => 0 0 1
O => 0 1 0
X => 1 0 0

我正在尝试100行数据集,它给我72%的准确率!但似乎没有更多的数据改善。 或者我应该以不同的方式表示特征向量?

修改:在上面的示例中澄清y值。 第一个例子。董事会成员:人类的第一步。

0 0 0
0 X 0
0 0 0

现在2 ==> 1D阵列的第二个索引。这将是一个很好的举动。 同样,下一个例子,1表示=>董事会一维代表的第一个职位。

1 个答案:

答案 0 :(得分:0)

我希望如果您将输出表示从0-8转换为一个热编码,您可能会得到更好的结果。这就是说,你将有9个输出节点,每个节点对应一个板上位置。你不是说y = 2,而是说:

y = [0 0 1 0 0 0 0 0 0 0]

在分类或评估时,选择具有最高值的节点作为预测移动。

另一个建议是,由于此状态空间很小,您希望耗尽所有可能的状态,并为每个状态生成y的目标标签。这是为了提供更多的训练样例(如@sascha所述)。

第三个建议是:您可能希望独立使用9个逻辑节点作为输出,因为这实际上是多标签问题。也就是说,在某些情况下,多个地点同样好。

最后一个建议是:电路板对称,因此您可以使用此属性来减少状态空间。