喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

在本文中,我們將使用機器學習來預測口袋妖怪大戰的勝利者。這將是令人興奮的,因為我們將預測我們從未見過的戰鬥的結果。如果您想繼續,那麼包含代碼的Jupyter notebook的鏈接就在這裡https://github.com/saurabhcharde/Pokemon_Battle_Winner_Prediction_using_ML。最後,你可以自由地展示給你的朋友,並通過預測口袋妖怪戰鬥結果成為一個神奇的口袋妖怪“巫師”!

介紹

我們都很熟悉流行的口袋妖怪系列,它成了我們的童年中愉快的一部分。最近,Pokemon Go遊戲又掀起了一波Pokemon的狂熱。現在我們面臨的問題是,考慮到每一個口袋妖怪的一些特徵,比如它的攻擊、防禦或速度值等,我們需要預測一場從未發生過的隨機口袋妖怪大戰的勝利者。聽起來很有趣!!

但在開始之前讓我們先熟悉一下背景。

機器學習

預測勝利者的困難在於,我們只知道少數的口袋妖怪,但事實上,目前世界上大約有800種口袋妖怪。現在為了預測一場戰鬥的勝利者,我們需要研究所有的800個口袋妖怪,觀察他們的動作,他們的特殊攻擊,他們的比賽等。簡而言之,有很多事情(數據)要考慮,因此將需要我們幾天來獲得足夠的知識,以正確預測一場戰鬥的勝利者。

這就是機器學習變得有用的地方。當你有很多數據,你需要做一些預測(預測今天的天氣,根據症狀預測疾病等),我們使用機器學習(非常簡單!)。

讓我們來看一看數據集


喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

數據集的前5行

數據集是關於特定主題(這裡是Pokemon)的大量數據的集合。這個數據集為我們提供了諸如生命點、攻擊、特殊防禦和神奇寶貝傳奇(1)與否(0)等信息。該圖顯示了前5個Pokemon的數據,但數據集中總共有800個Pokemon(意味著800行)。

現在已經看到了數據集,準備對其應用一些機器學習。

如何應用機器學習

構建完整的ML模型包括三個步驟:

  1. 建立分類器
  2. 訓練分類器
  3. 測試分類器

建立分類器

注意:分類器用於將數據分類或分離為類。給一張圖片,把它歸類為狗或貓。

為了從數據中學習,我們需要使用一些ML模型(分類器),這些模型通常是在給定的數據中發現模式的算法,以幫助它們進行預測(不明白?繼續讀下去)。

對於這個任務,我們將使用一個隨機森林(Random Forest)分類器,這是一個更好的決策樹分類器的實現。

瞭解他們

決策樹


喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

一種簡單的動物分類決策樹

假設我們的任務是根據動物的類型、身高、體重或速度等特徵來預測動物。使用決策樹可以很容易地對這個任務進行建模,如圖所示。因此,在決策樹的每個點上,我們提出一個問題,並根據答案將樹進一步劃分為子樹。這個過程一直重複,直到我們預測一隻動物。因此,給定一個數據集,決策樹分類器將在每個點上提出正確的問題(增加信息增益),以便以增加每個預測的可信度(提高結果的純度)的方式劃分樹。

時間複雜度=O(深度)

隨機森林

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

一個簡單的隨機森林可視化

由於森林是樹的集合,因此隨機森林分類器使用多個決策樹,最後將每個決策樹的結果組合起來預測其最終結果。我們可以把從多棵樹學到的東西組合成一棵樹。與使用單一決策樹相比,該方法具有更好的效果。


喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

有100決策樹的森林

最後,我們建立一個隨機森林分類器如下。n_estimators給出了用於生成森林的決策樹的數目(這裡使用了100)。

訓練分類器

重申這項任務,兩個口袋妖怪的一套功能(速度,攻擊等)誰將獲勝。

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

分類器的訓練與預測精度

我們在Pokemon的數據集上訓練(或擬合)分類器(即x_train),並最小化訓練集上預測值和實際值(y_train)之間的損失。這裡的訓練意味著找到數據集中不同特徵之間的關係來進行預測。

然後我們計算我們的分類器的準確度,結果是95%(意味著我們的分類器將預測100個匹配中95個匹配的正確結果),這是一個非常好的準確度開始。

到目前為止,我們已經完成了從構建分類器到訓練分類器所需的所有步驟,現在我們已經準備好在一些實際的東西上測試它。

測試分類器

時間終於到了,讓我們隨機給分類器一些口袋妖怪匹配,讓它為我們預測誰會贏。我們已將所有這些隨機匹配項存儲在另一個名為test_data的數據集中。

看起來是這樣的:


喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

具有樣本匹配的測試數據集

這兩個欄目對應的是即將參賽的口袋妖怪。我們正在將這兩個口袋妖怪輸入分類器,它將返回最有可能的勝利者為那場戰鬥。記住,分類器不僅僅是隨機預測贏家。事實上,它正在仔細分析幾個參數,以便做出正確的決定

準備好看贏家了!

現在你認為誰應該在大巖蛇波波中獲勝?。

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

讓我們用機器學習模型來預測它。

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

贏家看起來很明顯。現在讓我們給它一些棘手的問題。

那麼魔牆人偶可達鴨呢?

喜歡玩口袋妖怪嗎?你知道怎麼用機器學習來預測誰是下一個贏家?

事實上,這些匹配從未出現在口袋妖怪系列之前,我們預測會有結果(感覺很好!)。 那麼誰會贏呢?


分享到:


相關文章: