У меня есть два кадра данных, 'matches_df' и 'ratings_df'. Матчи dataframe хранят игроков, дату и победитель матчей двухпользовательской игры. В рейтинге данных сохраняется текущий рейтинг каждого игрока, начиная с произвольного значения. Я хочу обновить этот фрейм, прежде чем позже его перепродать.python reset mutable global dataframe между вызовами функций
matches_df
date | player_1 | player_2 | winner
1/11 'A' 'B' 'A'
2/11 'C' 'B' 'C'
3/11 'A' 'D' 'A'
4/11 'A' 'C' 'C'
ratings_df
player | rating
'A' 1000
'B' 1000
'C' 1000
'D' 1000
У меня есть рейтинги обновления алгоритмов, которые делают следующее (sudocode).
def update_ratings(match,parameter):
#(1) use current ratings to predict the likelihood of either player winning the match
#(2) using the outcome of the match to update player ratings
#(3) update the two players current ratings in the global dataframe based on the result of the match.
#(4) Return the square of the forecast's prediction error.
Я хочу сравнить производительность различных значений параметров в прогнозируемой точности модели. Тем не менее, я изо всех сил пытаюсь либо сделать копии фрейма данных «рейтинги», либо сбросить рамки данных рейтингов между вызовами функций. Я использую следующий код для расчета производительности при заданном значении параметра:
def calc_brier(parameter,matches_df):
#reset dataframe to initial values (1000 for all players)
start_ratings = np.repeat(1000.0,len(unique_players))
ratings_df = pd.DataFrame(data=[start_ratings],columns=unique_players)
brier = 0
for index, row in matches_df.iterrows():
brier += update_ratings(row,parameter)
return brier
Однако это не дает правильные результаты. Фрейм данных глобальных оценок не сбрасывается при вызове функции calc_brier, и в результате моя функция calc_brier несовместима, если вызывается несколько раз с теми же параметрами. Что я должен сделать, чтобы либо правильно сбросить фрейм данных глобальных оценок до/после вызова «calc_brier», либо использовать альтернативную структуру для достижения моей конечной цели сравнения производительности различных значений параметров?