用最好的语言PHP,做一个机器学习数

北京扁平疣医院专家 https://m-mip.39.net/news/mipso_8813087.html

机器之心报道

编辑:陈萍

使用PHP为机器学习准备数据集。

机器学习是一门通过数据来教计算机解决问题的科学,而不是编写序列算法,让指令逐个执行。

一般来说,数据准备是机器学习的首要任务,通常包括两个子步骤:创建数据集和转换数据。

如果想构建一个类似人类的AI象棋游戏,首要问题就是创建一个数据库,并且该数据库需要尽可能多的包含象棋大师玩游戏的数据。通常情况下,大多数人使用Python构建数据集,并且在一定程度上认为Python是数据科学的唯一编程语言。

但是,项目作者JordiBassaganas打破流行观点(该观点认为Python是世界上唯一用于数据科学的编程语言),不使用Python,而是在构建数据中使用了MySQL、PHP和RubixML,其中RubixML是一个高级机器学习库,可构建使用PHP语言从数据中学习的程序。

项目介绍

该项目是一组命令行界面(Command-LineInterface,CLI)工具,可帮助管理PGN游戏中的象棋数据库,此外,该工具还可以进行数据准备、可视化数据和使用RubixML训练监督模型。

所谓的PGN就是「可移植式棋局记号法」(PortableGameNotation),是一种以ASCII文本文件表示国际象棋棋局数据的标准设定。PGN设计成使人们很容易进行阅读和编写,电脑程序很容易进行解析和产生。定义和传播PGN的目的,是为了促进公开对局数据的共享交流,包括来自全世界的棋手(不管有无组织)、出版人和电脑国际象棋研究的。

接下来真正的问题是:应该给计算机提供哪些示例以使机器学习变得更容易?

这个数据准备存储库主要任务是将数百万个象棋游戏加载到SQL数据库中。作者从PGNMentor中下载了PGN文件,PGNMentor是一个用于国际象棋研究的软件应用程序,同时还提供了一个包含数百万个游戏的文件集合,并将这些文件复制到programarivm/chess-data/data/players文件夹中。

其实使用PHP为机器学习准备数据集并没有什么简单方法。但实现过程涉及到不同的技术,这是关于对处理问题的理解、收集和过滤数据的最好实践过程

例如,当涉及国际象棋时,首先你需要过滤和验证游戏,这意味着要删除那些语法上无效或包含错误的游戏。cli/pgn-validate.php命令查找PGN文件中错误,这条命令在将信息加载到数据库时会被广泛使用。

示例展示

下面展示了使用该项目设置和运行MySQL国际象棋数据库,第一步是创建如下所示的象棋数据库:

phpcli/db-create.php

然后,按照下面的描述,games表将被植入有效数据。

timephpcli/db-seed.phpdata/players

15gamesdidnotpassthevalidation.

gamesoutofatotalofareOK.

gamesoutofatotalofareOK.

gamesoutofatotalofareOK.

gamesoutofatotalofareOK.

1gamesdidnotpassthevalidation.

gamesoutofatotalofareOK.

4gamesdidnotpassthevalidation.

gamesoutofatotalofareOK.

gamesoutofatotalofareOK.

1gamesdidnotpassthevalidation.

gamesoutofatotalofareOK.

cli/db-seed.php命令需要大约40分钟才能加载大约,个游戏。

mysqlselectcount(*)fromgames;

+----------+

count(*)

+----------+

408

+----------+

1rowinset(0,23sec)

值得一提的是,所有这些都是用PHP语言实现的!

建立好国际象棋数据库后,就可以为机器学习算法准备数据。在接下来的文章中,项目作者将详细说明如何通过使用多层感知器分类器和该数据库,进行国际象棋防守、战术等的开发。




转载请注明:http://www.aierlanlan.com/tzrz/2096.html