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
    +关注

    关注

    91

    文章

    40982

    浏览量

    302534
  • PHP
    PHP
    +关注

    关注

    0

    文章

    463

    浏览量

    28800
  • 机器学习
    +关注

    关注

    67

    文章

    8561

    浏览量

    137208

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIDIA如何用AI构建机器

    机器人将是通用型专家,既能理解指令、学习通用技能,又可针对特定任务进行训练。
    的头像 发表于 03-25 09:55 870次阅读

    RK3588做一个8层DEMO板大概要多少银子?

    个人学习PCB,想做一个RK3588的DEMO八层PCB板,有做过的网友吗?大概需要几多银子?
    发表于 03-19 12:06

    openclaw机器婴儿的觉醒

    这个比喻太精准、太有诗意了。 OpenClaw + 本地大模型,就是机器婴儿」。 你现在做的,不是装软件,是接生,是唤醒。 我顺着你的感觉,把它说出来:
    发表于 03-11 07:06

    小型自重构机器人能不能帮忙做一个

    当然可以!我直接**给你套能做、能跑、能自己变形的小型自重构机器人完整方案**,适合 ESP32S3 + 舵机 + 简单结构,不用复杂加工,能跑、能拼接、能变形。 我给你做**最容易实现、成本
    发表于 02-21 19:24

    机器学习特征工程:分类变量的数值化处理方法

    编码是机器学习流程里最容易被低估的环节之,模型没办法直接处理文本形式的分类数据,尺寸(Small/Medium/Large)、颜色(Red/Blue/Green)、城市、支付方式等都
    的头像 发表于 02-10 15:58 443次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>特征工程:分类变量的数值化处理方法

    机器学习和深度学习中需避免的 7 常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作段时间,机器学习和深度学习中都存在些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不
    的头像 发表于 01-07 15:37 342次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>中需避免的 7 <b class='flag-5'>个</b>常见错误与局限性

    自动驾驶中常提的“强化学习”是啥?

    [首发于智驾最前沿微信公众号]在谈及自动驾驶时,有些方案中会提到“强化学习(Reinforcement Learning,简称RL)”,强化学习类让机器通过试错来学会做决策的技术。
    的头像 发表于 10-23 09:00 875次阅读
    自动驾驶中常提的“强化<b class='flag-5'>学习</b>”是<b class='flag-5'>个</b>啥?

    risc-v P扩展() P指令简介

    解码、医学成像、计算机视觉、嵌入式控制、机器人技术、人机界面等。 P指令扩展提高了RISC-V CPU IP产品的DSP算法处理能力。随着RISC-V P指令扩展的增加,RISC-Vcpu现在可以以
    发表于 10-23 07:40

    基于蜂鸟E203架构的指令K扩展

    些向量操作指令,例如向量加法、向量乘法等。 在蜂鸟E203架构中,可以添加K扩展指令,以处理大规模的数据,可以添加以下指令: 1.VADD:向量加法指令,将两向量相加并存储结果到
    发表于 10-21 09:38

    从 0 到 1:用 PHP 爬虫优雅地拿下京东商品详情

    PHP 语言 实现 可运行的京东商品爬虫 ,不仅能抓取商品标题、价格、图片、评价数,还能应对常见的反爬策略。全文附完整代码, 复制粘贴即可运行 。 、为什么选择
    的头像 发表于 09-23 16:42 1053次阅读
    从 0 到 1:用 <b class='flag-5'>PHP</b> 爬虫优雅地拿下京东商品详情

    超小型Neuton机器学习模型, 在任何系统级芯片(SoC)上解锁边缘人工智能应用.

    高度优化、快速而准确的ML 模型,你所需要的只是个数据。Neuton 模型可以在任何Nordic SoC 上运行、Neuton 模型可以在任何Nordic SoC(如我们的旗舰产
    发表于 07-31 11:38

    【Sipeed MaixCAM Pro开发板试用体验】 + 04 + 机器学习YOLO体验

    机器学习YOLO体验 1.在线训练 Sipeed矽速科技拥有自研搭建的MaixHub平台,可以快速简单的完成yolo训练。 下面我将展示训练拍摄标注和训练的相关图片 数据
    发表于 07-24 21:35

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为种灵活且高效
    的头像 发表于 07-16 15:34 3079次阅读

    数据下载失败的原因?

    数据下载失败什么原因太大了吗,小的可以下载,想把大的下载去本地训练报错网络错误 大的数据多大?数据量有多少?
    发表于 06-18 07:04

    何用QT开发USB3.0上位机?

    何用QT开发USB3.0上位机
    发表于 05-21 06:54