파이프라인에서 사용자 정의 함수 변환기 사용하기
어느 시점에 비만인(individuals with obesity) 사람들에게는 센서 성능이 좋지 않을 수 있다는 이야기를 들었습니다. 이전에는 가중치로 대응했지만, 이 정보가 피처 엔지니어링에도 유용할 수 있다고 보고, 개인의 기록된 몸무게를 비만 여부를 나타내는 지표로 대체하려고 합니다. 이를 파이프라인으로 구현하려고 합니다. numpy는 np로 제공되며, RandomForestClassifier(), FunctionTransformer(), GridSearchCV()를 사용할 수 있습니다.
이 연습은 강의의 일부입니다
Python으로 설계하는 Machine Learning 워크플로
연습 안내
- 사용자 정의 피처 추출기를 정의하세요. 이 함수는 입력의 수정된 복사본을 반환해야 합니다.
- 첫 번째 열의 각 값을, 그 열의 평균에 어떤 상수를 곱한 임계값을 초과하는지 여부(지표)로 대체하세요.
- 위의 피처 추출기를 변환기로 바꾸고, 랜덤 포레스트 분류기와 함께 파이프라인에 넣으세요.
- 그리드 서치 CV를 사용해 피처 추출기의 곱셈 상수
multiplier에 대해 1, 2, 3 값을 시도하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define a feature extractor to flag very large values
def more_than_average(X, multiplier=1.0):
Z = ____
Z[:,1] = ____ > multiplier*np.mean(Z[:,1])
return Z
# Convert your function so that it can be used in a pipeline
pipe = Pipeline([
('ft', ____(____)),
('clf', RandomForestClassifier(random_state=2))])
# Optimize the parameter multiplier using GridSearchCV
params = ____
grid_search = GridSearchCV(pipe, param_grid=params)