Bộ biến đổi hàm tùy chỉnh trong pipelines
Có thời điểm bạn được thông báo rằng các cảm biến có thể hoạt động kém với những người béo phì. Trước đây bạn đã xử lý điều đó bằng trọng số, nhưng giờ bạn nghĩ thông tin này cũng có thể hữu ích cho việc tạo đặc trưng, nên bạn quyết định thay thế cân nặng ghi nhận của một cá nhân bằng một biến chỉ báo xem họ có béo phì hay không. Bạn muốn làm điều này bằng pipelines. Bạn có numpy dưới tên np, RandomForestClassifier(), FunctionTransformer(), và GridSearchCV().
Bài tập này là một phần của khóa học
Thiết kế quy trình Machine Learning bằng Python
Hướng dẫn bài tập
- Định nghĩa một bộ trích xuất đặc trưng tùy chỉnh. Đây là một hàm sẽ xuất ra một bản sao đã được chỉnh sửa của đầu vào.
- Thay mỗi giá trị ở cột thứ nhất bằng chỉ báo xem giá trị đó có vượt quá một ngưỡng được cho bởi bội số của trung bình cột hay không.
- Chuyển bộ trích xuất đặc trưng ở trên thành một transformer và đặt nó vào một pipeline cùng với một bộ phân loại random forest.
- Dùng grid search CV để thử các giá trị 1, 2 và 3 cho hằng số nhân
multipliertrong bộ trích xuất đặc trưng của bạn.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)