def saveToFile(entropyLeagueDict, leagues):

    featureVector = []
    idNameMap = mapLeagueIdtoName(leagues)

    data = []
    for league in leagues:

        leagueRow = []

        entropyMap = entropyLeagueDict.get(league[0])
        if entropyMap is None: continue

        featureVector.append(idNameMap.get(league[0]))
        leagueRow.append(entropyMap.get('2008/2009'))
        leagueRow.append(entropyMap.get('2009/2010'))
        leagueRow.append(entropyMap.get('2010/2011'))
        leagueRow.append(entropyMap.get('2011/2012'))
        leagueRow.append(entropyMap.get('2012/2013'))
        leagueRow.append(entropyMap.get('2013/2014'))
        leagueRow.append(entropyMap.get('2014/2015'))
        leagueRow.append(entropyMap.get('2015/2016'))

        data.append(leagueRow)
    data = np.asarray(data)
    utils.createFile(data.T, "seasonEntropy.csv", featureVector)
Beispiel #2
0
def DimRed(temp,algo,namesRating):
    if algo == 'PCA':
        pca = PCA(n_components=2,random_state=0).fit_transform(temp)
    else:
        pca = TSNE(n_components=2,random_state=0).fit_transform(temp)
    comp1 = pca[:,0]
    comp2 = pca[:,1]
    data = []
    for a,b,c in zip(comp1,comp2,namesRating):
        data.append([a,b,c[0],c[1]])
    data = [row for row in data if row[3]>80]
    data.sort(key = lambda x: x[3],reverse=True)
    #data =[[a,b] for a,b in  zip(comp1,comp2)]
    featureVector = ["pc1","pc2","name","rating"]
    if algo == 'PCA':
        utils.createFile(data, "components.csv",featureVector)
    else:
        utils.createFile(data, "TSNEcomponents.csv",featureVector)
def getLeagueTeamEntropyDict(matchEntropies, filteredMatches, leagues, teams):
    print(teams[0])
    teamMap = mapTeamIdtoName(teams)
    leagueMap = mapLeagueIdtoName(leagues)
    leagueTeamEntropyDict = dict()
    for match in filteredMatches:
        leagueTeamEntropyDict[match[2]] = dict()
    for match in filteredMatches:
        league = match[2]
        homeTeam = match[7]
        awayTeam = match[8]
        season = match[3]
        if leagueTeamEntropyDict[league].get(homeTeam) is None:
            leagueTeamEntropyDict[league][homeTeam] = dict()
        if leagueTeamEntropyDict[league].get(homeTeam).get(season) is None:
            leagueTeamEntropyDict[league][homeTeam][season] = []
        if leagueTeamEntropyDict[league].get(awayTeam) is None:
            leagueTeamEntropyDict[league][awayTeam] = dict()
        if leagueTeamEntropyDict[league].get(awayTeam).get(season) is None:
            leagueTeamEntropyDict[league][awayTeam][season] = []

    for entropy, match in zip(matchEntropies, filteredMatches):
        leagueTeamEntropyDict[match[2]][match[7]][match[3]].append(entropy)
        leagueTeamEntropyDict[match[2]][match[8]][match[3]].append(entropy)

    finalData = []
    for league in leagueTeamEntropyDict.keys():
        teams = leagueTeamEntropyDict.get(league).keys()
        for team in teams:
            seasons = leagueTeamEntropyDict.get(league).get(team).keys()

            for season in seasons:
                meanEntropy = np.mean(
                    leagueTeamEntropyDict.get(league).get(team).get(season))
                teamName = teamMap.get(team).split(",")[0]
                finalData.append(
                    [teamName, season, meanEntropy,
                     leagueMap.get(league)])

    featureVector = ["Team", "Season", "MeanEntropy", "League"]
    utils.createFile(finalData, "teamLeagueSeasonEntropy.csv", featureVector)
Beispiel #4
0
def getEvolutionData(players):
    #print (players[0])
    retVal = dict()
    sortedByRating = sorted(players, key = lambda x  : x[1],reverse=True)[:10]
    for player in sortedByRating:
        playerMap = dict()
        maptoAttach = dict()
        playerName = player[-2]
        x = player[0]
        temp = []
        for row in Database().execute('select date,overall_rating from Player_Attributes where player_api_id is '+str(x)):
            temp.append(row)
        for row in temp:
            if playerMap.get(row[0].split('-')[0]) is None:
                playerMap[row[0].split('-')[0]] = []
            playerMap[row[0].split('-')[0]].append(row[1])
        #print(playerMap)
        retVal[playerName] = dict()
        for k,v in playerMap.items():
            retVal[playerName][k]=np.mean(v)
        #print(retVal)
    data = []
    featureVector = []
    for player in retVal.keys():
        row = []
        featureVector.append(player)
        row.append(retVal.get(player).get('2007'))
        row.append(retVal.get(player).get('2008'))
        row.append(retVal.get(player).get('2009'))
        row.append(retVal.get(player).get('2010'))
        row.append(retVal.get(player).get('2011'))
        row.append(retVal.get(player).get('2012'))
        row.append(retVal.get(player).get('2013'))
        row.append(retVal.get(player).get('2014'))
        row.append(retVal.get(player).get('2015'))
        data.append(row)
    data = np.asarray(data)
    utils.createFile(data.T,"topPlayerRating.csv",featureVector)
Beispiel #5
0
matches = utils.getAllDatafromTable('match')
leagueScoreMap = dict()
for league in leagues:
    leagueScoreMap[league[0]] = []
for match in matches:
    home_team_goals = int(match[9])
    away_team_goals = int(match[10])
    if home_team_goals == away_team_goals:
        home_team_score = 1
        away_team_score = 1
    elif home_team_goals > away_team_goals:
        home_team_score = 3
        away_team_score = 0
    else:
        away_team_score = 3
        home_team_score = 0
    leagueScoreMap[match[2]].append([home_team_score, away_team_score])
avgLeagueScore = dict()
for league in leagueScoreMap.keys():
    scores = leagueScoreMap.get(league)
    avg_home_score = np.mean([score[0] for score in scores])
    avg_away_score = np.mean([score[1] for score in scores])
    avgLeagueScore[league] = [avg_home_score, avg_away_score]
data = []
for league in avgLeagueScore.keys():
    avg_home_score = avgLeagueScore.get(league)[0]
    avg_away_score = avgLeagueScore.get(league)[1]
    countryName = countryNameMap.get(league)
    data.append([countryName, avg_home_score, avg_away_score])
utils.createFile(data, "homeAdvantage.csv",
                 ["country", "avg_home_score", "avg_away_score"])
Beispiel #6
0
from lib import utils
leagues = utils.getAllDatafromTable('league')
matches = utils.getAllDatafromTable('match')
countries = utils.getAllDatafromTable('country')
leagueIdMap = dict()
leagueTeamMap = dict()
leagueCountryMap = dict()
for league in leagues:
    leagueIdMap[league[0]] = league[2]
for league in leagues:
    leagueCountryMap[league[1]] = league[0]
#matches = utils.removeNan(matches)
for match in matches:
    if leagueTeamMap.get(match[2]) is None: leagueTeamMap[match[2]] = set()
    #print(match[2])
    leagueTeamMap[match[2]].add(match[7])
    leagueTeamMap[match[2]].add(match[8])
#print(leagueTeamMap.keys())
data = []
for country in countries:
    leagueId = leagueCountryMap.get(country[0])
    #print(leagueId)
    leagueName = leagueIdMap.get(leagueId)
    countryName = country[1]
    numTeams = len(leagueTeamMap.get(leagueId))

    data.append([countryName, leagueName, numTeams])
utils.createFile(data, "euroMap.csv", ["country", "league", "# Teams"])