TL;DR: your yellowbrick is too old for your scikit-learn. sklearn moved safe_indexing to a private module, so upgrade yellowbrick to a compatible release, or pin an older sklearn.

## The error
```text
ImportError: cannot import name 'safe_indexing' from 'sklearn.utils'
```

## Fix it
1. Upgrade yellowbrick:
   ```
   pip install -U yellowbrick
   ```
   Expected: installs a release that works with your sklearn.
2. Verify:
   ```
   python -c "import yellowbrick; print('ok')"
   ```
   Expected: imports cleanly.
3. If you cannot upgrade yellowbrick, pin sklearn to a version that still exports the name:
   ```
   pip install "scikit-learn<1.3"
   ```
   Expected: the old import path works again.

## When this applies
Use this when `import yellowbrick` raises this error with a recent scikit-learn.

## When it does not apply
If your own code imports safe_indexing from sklearn.utils, import it from sklearn.utils._indexing instead (private API, may move again). If yellowbrick is current, reinstall it.

## Compatibility
yellowbrick releases before the sklearn-compat fix; scikit-learn 1.3+ where the name left sklearn.utils.

## Root cause
safe_indexing was always an internal helper; sklearn moved it from sklearn.utils to the private sklearn.utils._indexing module. yellowbrick imported the public-looking path, so the move broke it at import time.

## Edge cases
Pinning old sklearn can break other packages that need new sklearn; upgrading yellowbrick is the durable fix. Check the yellowbrick changelog for the exact minimum version that supports your sklearn.