ComeçarComece de graça

A origem ou o destino é que está comprometido?

Na lição anterior, você usou o computador de destino como sua entidade de interesse. No entanto, seu analista de cibersegurança acabou de dizer que são as máquinas infectadas que geram o tráfego malicioso e, portanto, aparecerão como origem, não como destino, no conjunto de dados flows.

Os dados flows já foram pré-carregados, assim como a lista bad de IDs infectados e o extrator de atributos featurizer() da lição anterior. Você também tem numpy disponível como np, AdaBoostClassifier() e cross_val_score().

Este exercício faz parte do curso

Projetando Workflows de Machine Learning em Python

Ver curso

Instruções do exercício

  • Crie um data frame em que cada linha seja um vetor de atributos para um source_computer. Agrupe pelo ID do computador de origem no conjunto de dados flows e aplique o extrator de atributos a cada grupo.
  • Converta o iterador em um data frame chamando list() nele.
  • Crie os rótulos verificando se cada ID de source_computer pertence à lista de máquinas comprometidas que você recebeu.
  • Avalie um AdaBoostClassifier() nesses dados usando cross_val_score().

Exercício interativo prático

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

# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)

# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)

# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]

# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))
Editar e executar o código