[{'role': 'system', 'content': "You are an expert in machine learning and your task is to classify code snippets into one of the following categories: ['helper_functions', 'load_data', 'data_exploration', 'data_preprocessing', 'evaluation', 'modelling', 'prediction', 'result_visualization', 'save_results', 'comment_only']."}, {'role': 'user', 'content': 'Identify the single most appropriate category to which the provided code belongs. Provide your response as a single category label without any additional information, commentary, or personal opinions.\\nPython Code:def policy_eval(policy, env, discount_factor=1.0, theta=0.00001):\n"""\nEvaluate a policy given an environment and a full description of the environment\'s dynamics.\nArgs:\npolicy: [S, A] shaped matrix representing the policy.\nenv: OpenAI env. env.P represents the transition probabilities of the environment.\nenv.P[s][a] is a (prob, next_state, reward, done) tuple.\ntheta: We stop evaluation one our value function change is less than theta for all states.\ndiscount_factor: lambda discount factor.\nReturns:\nVector of length env.nS representing the value function.\n"""\nV = np.zeros(env.nS)\nwhile True:\ndelta = 0\nfor s in range(env.nS):\nv = 0\nfor a, action_prob in enumerate(policy[s]):\nfor  prob, next_state, reward, done in env.P[s][a]:\nv += action_prob * prob * (reward + discount_factor * V[next_state])\ndelta = max(delta, np.abs(v - V[s]))\nV[s] = v\nif delta < theta:\nbreak\nreturn np.array(V)'}, {'role': 'assistant', 'content': 'modelling'}]