Opportunistic Learning: Algorithms And Methods For Cost-Sensitive And Context-Aware Learning