簡體   English   中英

二進制分類器如何呈現輸入對?

[英]How present pairs of inputs for binary classifier?

我有一些有關視頻游戲的數據。

數據:

匹配具有matchId。 每場比賽包括兩支隊伍,每支隊伍的大小各不相同。 例如3v3、4v4、5v5,...數據簡化如下:

matchId playerId teamId victory
100     200        14     1
100     201        14     1
100     212        14     1
100     220        14     1
100     202        15     0
100     206        15     0
100     214        15     0
100     217        15     0

任務:

我喜歡在Scikit中使用二進制分類器來根據玩家的特征預測勝利值(0/1)。

問題:

  1. 我正在尋找一種呈現特征的方法,即分類器可以檢測哪些兩支球隊互相對戰,因為比賽的結果取決於對手的球隊。
  2. 后來,我想看看哪些球員對比賽結果的影響更大,哪些技能對勝利更有效。 我可以在梯度提升分類器中使用重要性率嗎?

一種方法是將所有player_ids multiplied with 2稀疏向量 player_ids multiplied with 2 (2個團隊),其中所選擇的一個以非零值表示,例如1。

如果有N players 0, ..., N-1 ,並且team A consists of 1, 3, 5team B consists of 0, 2, 4 ,則輸入如下所示:

x_sample_0 = [0, 1, 0, 1, 0, 1, 0, ...N-1, 1, 0, 1, 0, 1, ...]
              ...team A...                 ... team B...

這應該是任務的非常有力的表示 (就表示的信息而言),有兩個明顯的缺點

  • 向量大小會變大(玩家大小成線性)
    • 分類器是否能夠使用稀疏數據結構(scipy.sparse)無關緊要,因為大多數情況下為零
  • 存在對稱性問題,因為每個配對A對B也可以被編碼為B對A
    • 以加倍輸入樣本大小為代價,我強烈建議添加對稱配對作為額外樣本(樣本大小增加一倍)
      • 記住也要翻轉輸出(意思是:從一線隊的角度將y編碼為贏/輸)!
    • 也許可以強制執行字典順序,該順序將始終在兩個配對之間輸出明確定義的順序(如果玩家自己不能玩),可以用作替代方法(我會首先嘗試上面的方法)

編輯:

另一種選擇:

  • 為每個可能的團隊引入一個變量(例如f_0 = team of 0, 2, 4 ),並使用此表示形式,該表示形式根據統計數據具有不同的向量大小
  • 這種丟失了一些信息,將需要更多數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM