Transformer fungsi kustom dalam pipeline
Pada suatu waktu, Anda diberi tahu bahwa sensor mungkin berkinerja buruk untuk individu dengan obesitas. Sebelumnya Anda menanganinya menggunakan bobot, tetapi kini Anda berpikir bahwa informasi ini juga dapat berguna untuk rekayasa fitur, sehingga Anda memutuskan untuk mengganti bobot (berat badan) yang tercatat dari seorang individu dengan indikator apakah mereka obesitas. Anda ingin melakukannya menggunakan pipeline. Anda memiliki numpy sebagai np, RandomForestClassifier(), FunctionTransformer(), dan GridSearchCV().
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Definisikan ekstraktor fitur kustom. Ini adalah fungsi yang akan menghasilkan salinan termodifikasi dari masukannya.
- Ganti setiap nilai pada kolom pertama dengan indikator apakah nilai tersebut di atas ambang batas yang diberikan oleh kelipatan dari rerata kolom.
- Ubah ekstraktor fitur di atas menjadi sebuah transformer dan letakkan dalam pipeline bersama dengan random forest classifier.
- Gunakan grid search CV untuk mencoba nilai 1, 2, dan 3 untuk konstanta perkalian
multiplierdalam ekstraktor fitur Anda.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)