我试图编写一个函数,它运行于分类算法(k-Means)的各种迭代中。在
在sklearn.neighborsClassifier,有几个参数需要调整:n_邻居和叶大小。我想知道是否有一种方法可以指定在特定迭代期间要调整的参数。在from sklearn.neighbors import KNeighborsClassifier
def useNeighbors(iterations, *args):
print(iterations) #normal argument
for arg in args:
KNeighborsClassifier(arg=20)
useNeighbors(2, "n_neighbors", "leaf_size")
我希望这实际上实例化一个KneighborsClassifier实例两次——第一次是邻域数为20,第二次是叶大小为20(邻居的默认值为5,默认叶大小为30)。在
然而,这并不令人惊讶
^{pr2}$
它按预期打印iterations参数,但kneighborsClassifier没有将字符串参数“n_neighbors”识别为我试图指定要调整的参数。在
如何切换要在许多不同迭代中调整的参数/参数?
而且,很明显这是一个玩具案例-我问是因为我希望将不同的ML分类算法集成到一个集成包中,通过Markov链montecarlo迭代方法调整超参数。但是为了做到这一点,我需要能够指定每个算法中的哪些参数在每次迭代中采用马尔可夫链中的“步骤”。在