【发布时间】:2017-01-25 08:45:44
【问题描述】:
我想将其他数据传递给 scikit-learn 中的转换器:
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
import numpy as np
from sklearn.model_selection import GridSearchCV
class myTransformer(BaseEstimator, TransformerMixin):
def __init__(self, my_np_array):
self.data = my_np_array
print self.data
def transform(self, X):
return X
def fit(self, X, y=None):
return self
data = np.random.rand(20,20)
data2 = np.random.rand(6,6)
y = np.array([1, 2, 3, 1, 2, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3])
pipe = Pipeline(steps=[('myt', myTransformer(data2)), ('randforest', RandomForestClassifier())])
params = {"randforest__n_estimators": [100, 1000]}
estimators = GridSearchCV(pipe, param_grid=params, verbose=True)
estimators.fit(data, y)
但是,当在 scikit-learn 管道中使用时,它似乎消失了
我从 init 方法中的 print 得到None。我该如何解决?
【问题讨论】:
-
你确定传递时mydata不是None吗?
-
是的,不是没有
-
我想您应该将
.fit添加到估计器中以使错误出现。 -
好的,谢谢。刚刚添加
标签: python machine-learning scikit-learn