문제가 있는 쪽은 소스인가요, 목적지인가요?
이전 레슨에서는 관심 엔터티로 목적지(destination) 컴퓨터를 사용했어요. 하지만 보안 분석가에 따르면 악성 트래픽은 감염된 머신에서 발생하며, 따라서 flows 데이터셋에서는 목적지가 아니라 소스(source) 로 나타난다고 해요.
데이터 flows, 감염된 ID 목록 bad, 그리고 이전 레슨의 피처 추출기 featurizer()가 미리 로드되어 있어요. 또한 numpy는 np로 사용할 수 있고, AdaBoostClassifier()와 cross_val_score()도 준비되어 있어요.
이 연습은 강의의 일부입니다
Python으로 설계하는 Machine Learning 워크플로
연습 안내
flows데이터셋에서 소스 컴퓨터 ID로 그룹화한 뒤, 각 그룹에 피처 추출기를 적용해source_computer마다 한 행씩 갖는 피처 벡터 데이터 프레임을 만드세요.- 이터레이터에
list()를 호출해 데이터 프레임으로 변환하세요. - 제공된 악성 ID 목록에 각
source_computerID가 포함되는지 확인해 라벨을 만드세요. - 이 데이터에 대해
cross_val_score()를 사용해AdaBoostClassifier()의 성능을 평가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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)))