Pipeline’larda özel fonksiyon dönüştürücüleri
Bir noktada, sensörlerin obez bireylerde zayıf performans gösterebileceği söylenmişti. Daha önce bunu ağırlıklar kullanarak ele almıştın, ancak şimdi bu bilginin özellik mühendisliğinde de işe yarayabileceğini düşünüyorsun; bu yüzden bir bireyin kaydedilen kilosunu, obez olup olmadığını gösteren bir göstergeyle değiştirmeye karar veriyorsun. Bunu pipelines kullanarak yapmak istiyorsun. numpy np olarak, RandomForestClassifier(), FunctionTransformer() ve GridSearchCV() mevcut.
Bu egzersiz
Python'da Machine Learning İş Akışları Tasarlama
kursunun bir parçasıdırEgzersiz talimatları
- Özel bir özellik çıkarıcı tanımla. Bu fonksiyon, girdisinin değiştirilmiş bir kopyasını döndürecek.
- Birinci sütunun her değerini, bu değerin sütun ortalamasının bir katı eşiğin üzerinde olup olmadığını belirten bir göstergeyle değiştir.
- Yukarıdaki özellik çıkarıcıyı bir dönüştürücüye çevir ve bir rastgele orman sınıflandırıcıyla birlikte bir pipeline içine yerleştir.
- Grid search CV kullanarak, özellik çıkarıcındaki çarpan sabiti
multiplieriçin 1, 2 ve 3 değerlerini dene.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)