You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
603 lines
13 KiB
603 lines
13 KiB
# Troubleshooting Guide
|
|
|
|
Dis guide go help you solve common wahala wey fit happen wen you dey work wit di Machine Learning for Beginners curriculum. If you no see solution here, abeg check our [Discord Discussions](https://aka.ms/foundry/discord) or [open an issue](https://github.com/microsoft/ML-For-Beginners/issues).
|
|
|
|
## Table of Contents
|
|
|
|
- [Installation Wahala](../..)
|
|
- [Jupyter Notebook Wahala](../..)
|
|
- [Python Package Wahala](../..)
|
|
- [R Environment Wahala](../..)
|
|
- [Quiz Application Wahala](../..)
|
|
- [Data and File Path Wahala](../..)
|
|
- [Common Error Messages](../..)
|
|
- [Performance Wahala](../..)
|
|
- [Environment and Configuration](../..)
|
|
|
|
---
|
|
|
|
## Installation Wahala
|
|
|
|
### Python Installation
|
|
|
|
**Wahala**: `python: command not found`
|
|
|
|
**Solution**:
|
|
1. Install Python 3.8 or higher from [python.org](https://www.python.org/downloads/)
|
|
2. Check say Python don install: `python --version` or `python3 --version`
|
|
3. For macOS/Linux, you fit need use `python3` instead of `python`
|
|
|
|
**Wahala**: Multiple Python versions dey cause wahala
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Use virtual environments to isolate projects
|
|
python -m venv ml-env
|
|
|
|
# Activate virtual environment
|
|
# On Windows:
|
|
ml-env\Scripts\activate
|
|
# On macOS/Linux:
|
|
source ml-env/bin/activate
|
|
```
|
|
|
|
### Jupyter Installation
|
|
|
|
**Wahala**: `jupyter: command not found`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Install Jupyter
|
|
pip install jupyter
|
|
|
|
# Or with pip3
|
|
pip3 install jupyter
|
|
|
|
# Verify installation
|
|
jupyter --version
|
|
```
|
|
|
|
**Wahala**: Jupyter no wan open for browser
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Try specifying the browser
|
|
jupyter notebook --browser=chrome
|
|
|
|
# Or copy the URL with token from terminal and paste in browser manually
|
|
# Look for: http://localhost:8888/?token=...
|
|
```
|
|
|
|
### R Installation
|
|
|
|
**Wahala**: R packages no wan install
|
|
|
|
**Solution**:
|
|
```r
|
|
# Ensure you have the latest R version
|
|
# Install packages with dependencies
|
|
install.packages(c("tidyverse", "tidymodels", "caret"), dependencies = TRUE)
|
|
|
|
# If compilation fails, try installing binary versions
|
|
install.packages("package-name", type = "binary")
|
|
```
|
|
|
|
**Wahala**: IRkernel no dey available for Jupyter
|
|
|
|
**Solution**:
|
|
```r
|
|
# In R console
|
|
install.packages('IRkernel')
|
|
IRkernel::installspec(user = TRUE)
|
|
```
|
|
|
|
---
|
|
|
|
## Jupyter Notebook Wahala
|
|
|
|
### Kernel Wahala
|
|
|
|
**Wahala**: Kernel dey die or restart anyhow
|
|
|
|
**Solution**:
|
|
1. Restart di kernel: `Kernel → Restart`
|
|
2. Clear output and restart: `Kernel → Restart & Clear Output`
|
|
3. Check memory wahala (see [Performance Wahala](../..))
|
|
4. Try run di cells one by one to see di code wey dey cause wahala
|
|
|
|
**Wahala**: Wrong Python kernel dey selected
|
|
|
|
**Solution**:
|
|
1. Check di current kernel: `Kernel → Change Kernel`
|
|
2. Select di correct Python version
|
|
3. If kernel no dey, create am:
|
|
```bash
|
|
python -m ipykernel install --user --name=ml-env
|
|
```
|
|
|
|
**Wahala**: Kernel no wan start
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Reinstall ipykernel
|
|
pip uninstall ipykernel
|
|
pip install ipykernel
|
|
|
|
# Register the kernel again
|
|
python -m ipykernel install --user
|
|
```
|
|
|
|
### Notebook Cell Wahala
|
|
|
|
**Wahala**: Cells dey run but output no dey show
|
|
|
|
**Solution**:
|
|
1. Check if cell still dey run (look for `[*]` indicator)
|
|
2. Restart kernel and run all cells: `Kernel → Restart & Run All`
|
|
3. Check browser console for JavaScript errors (F12)
|
|
|
|
**Wahala**: Cells no dey run - no response wen you click "Run"
|
|
|
|
**Solution**:
|
|
1. Check if Jupyter server still dey run for terminal
|
|
2. Refresh di browser page
|
|
3. Close and reopen di notebook
|
|
4. Restart Jupyter server
|
|
|
|
---
|
|
|
|
## Python Package Wahala
|
|
|
|
### Import Errors
|
|
|
|
**Wahala**: `ModuleNotFoundError: No module named 'sklearn'`
|
|
|
|
**Solution**:
|
|
```bash
|
|
pip install scikit-learn
|
|
|
|
# Common ML packages for this course
|
|
pip install scikit-learn pandas numpy matplotlib seaborn
|
|
```
|
|
|
|
**Wahala**: `ImportError: cannot import name 'X' from 'sklearn'`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Update scikit-learn to latest version
|
|
pip install --upgrade scikit-learn
|
|
|
|
# Check version
|
|
python -c "import sklearn; print(sklearn.__version__)"
|
|
```
|
|
|
|
### Version Conflicts
|
|
|
|
**Wahala**: Package version dey incompatible
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Create a new virtual environment
|
|
python -m venv fresh-env
|
|
source fresh-env/bin/activate # or fresh-env\Scripts\activate on Windows
|
|
|
|
# Install packages fresh
|
|
pip install jupyter scikit-learn pandas numpy matplotlib seaborn
|
|
|
|
# If specific version needed
|
|
pip install scikit-learn==1.3.0
|
|
```
|
|
|
|
**Wahala**: `pip install` dey fail wit permission wahala
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Install for current user only
|
|
pip install --user package-name
|
|
|
|
# Or use virtual environment (recommended)
|
|
python -m venv venv
|
|
source venv/bin/activate
|
|
pip install package-name
|
|
```
|
|
|
|
### Data Loading Wahala
|
|
|
|
**Wahala**: `FileNotFoundError` wen you dey load CSV files
|
|
|
|
**Solution**:
|
|
```python
|
|
import os
|
|
# Check current working directory
|
|
print(os.getcwd())
|
|
|
|
# Use relative paths from notebook location
|
|
df = pd.read_csv('../../data/filename.csv')
|
|
|
|
# Or use absolute paths
|
|
df = pd.read_csv('/full/path/to/data/filename.csv')
|
|
```
|
|
|
|
---
|
|
|
|
## R Environment Wahala
|
|
|
|
### Package Installation
|
|
|
|
**Wahala**: Package installation dey fail wit compilation wahala
|
|
|
|
**Solution**:
|
|
```r
|
|
# Install binary version (Windows/macOS)
|
|
install.packages("package-name", type = "binary")
|
|
|
|
# Update R to latest version if packages require it
|
|
# Check R version
|
|
R.version.string
|
|
|
|
# Install system dependencies (Linux)
|
|
# For Ubuntu/Debian, in terminal:
|
|
# sudo apt-get install r-base-dev
|
|
```
|
|
|
|
**Wahala**: `tidyverse` no wan install
|
|
|
|
**Solution**:
|
|
```r
|
|
# Install dependencies first
|
|
install.packages(c("rlang", "vctrs", "pillar"))
|
|
|
|
# Then install tidyverse
|
|
install.packages("tidyverse")
|
|
|
|
# Or install components individually
|
|
install.packages(c("dplyr", "ggplot2", "tidyr", "readr"))
|
|
```
|
|
|
|
### RMarkdown Wahala
|
|
|
|
**Wahala**: RMarkdown no wan render
|
|
|
|
**Solution**:
|
|
```r
|
|
# Install/update rmarkdown
|
|
install.packages("rmarkdown")
|
|
|
|
# Install pandoc if needed
|
|
install.packages("pandoc")
|
|
|
|
# For PDF output, install tinytex
|
|
install.packages("tinytex")
|
|
tinytex::install_tinytex()
|
|
```
|
|
|
|
---
|
|
|
|
## Quiz Application Wahala
|
|
|
|
### Build and Installation
|
|
|
|
**Wahala**: `npm install` dey fail
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Clear npm cache
|
|
npm cache clean --force
|
|
|
|
# Remove node_modules and package-lock.json
|
|
rm -rf node_modules package-lock.json
|
|
|
|
# Reinstall
|
|
npm install
|
|
|
|
# If still fails, try with legacy peer deps
|
|
npm install --legacy-peer-deps
|
|
```
|
|
|
|
**Wahala**: Port 8080 don already dey use
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Use different port
|
|
npm run serve -- --port 8081
|
|
|
|
# Or find and kill process using port 8080
|
|
# On Linux/macOS:
|
|
lsof -ti:8080 | xargs kill -9
|
|
|
|
# On Windows:
|
|
netstat -ano | findstr :8080
|
|
taskkill /PID <PID> /F
|
|
```
|
|
|
|
### Build Errors
|
|
|
|
**Wahala**: `npm run build` dey fail
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Check Node.js version (should be 14+)
|
|
node --version
|
|
|
|
# Update Node.js if needed
|
|
# Then clean install
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
**Wahala**: Linting errors dey stop build
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Fix auto-fixable issues
|
|
npm run lint -- --fix
|
|
|
|
# Or temporarily disable linting in build
|
|
# (not recommended for production)
|
|
```
|
|
|
|
---
|
|
|
|
## Data and File Path Wahala
|
|
|
|
### Path Wahala
|
|
|
|
**Wahala**: Data files no dey wen you dey run notebooks
|
|
|
|
**Solution**:
|
|
1. **Always run notebooks from di directory wey dey contain dem**
|
|
```bash
|
|
cd /path/to/lesson/folder
|
|
jupyter notebook
|
|
```
|
|
|
|
2. **Check di relative paths for code**
|
|
```python
|
|
# Correct path from notebook location
|
|
df = pd.read_csv('../data/filename.csv')
|
|
|
|
# Not from your terminal location
|
|
```
|
|
|
|
3. **Use absolute paths if e necessary**
|
|
```python
|
|
import os
|
|
base_path = os.path.dirname(os.path.abspath(__file__))
|
|
data_path = os.path.join(base_path, 'data', 'filename.csv')
|
|
```
|
|
|
|
### Missing Data Files
|
|
|
|
**Wahala**: Dataset files no dey
|
|
|
|
**Solution**:
|
|
1. Check if data suppose dey di repository - most datasets dey included
|
|
2. Some lessons fit need make you download data - check lesson README
|
|
3. Make sure say you don pull di latest changes:
|
|
```bash
|
|
git pull origin main
|
|
```
|
|
|
|
---
|
|
|
|
## Common Error Messages
|
|
|
|
### Memory Wahala
|
|
|
|
**Error**: `MemoryError` or kernel dey die wen e dey process data
|
|
|
|
**Solution**:
|
|
```python
|
|
# Load data in chunks
|
|
for chunk in pd.read_csv('large_file.csv', chunksize=10000):
|
|
process(chunk)
|
|
|
|
# Or read only needed columns
|
|
df = pd.read_csv('file.csv', usecols=['col1', 'col2'])
|
|
|
|
# Free memory when done
|
|
del large_dataframe
|
|
import gc
|
|
gc.collect()
|
|
```
|
|
|
|
### Convergence Warnings
|
|
|
|
**Warning**: `ConvergenceWarning: Maximum number of iterations reached`
|
|
|
|
**Solution**:
|
|
```python
|
|
from sklearn.linear_model import LogisticRegression
|
|
|
|
# Increase max iterations
|
|
model = LogisticRegression(max_iter=1000)
|
|
|
|
# Or scale your features first
|
|
from sklearn.preprocessing import StandardScaler
|
|
scaler = StandardScaler()
|
|
X_scaled = scaler.fit_transform(X)
|
|
```
|
|
|
|
### Plotting Wahala
|
|
|
|
**Wahala**: Plots no dey show for Jupyter
|
|
|
|
**Solution**:
|
|
```python
|
|
# Enable inline plotting
|
|
%matplotlib inline
|
|
|
|
# Import pyplot
|
|
import matplotlib.pyplot as plt
|
|
|
|
# Show plot explicitly
|
|
plt.plot(data)
|
|
plt.show()
|
|
```
|
|
|
|
**Wahala**: Seaborn plots dey look different or dey throw errors
|
|
|
|
**Solution**:
|
|
```python
|
|
import warnings
|
|
warnings.filterwarnings('ignore', category=UserWarning)
|
|
|
|
# Update to compatible version
|
|
# pip install --upgrade seaborn matplotlib
|
|
```
|
|
|
|
### Unicode/Encoding Wahala
|
|
|
|
**Wahala**: `UnicodeDecodeError` wen you dey read files
|
|
|
|
**Solution**:
|
|
```python
|
|
# Specify encoding explicitly
|
|
df = pd.read_csv('file.csv', encoding='utf-8')
|
|
|
|
# Or try different encoding
|
|
df = pd.read_csv('file.csv', encoding='latin-1')
|
|
|
|
# For errors='ignore' to skip problematic characters
|
|
df = pd.read_csv('file.csv', encoding='utf-8', errors='ignore')
|
|
```
|
|
|
|
---
|
|
|
|
## Performance Wahala
|
|
|
|
### Slow Notebook Execution
|
|
|
|
**Wahala**: Notebooks dey run very slow
|
|
|
|
**Solution**:
|
|
1. **Restart kernel to free memory**: `Kernel → Restart`
|
|
2. **Close notebooks wey you no dey use** to free resources
|
|
3. **Use smaller data samples for testing**:
|
|
```python
|
|
# Work with subset during development
|
|
df_sample = df.sample(n=1000)
|
|
```
|
|
4. **Profile your code** to find di bottlenecks:
|
|
```python
|
|
%time operation() # Time single operation
|
|
%timeit operation() # Time with multiple runs
|
|
```
|
|
|
|
### High Memory Usage
|
|
|
|
**Wahala**: System dey run out of memory
|
|
|
|
**Solution**:
|
|
```python
|
|
# Check memory usage
|
|
df.info(memory_usage='deep')
|
|
|
|
# Optimize data types
|
|
df['column'] = df['column'].astype('int32') # Instead of int64
|
|
|
|
# Drop unnecessary columns
|
|
df = df[['col1', 'col2']] # Keep only needed columns
|
|
|
|
# Process in batches
|
|
for batch in np.array_split(df, 10):
|
|
process(batch)
|
|
```
|
|
|
|
---
|
|
|
|
## Environment and Configuration
|
|
|
|
### Virtual Environment Wahala
|
|
|
|
**Wahala**: Virtual environment no dey activate
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Windows
|
|
python -m venv venv
|
|
venv\Scripts\activate.bat
|
|
|
|
# macOS/Linux
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# Check if activated (should show venv name in prompt)
|
|
which python # Should point to venv python
|
|
```
|
|
|
|
**Wahala**: Packages don install but notebook no dey see dem
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Ensure notebook uses the correct kernel
|
|
# Install ipykernel in your venv
|
|
pip install ipykernel
|
|
python -m ipykernel install --user --name=ml-env --display-name="Python (ml-env)"
|
|
|
|
# In Jupyter: Kernel → Change Kernel → Python (ml-env)
|
|
```
|
|
|
|
### Git Wahala
|
|
|
|
**Wahala**: No fit pull latest changes - merge conflicts dey
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Stash your changes
|
|
git stash
|
|
|
|
# Pull latest
|
|
git pull origin main
|
|
|
|
# Reapply your changes
|
|
git stash pop
|
|
|
|
# If conflicts, resolve manually or:
|
|
git checkout --theirs path/to/file # Take remote version
|
|
git checkout --ours path/to/file # Keep your version
|
|
```
|
|
|
|
### VS Code Integration
|
|
|
|
**Wahala**: Jupyter notebooks no wan open for VS Code
|
|
|
|
**Solution**:
|
|
1. Install Python extension for VS Code
|
|
2. Install Jupyter extension for VS Code
|
|
3. Select correct Python interpreter: `Ctrl+Shift+P` → "Python: Select Interpreter"
|
|
4. Restart VS Code
|
|
|
|
---
|
|
|
|
## Additional Resources
|
|
|
|
- **Discord Discussions**: [Ask questions and share solutions for di #ml-for-beginners channel](https://aka.ms/foundry/discord)
|
|
- **Microsoft Learn**: [ML for Beginners modules](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
|
|
- **Video Tutorials**: [YouTube Playlist](https://aka.ms/ml-beginners-videos)
|
|
- **Issue Tracker**: [Report bugs](https://github.com/microsoft/ML-For-Beginners/issues)
|
|
|
|
---
|
|
|
|
## Still Get Wahala?
|
|
|
|
If you don try di solutions wey dey above and wahala still dey:
|
|
|
|
1. **Search existing issues**: [GitHub Issues](https://github.com/microsoft/ML-For-Beginners/issues)
|
|
2. **Check discussions for Discord**: [Discord Discussions](https://aka.ms/foundry/discord)
|
|
3. **Open new issue**: Include:
|
|
- Your operating system and version
|
|
- Python/R version
|
|
- Error message (full traceback)
|
|
- Steps wey you take to reproduce di wahala
|
|
- Wetin you don already try
|
|
|
|
We dey here to help! 🚀
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**Disclaimer**:
|
|
Dis docu don dey translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even though we dey try make am accurate, abeg sabi say automatic translation fit get mistake or no correct well. Di original docu for im native language na di main correct source. For important information, e go beta make professional human translator check am. We no go fit take blame for any misunderstanding or wrong interpretation wey fit happen because you use dis translation.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |