iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
自我挑戰組

我的Python小筆記系列 第 29

【Day29-實作】

  • 分享至 

  • xImage
  •  

這篇實作是將學校自己實作的作業,分享給讀者說明並且把前幾章用到的演算法與實作過程都融合再一起。

使用的資料集:
https://www.kaggle.com/datasets/bobbyscience/league-of-legends-diamond-ranked-games-10-min

是針對英雄聯盟Rank積分賽鑽石場到大師場的10分鐘比賽,透過這些數據,希望說能夠成功預測出這場比賽由哪方陣營獲勝。

小說明
英雄聯盟是一款DOTA類型的多人競技遊戲,由五位玩家VS五位玩家分為兩隊,以推掉主堡來獲取勝利。在現今也有舉辦許多大型比賽讓各路的頂尖好手爬上世界第一的寶座,考驗個人能力、團隊能力、團隊精神、大局觀分析、戰術分析....等等,讓許多玩家愛不釋手,更有專業的團隊去研究遊戲的技巧,帶領著團隊得到電競界的冠軍寶座。

那關於一些基本的操作與匯入就先不全部解釋,我直接帶入重點

把資料匯入後可以看到這些欄位,並且有紅藍兩隊的數據內容。

  1. blueWins:藍隊是否贏下這場(0是輸,1是贏)
  2. blueWardsPlaced:藍隊所設置的守衛者
  3. blueWardsDestroyed:藍隊所摧毀的守衛者
  4. blueFirstBlood:藍隊是否首殺(0是輸,1是贏)
  5. blueKills:藍隊擊殺
  6. blueDeaths:藍隊死亡
  7. blueAssists:藍隊助攻
  8. blueEliteMonsters:史詩怪物擊殺
  9. blueDragons:藍隊擊殺的小龍
  10. blueHeralds:藍隊所擊殺的預示者
  11. blueTowersDestroyed:藍隊所摧毀防禦塔
  12. blueTotalGold:藍隊推塔時所得到的金錢
  13. blueAvgLevel:藍隊的平均等級
  14. blueTotalExperience:藍隊總經驗值
  15. blueTotalMinionsKilled:藍隊總擊殺小兵數量
  16. blueTotalJungleMinionsKilled:藍隊總擊殺野怪數量
  17. blueGoldDiff :藍隊與紅隊的經濟差距
  18. blueExperienceDiff:每分鐘與紅隊的經驗值差距
  19. blueCSPerMin:每分鐘擊殺小兵數量
  20. blueGoldPerMin:每分鐘獲得金錢數量***

那紅隊也是一模一樣的欄位名稱,只是blue改成red而已



接著使用熱力圖將特徵關聯性分析出來,由於這看起來超級小,決定了將0.1以下的關聯砍掉。還把分數<0.1的判斷式顯示出來,大於0.1的話False,小於則是True。


最後就把blueWardsPlaced, ‘blueWardsDestroyed, blueDeaths, blueHeralds,這四個特徵屬性砍掉。

那準備開始訓練模型啦!!

匯入了有這些演算法套件

然後將資料特徵定義,並把資料集切成訓練集80%與測試集20%

1.套用鄰近演算法

那基本上說下面的數字是模型訓練出來準確率是多少,但要記得要轉換成%數。

2.套用決策樹演算法

3.套用隨機森林樹演算法

總結
可以看的出來這三個演算法在進行訓練與測試時都有不同的特徵角度分析,發現了如果使用比較簡單的演算法進行分析運作的過程比較快速,但像是使用比較複雜且高準確的演算法,跑的過程也是相當的久,所以我在訓練的過程中也是聽著電腦風扇轟轟的響,擔心說是不是程式哪方面做錯了或者會把我電腦操壞之類的,有出現擔憂,但還好稍微等一陣子其結果是有跑出來,算是擔心過頭了啦。

那今天的內容講到這邊,謝謝觀看!!


上一篇
【Day28-隨機森林樹】
下一篇
【Day30-參賽結語】
系列文
我的Python小筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言