Juntando tudo
Você acabou de entrar em uma startup de detecção de arritmias e quer treinar um modelo no conjunto de dados de arritmias arrh. Você percebeu que random forests costumam vencer várias competições no Kaggle, então quer testar isso com profundidade máxima de 2, 5 ou 10, usando grid search. Você também observou que a dimensionalidade do conjunto de dados é bem alta, então deseja avaliar o efeito de um método de seleção de atributos.
Para garantir que você não faça overfitting por engano, você já dividiu seus dados. Você usará X_train e y_train para o grid search, e X_test e y_test para decidir se a seleção de atributos ajuda. As quatro partições do conjunto de dados já estão carregadas no seu ambiente. Você também tem acesso a GridSearchCV(), train_test_split(), SelectKBest(), chi2() e RandomForestClassifier como rfc.
Este exercício faz parte do curso
Projetando Workflows de Machine Learning em Python
Instruções do exercício
- Use grid search para testar profundidade máxima de 2, 5 e 10 para o
RandomForestClassifiere armazene a melhor configuração de parâmetro. - Agora reajuste o estimador usando o melhor número de estimadores obtido acima.
- Aplique o seletor de atributos
SelectKBestcom a função de pontuaçãochi2e reajuste o classificador.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Find the best value for max_depth among values 2, 5 and 10
grid_search = GridSearchCV(
____(random_state=1), param_grid=____)
best_value = grid_search.____(
____, ____).best_params_['max_depth']
# Using the best value from above, fit a random forest
clf = rfc(
random_state=1, ____=best_value).____(X_train, y_train)
# Apply SelectKBest with chi2 and pick top 100 features
vt = SelectKBest(____, k=____).____(X_train, y_train)
# Create a new dataset only containing the selected features
X_train_reduced = ____.transform(____)