澎湃Logo
下载客户端

登录

  • +1

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

2021-07-08 07:52
来源:澎湃新闻·澎湃号·湃客
字号

机器之心报道

编辑:陈萍

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

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

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

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

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

项目地址:https://github.com/programarivm/chess-data

项目介绍

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

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

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

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

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

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

示例展示

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

$ php cli/db-create.php

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

$ time php cli/db-seed.php data/players✗ 15 games did not pass the validation.✓ 3234 games out of a total of 3249 are OK.✓ 1353 games out of a total of 1353 are OK.✓ 1900 games out of a total of 1900 are OK.✓ 776 games out of a total of 776 are OK.✗ 1 games did not pass the validation.✓ 1660 games out of a total of 1661 are OK.✗ 4 games did not pass the validation....✓ 1124 games out of a total of 1124 are OK.✓ 265 games out of a total of 265 are OK.✗ 1 games did not pass the validation.✓ 2099 games out of a total of 2100 are OK.

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

mysql> select count(*) from games;+----------+| count(*) |+----------+| 402658 |+----------+1 row in set (0,23 sec)

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

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

参考链接:

https://ai.plainenglish.io/preparing-a-dataset-for-machine-learning-with-php-fd68dd85187e

WAIC AI开发者论坛:后深度学习的AI时代

7月10日,AI开发者论坛将在上海世博中心举办,设有4场 Keynote、9场主题演讲、2021年云帆奖颁奖典礼等环节,点击下方图片查看日程与报名方式。

WAIC 隐私计算交流会

7月8日,WAIC隐私计算交流会将在上海世博展览馆举办,内场设置有 Keynote、思辨、论文分享三个活动模块,外场还设有开放式论文 Poster 专区。届时将邀请多位领域内顶级专家、论文作者与现场参会观众围绕安全多方计算、数据安全、联邦学习、差分隐私等前沿议题展开交流。点击下方图片查看日程与报名方式。

WAIC 智慧出行论坛

7月10日,WAIC智慧出行论坛将在上海世博展览馆举办。本次论坛以「智行·破界」为主题,现场将汇集数家第一梯队企业的代表人物,他们将根据业界最热门的议题讲述自身观点。点击下方图片查看日程与报名方式。

WAIC 黑客松

7月9日,黑客松将在上海张江人工智能岛开始现场比赛。MindSpore开源社区设有3道赛题,每个赛题均设一二三等奖,分别奖励现金5000元、3000元、2000元。点击下方图片查看赛题详情与报名方式。

© THE END

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

原标题:《用「最好的语言」PHP,做一个机器学习数据集》

阅读原文

    本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。

    +1
    收藏
    我要举报

            扫码下载澎湃新闻客户端

            沪ICP备14003370号

            沪公网安备31010602000299号

            互联网新闻信息服务许可证:31120170006

            增值电信业务经营许可证:沪B2-2017116

            © 2014-2024 上海东方报业有限公司

            反馈