0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用PHP做一个机器学习数据集

奈因PCB电路板设计 来源:机器之心 作者:机器之心 2021-08-25 11:09 次阅读

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

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

如果想构建一个类似人类的 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 语言实现的!

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

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26487

    浏览量

    264161
  • PHP
    PHP
    +关注

    关注

    0

    文章

    452

    浏览量

    26466
  • 机器学习
    +关注

    关注

    66

    文章

    8136

    浏览量

    130667

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

文章出处:【微信号:pcbgood,微信公众号:奈因PCB电路板设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何用小安派-Eyes-S1做一个电子木鱼?

    2024年的第一篇教程来了,本篇学习如何添加LVGL事件,并制作完成一个电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安派-Eyes-S1做一个电子木鱼。
    的头像 发表于 01-13 15:18 608次阅读
    如<b class='flag-5'>何用</b>小安派-Eyes-S1<b class='flag-5'>做一个</b>电子木鱼?

    php的特点有哪些

    ,如今已经成为最流行的Web开发语言之一。以下将详细介绍PHP的特点。 1.易学易用:PHP语法简单易懂,与其他编程语言相比,学习和使用PHP非常容易。它使用的是C语言的风格,所以对于
    的头像 发表于 12-04 15:50 595次阅读

    请问如何用stm32做一个FFT变换?

    请问如何用stm32做一个FFT变换?官方的库有FFT函数吗
    发表于 11-03 08:16

    请问如何用51单片机做一个电容测量仪?

    何用51单片机做一个电容测量仪?
    发表于 10-20 06:46

    机器学习数据挖掘方法和应用

    机器学习数据挖掘方法和应用(经典)
    发表于 09-26 07:56

    基于机器学习的车位状态预测方法

    本发明公开种基于机器学习的车位状态预测方法,基于历史数据,建立回归决策树模型进而构建改进决策树模型,对每个区域的停车率进行预测,基于停车率和用户喜好度为用户推荐相应的停车区域,获取相
    发表于 09-21 07:24

    机器学习为什么需要数据预处理

    数据预处理是准备原始数据并使其适合机器学习模型的过程。这是创建机器学习模型的第一步也是关键的一步
    的头像 发表于 08-24 09:20 1176次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>为什么需要<b class='flag-5'>数据</b>预处理

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?
    的头像 发表于 08-17 16:30 1417次阅读

    机器学习数据挖掘的区别 机器学习数据挖掘的关系

    机器学习数据挖掘的区别 , 机器学习数据挖掘的关系 机器
    的头像 发表于 08-17 16:30 1546次阅读

    数据挖掘和机器学习有什么关系

    数据挖掘和机器学习有什么关系 数据挖掘和机器学习是两个不同的概念,但它们有一些重要的相似之处。这
    的头像 发表于 08-17 16:29 2084次阅读

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习
    的头像 发表于 08-17 16:29 893次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器学习算法优缺点?
    的头像 发表于 08-17 16:11 1109次阅读

    机器学习和深度学习的区别

    的区别。 1. 机器学习 机器学习是指通过数据使机器能够自动地
    的头像 发表于 08-17 16:11 3419次阅读

    机器学习数据挖掘的对比与区别

    机器学习数据挖掘的对比与区别  机器学习数据挖掘是当前互联网行业中最热门的领域之一。虽然它们
    的头像 发表于 08-17 16:11 1171次阅读

    创建边缘机器学习系统

    。图像识别是项相当复杂的机器学习任务,通常 需要比关键字识别更高的性能。 该指南也适用于想要为高端智能设备创建SoC的系统设计人员设备,比如智能手机。 具体来说,该指南解释道: •为什么要为这个
    发表于 08-02 11:02