ComeçarComece de graça

Engenharia de atributos em dados agrupados

Agora você vai dar continuidade ao exercício anterior, considerando um atributo adicional: o número de protocolos únicos usados por cada computador de origem. Observe que, com dados agrupados, sempre é possível construir atributos dessa forma: você pode começar tomando o número de elementos únicos de todas as colunas categóricas e a média de todas as colunas numéricas. Como antes, você tem flows pré-carregado, cross_val_score() para medir acurácia, AdaBoostClassifier(), pandas como pd e numpy como np.

Este exercício faz parte do curso

Projetando Workflows de Machine Learning em Python

Ver curso

Instruções do exercício

  • Aplique uma função lambda no iterador de grupos fornecido para calcular o número de protocolos únicos usados por cada computador de origem. Você pode usar set() para reduzir a coluna protocol a um conjunto de valores únicos.
  • Converta o resultado em um data frame com o formato correto, fornecendo um índice e nomeando a coluna como protocol.
  • Concatene o novo data frame com o antigo, disponível como X.
  • Avalie a acurácia de AdaBoostClassifier() nesse novo conjunto de dados usando cross_val_score().

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
  lambda df: ____)

# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
  protocols, index=____, columns=____)

# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)

# Refit the classifier and report its accuracy
print(____(____(
  AdaBoostClassifier(), ____, y)))
Editar e executar o código