機器之心報道編輯:陳萍使用 PHP 為機器學習準備資料集。機器學習是一門通過資料來教計算機解決問題的科學,而不是編寫序列演算法,讓指令逐個執行。一般來說,資料準備是機器學習
2021-07-07 03:03:51
機器之心報道
編輯:陳萍
使用 PHP 為機器學習準備資料集。
機器學習是一門通過資料來教計算機解決問題的科學,而不是編寫序列演算法,讓指令逐個執行。
一般來說,資料準備是機器學習的首要任務,通常包括兩個子步驟:創建資料集和轉換資料。
如果想構建一個類似人類的 AI 象棋遊戲,首要問題就是創建一個數據庫,並且該資料庫需要儘可能多的包含象棋大師玩遊戲的資料。通常情況下,大多數人使用 Python 構建資料集,並且在一定程度上認為 Python 是資料科學的唯一程式語言。
但是,項目作者 Jordi Bassaganas 打破流行觀點(該觀點認為 Python 是世界上唯一用於資料科學的程式語言),不使用 Python,而是在構建資料中使用了 MySQL、PHP 和 Rubix ML,其中 Rubix ML 是一個高階機器學習庫,可構建使用 PHP 語言從資料中學習的程式。
項目介紹
該項目是一組命令列介面(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 語言實現的!
建立好國際象棋資料庫後,就可以為機器學習演算法準備資料。在接下來的文章中,項目作者將詳細說明如何通過使用多層感知器分類器和該資料庫,進行國際象棋防守、戰術等的開發。
相關文章
機器之心報道編輯:陳萍使用 PHP 為機器學習準備資料集。機器學習是一門通過資料來教計算機解決問題的科學,而不是編寫序列演算法,讓指令逐個執行。一般來說,資料準備是機器學習
2021-07-07 03:03:51
博雯 發自 凹非寺量子位 報道 | 公眾號 QbitAI你能想象這是一座橋嗎?△圖源BLUA建築事務所每當行人通過時,它就一個仰臥起坐展開橋面:能同時承載20人,自身卻只有850公斤重,不到普
2021-07-07 03:03:19
計算機的世界,存在兩位重量級的人物,鍵盤和滑鼠。鍵盤成名絕技就是命令,而滑鼠雖無成名絕技,但招數繁多且易學好用著稱,深受使用者喜愛。今天鍵盤準備了3個可以代替滑鼠操作的命
2021-07-07 03:03:06
出品|開源中國文|局長TIOBE 公佈了 7 月程式語言排行榜,其 CEO Paul Jansen 宣佈並慶祝 TIOBE 指數誕生 20 週年。早在 2001 年,第一個 TIOBE 指數榜單作為 Paul 的個人愛好項
2021-07-07 03:02:51
什麼是分散式提到分散式,一定就會涉及到集中式,相比於集中式,分散式說明存在很多個節點,各個節點彼此協同工作。從分散式的概念可以看出,分散式強調彼此的協同,每個節點負責部分工
2021-07-07 03:02:44
iOS又曝嚴重漏洞早在前段時間,我們就釋出過一則關於 iOS 系統存在的 WiFi 程式碼漏洞,惡意使用者可以通過新建一個特殊程式碼命名的 WiFi 熱點,讓連結者的裝置網路癱瘓。具體操
2021-07-07 03:02:34