  Intelligent robots and machines are becoming pervasive in human populated
environments. A desirable capability of these agents is to respond to
goal-oriented commands by autonomously constructing task plans. However, such
autonomy can add significant cognitive load and potentially introduce safety
risks to humans when agents behave unexpectedly. Hence, for such agents to be
helpful, one important requirement is for them to synthesize plans that can be
easily understood by humans. While there exists previous work that studied
socially acceptable robots that interact with humans in "natural ways", and
work that investigated legible motion planning, there lacks a general solution
for high level task planning. To address this issue, we introduce the notions
of plan {\it explicability} and {\it predictability}. To compute these
measures, first, we postulate that humans understand agent plans by associating
abstract tasks with agent actions, which can be considered as a labeling
process. We learn the labeling scheme of humans for agent plans from training
examples using conditional random fields (CRFs). Then, we use the learned model
to label a new plan to compute its explicability and predictability. These
measures can be used by agents to proactively choose or directly synthesize
plans that are more explicable and predictable to humans. We provide
evaluations on a synthetic domain and with human subjects using physical robots
to show the effectiveness of our approach
