그룹화된 데이터에서의 특성 엔지니어링
이번에는 이전 연습 문제를 확장해, 각 소스 컴퓨터가 사용한 고유 프로토콜의 개수라는 특성을 하나 더 고려해 보겠습니다. 그룹화된 데이터에서는 이런 방식으로 언제나 특성을 만들 수 있어요. 범주형 열은 고유 값의 개수를, 수치형 열은 평균을 취하는 것부터 시작할 수 있습니다. 이전과 마찬가지로 flows가 미리 로드되어 있고, 정확도 측정을 위한 cross_val_score(), AdaBoostClassifier(), 그리고 pandas는 pd, numpy는 np로 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 설계하는 Machine Learning 워크플로
연습 안내
- 제공된 그룹 이터레이터에
lambda함수를 적용해, 각 소스 컴퓨터가 사용한 고유 프로토콜의 개수를 계산하세요.protocol열을 고유 값 집합으로 줄이려면set()을 사용할 수 있어요. - 인덱스를 지정하고 열 이름을
protocol로 붙여, 결과를 올바른 모양의 데이터 프레임으로 변환하세요. - 새 데이터 프레임을 기존의
X와 이어 붙이세요. cross_val_score()를 사용해 이 새로운 데이터셋에서AdaBoostClassifier()의 정확도를 평가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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)))