我想创建一个采用scikit-learn管道并在其上循环的类(如下面的代码示例所示)。
但是在下面的示例中,我只能将管道的实例传递给该类,而不能创建新的管道,以从新模型开始。
from sklearn.ensemble import AdaBoostClassifier
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris
from sklearn.pipeline import Pipeline
class my_class:
def __init__(self,model):
self.model = model
def evaluate(self, X, y):
results = []
for i in range(10):
self.model.fit(X,y) #I always use the same instance here.
y_pred = self.model.predict(X)
results.append(accuracy_score(y_pred=y_pred, y_true=y))
return results
iris = load_iris()
X = iris.data
y = iris.target
pipeline = Pipeline([
('classifier', AdaBoostClassifier())
])
test = my_class(pipeline)
scores = test.evaluate(X,y)
答案 0 :(得分:0)
您的代码可能正在初始化不同的模型,但结果始终是相同的,因为您每次都在相同的数据X
上进行训练和测试,而超参数和random_state
与{{ 1}}。这就是None
列表将始终包含相同值的原因。