Tôi muốn áp dụng trọng lượng mẫu và đồng thời sử dụng đường ống từ sklearn, điều này sẽ tạo nên một phép biến đổi tính năng, ví dụ: đa thức, và sau đó áp dụng một bộ hồi quy, ví dụ ExtraTrees.đường ống sklearn - Áp dụng trọng lượng mẫu sau khi áp dụng phép biến đổi đa thức trong đường ống
Tôi đang sử dụng các gói sau trong hai ví dụ dưới đây:
from sklearn.ensemble import ExtraTreesRegressor
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
Tất cả mọi thứ hoạt động tốt miễn là tôi riêng rẽ thay đổi các tính năng và tạo và đào tạo các mô hình sau:
#Feature generation
X = np.random.rand(200,4)
Y = np.random.rand(200)
#Feature transformation
poly = PolynomialFeatures(degree=2)
poly.fit_transform(X)
#Model generation and fit
clf = ExtraTreesRegressor(n_estimators=5, max_depth = 3)
weights = [1]*100 + [2]*100
clf.fit(X,Y, weights)
Nhưng làm điều đó trong một đường ống, không hoạt động:
#Pipeline generation
pipe = Pipeline([('poly2', PolynomialFeatures(degree=2)), ('ExtraTrees', ExtraTreesRegressor(n_estimators=5, max_depth = 3))])
#Feature generation
X = np.random.rand(200,4)
Y = np.random.rand(200)
#Fitting model
clf = pipe
weights = [1]*100 + [2]*100
clf.fit(X,Y, weights)
Tôi nhận được fol Lỗi lowing: TypeError: fit() lấy tối đa 3 đối số (4 đã cho) Trong ví dụ đơn giản này, không có vấn đề gì để sửa đổi mã, nhưng khi tôi muốn chạy một số kiểm tra khác nhau trên dữ liệu thực của tôi trong mã thực, có thể sử dụng đường ống và trọng lượng mẫu
Cảm ơn, Kevin! Điều này giải quyết vấn đề và ví dụ thực sự tốt đẹp để xem các tham số hoạt động như thế nào trong các đường ống! – stefanE