7. Pré-processamento dos Dados
Nesta etapa, realizamos o tratamento de valores ausentes, codificação das variáveis categóricas e normalização das variáveis para preparar os dados para o modelo KNN.
# Exemplo de tratamento de valores ausentes
df = df.dropna()
# Codificação de variáveis categóricas
from sklearn.preprocessing import LabelEncoder
cat_cols = ['gender', 'race/ethnicity', 'parental level of education', 'lunch', 'test preparation course']
le = LabelEncoder()
for col in cat_cols:
df[col] = le.fit_transform(df[col])
# Criar coluna alvo binária para classificação: passed (math score >= 60)
df['passed'] = (df['math score'] >= 60).astype(int)
# Selecionar features (exceto notas) e target
X = df.drop(['math score', 'reading score', 'writing score', 'passed'], axis=1)
y = df['passed']
# Normalização das features
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
gender | race/ethnicity | parental level of education | lunch | test preparation course | math score | reading score | writing score | passed |
---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 1 | 0 | 72 | 72 | 74 | 1 |
1 | 2 | 3 | 1 | 1 | 69 | 90 | 88 | 1 |
0 | 1 | 1 | 1 | 0 | 90 | 95 | 93 | 1 |
0 | 2 | 3 | 1 | 1 | 47 | 57 | 44 | 0 |
1 | 1 | 0 | 0 | 0 | 76 | 78 | 75 | 1 |