I have doubts regarding RAL UVM concepts regarding predictor

There is no specific explanation and code example of predictor class. As I need to know the exact application of predictor and some methods like predict() method .

what is the difference between predicted value and desired value .

Why we need to randomize every register at the start .Do all the register have randomized value ? If yes what if the control register mistakenly got invoked due to regression of different seeds.

what exactly we do in predict(),get_mirrored_value(),mirror().

By using the register I saw in some codes they are getting all the registers in a queue and they are using this.randomize() .then read or write a array .

Thanks ,
Dinesh Kirran