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
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 dadosflowse 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_computerpertence à lista de máquinas comprometidas que você recebeu. - Avalie um
AdaBoostClassifier()nesses dados usandocross_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)))