Why do you add 0.5 to the predictions here?
Is it like doing a threshold of 0.5 and then calculating f1_score over two binary variables? Is there any reason to choose 0.5 as threshold?