How to predict various opponents' attacks?
I don't know about actually predicting attacks (like, by reading a tell in an enemy's movement), but a strategy I use with great efficiency is to block, waiting for a first attack, then step aside as your opponent usually tries to attack at least once more and strike as he miserably misses you.