{
  "schema": "ml-prep/item@1",
  "item": {
    "id": "pml-book1-ex20.1",
    "area": "machine-learning",
    "topic": "unsupervised-learning",
    "origin": "external",
    "title": "Expectation-maximization for factor analysis",
    "skills": [
      "expectation-maximization"
    ],
    "priority": "supplementary",
    "difficulty": "hard",
    "estimated_minutes": 30,
    "prerequisites": [
      "multivariate-gaussian",
      "matrix-calculus",
      "latent-variables"
    ],
    "source_id": "pml-book1-2022",
    "locator": {
      "document": "PML Book 1 online draft (2025-04-18), Chapter 20 exercises",
      "label": "Exercise 20.1",
      "page_label": "book p. 712 (PDF p. 742)",
      "solution_pages": "39–40"
    },
    "links": {
      "problem": "https://github.com/probml/pml-book/releases/download/2025-04-18/book1.pdf#page=742",
      "solution": "https://probml.github.io/pml-book/solns-public.pdf#page=39"
    },
    "selection_note": "Derives E- and M-step updates for a latent Gaussian factor model.",
    "source_caveat": "This is advanced latent-variable practice rather than clustering; the public solution manual predates the dated book draft.",
    "answer_status": "official-solution"
  }
}