開始使用免費開始

在 pipelines 中使用自訂函式轉換器

先前有人告訴你,感測器在肥胖族群上的表現可能較差。你之前用權重處理過這件事,但現在你認為這項資訊也許能用於特徵工程,因此你決定把個體的記錄體重,改成是否肥胖的指標。你想用 pipelines 來完成這件事。已可使用 numpy(作為 np)、RandomForestClassifier()FunctionTransformer() 以及 GridSearchCV()

本練習屬於課程

在 Python 設計機器學習工作流程

檢視課程

練習說明

  • 定義一個自訂特徵擷取器。此函式會輸出其輸入的修改版拷貝。
  • 將第 1 欄的每個值,替換為是否高於該欄平均值乘上某個倍數門檻的指標。
  • 將上述特徵擷取器轉換為一個 transformer,並與隨機森林分類器一同放入 pipeline 中。
  • 使用 grid search 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)
編輯並執行程式碼