Exercices Machine Learning Separer features numeriques et catégorielles
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Separer features numeriques et catégorielles

Avant d'entrainer un modele, tu dois savoir ce que tu as sous les yeux. L'age et le salaire sont des nombres, la ville et la profession sont des categories. Cette distinction est fondamentale car les algorithmes de ML ne traitent pas ces deux types de la meme facon.

Les features numeriques peuvent etre utilisees directement. Les features catégorielles doivent etre encodees en nombres (on verra comment dans les prochains exercices).

Pandas te permet de les séparer facilement :
df.select_dtypes(include='number') garde les colonnes numeriques
df.select_dtypes(exclude='number') garde les colonnes non numeriques

Écris une fonction séparer_features(df) qui renvoie un dictionnaire avec :
'numeriques' : la liste des noms de colonnes numeriques
'catégorielles' : la liste des noms de colonnes non numeriques

Exemple :

df = pd.DataFrame({'age': [25, 30], 'ville': ['Paris', 'Lyon'], 'salaire': [3000, 4000]})
séparer_features(df)
# {'numeriques': ['age', 'salaire'], 'catégorielles': ['ville']}

Tests (4/4)

Mix de types
import pandas as pd
df = pd.DataFrame({'age': [25], 'ville': ['Paris'], 'salaire': [3000.0]})
result = séparer_features(df)
assert 'age' in result['numeriques']
assert 'salaire' in result['numeriques']
assert result['catégorielles'] == ['ville']
Tout numerique
import pandas as pd
df = pd.DataFrame({'a': [1], 'b': [2.0]})
result = séparer_features(df)
assert len(result['numeriques']) == 2
assert result['catégorielles'] == []
Tout catégoriel
import pandas as pd
df = pd.DataFrame({'x': ['a'], 'y': ['b']})
result = séparer_features(df)
assert result['numeriques'] == []
assert len(result['catégorielles']) == 2
DataFrame vide
import pandas as pd
df = pd.DataFrame()
result = séparer_features(df)
assert result['numeriques'] == []
assert result['catégorielles'] == []

Indices (3 disponibles)

solution.py