language-agnostic - 您将使用哪种学习算法来构建人类解决给定数独情况需要多长时间的模型?

标签 language-agnostic machine-learning neural-network sudoku

我在机器学习、模式识别、数据挖掘等及其底层理论和系统方面没有太多经验。

我想开发一个人工模型来计算人类在给定的数独谜题中采取行动所需的时间。

因此,我正在寻找的机器学习过程的输出是一个模型,该模型可以预测目标人类在给定数独情况下采取行动需要多长时间。

相同的输入并不总是映射到相同的结果。在相同的情况下,人类采取行动所需的时间不同,但我的假设是,最终的概率分布存在某种趋势。 (我有根据的猜测是,这是正常的。)

我对影响分布的因素(如#empty slot)有一些想法,但最好让系统来找出这些模式。请注意,我对模式不感兴趣,只对模型感兴趣。

通过运行数独谜题并测量移动所需的时间,我可以轻松生成示例和测试数据。

您建议为此使用哪种学习算法?

我正在考虑神经网络,但我不确定它们是否可以具有为相同输入提供加权随机结果的所需属性。

最佳答案

如果我理解正确的话,你有一个长度为 81 的输入向量,如果正方形被填充,则包含 1,否则包含 0。您想要学习一个返回概率分布的函数,该概率分布模拟人类对该棋盘位置的响应时间。

我的第一 react 是这是一个回归问题,您应该尝试简单的线性回归。这不会为您提供响应时间的分布,而是为您提供单个“最佳猜测”响应时间。

我不清楚为什么要对响应时间的分布进行建模。但是,如果您确实想要输出分布,那么听起来您想查看贝叶斯方法。我并不是贝叶斯推理方面的专家,因此我无法为您提供更多帮助。

但是,我并不认为您的方法会起作用,因为我同意您对诸如空槽数量之类的重要功能的直觉。还有其他明显的特征,例如每行/列的空槽数可能很重要。将这些特征明确地放入您的表示中可能比期望学习算法自行推断出类似的东西要成功得多。

关于language-agnostic - 您将使用哪种学习算法来构建人类解决给定数独情况需要多长时间的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1810248/

相关文章:

python - ValueError : Number of features of the model must match the input. 随机森林中模型 n_features 为 10,输入 n_features 为 7

c++ - 让一个简单的神经网络在 C++ 中从头开始工作

r - R 中的神经网络 : what are the difference between stepmax and rep parameters?

python - scikit RandomForestClassifier - 真实结果与预测分数不匹配

python - 将变量添加到 Keras/TensorFlow CNN 密集层

python - Neurolab 中的 Levenberg-Marquardt 算法替代方案

algorithm - 链表在恒定时间内跟踪最小值?

language-agnostic - 不需要声明变量类型的语言的质量是否是弱类型或动态类型的示例

c# - 如何使用下一个和上一个节点引用有效地对节点列表进行排序?

algorithm - wget: 拖网100000000个样本空间,最多返回100个结果