2015-01-05 4 views
2

У меня есть два объекта pandas.Series с равным количеством элементов (это предсказания и целевые значения), и мне нужно вычислить (R) MSE этих двух серий.(Root) Средняя квадратная ошибка двух pandas.Series

я могу использовать

targets.sub(predictions).pow(2).mean() 

для MSE, но я чувствую, что есть много копирования участвует (первый в результате вычитания, то за результат возведения в степень). Есть ли элегантный способ, который не включает две копии?


Возможно распределение памяти является лучшим термином.

+0

Проверьте ответы на соответствующий вопрос: http://stackoverflow.com/questions/17197492/root-mean-square-error-in-python?rq=1 – EdChum

+0

@EdChum Я проверил этот вопрос до размещение этого. Причина, по которой я опубликовал новый вопрос, заключается в том, что я ищу решение в контексте библиотеки pandas. Но спасибо, тем не менее. – zegkljan

ответ

2

Если вы обеспокоены общим объемом памяти в случае, если серия огромна, следующее может помочь, поскольку для промежуточных результатов не требуется временное хранение. Однако он имеет гораздо худшую производительность.

sum((t-p) ** 2 for t,p in zip(targets, predictions)), 0.0)/len(targets) 
Смежные вопросы