Eliminação Recursiva de Atributos Manual
Agora que criamos um classificador de diabetes, vamos ver se conseguimos reduzir o número de atributos sem prejudicar demais a acurácia do modelo.
Na segunda linha do código, os atributos são selecionados do DataFrame original. Ajuste essa seleção.
Uma instância de StandardScaler() já foi definida como scaler e uma de LogisticRegression() como lr.
Todas as funções e pacotes necessários também já foram pré-carregados.
Este exercício faz parte do curso
Redução de Dimensionalidade em Python
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Remove the feature with the lowest model coefficient
X = diabetes_df[['pregnant', 'glucose', 'diastolic', 'triceps', 'insulin', 'bmi', 'family', 'age']]
# Performs a 25-75% train test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Scales features and fits the logistic regression model
lr.fit(scaler.fit_transform(X_train), y_train)
# Calculates the accuracy on the test set and prints coefficients
acc = accuracy_score(y_test, lr.predict(scaler.transform(X_test)))
print(f"{acc:.1%} accuracy on test set.")
print(dict(zip(X.columns, abs(lr.coef_[0]).round(2))))