我已经针对一些机器学习模型(来自sklearn)编写了包装器类,但是我想直接公开底层模型的属性和方法以与其他代码兼容。
作为玩具示例...
class LogWrapper(BaseEstimator):
def __init__(self, model):
self.model = model
def fit(self, X, y):
y_log = np.log(y)
self.model.fit(X, y_log)
def predict(self, X):
y_log_pred = self.model.predict(X)
y_pred = np.exp(y_log_pred)
return y_pred
# Then you can do
my_model = LogWrapper(DecisionTreeRegressor(max_depth=4))
但是,我想访问model
的方法而不必编写形式的代码
my_model.model.decision_path(X)
我更愿意写
my_model.decision_path(X)
所需行为类似于将LogWrapper
类继承自model
类,并传递给 init 而不是BaseEstimator。