贝叶斯优化调参,但模型参数为字符串型

问题遇到的现象和发生背景

对KNN算法进行使用贝叶斯调参(虽然我不确定这两者是否能搭配使用),在进行优化时,边界出现了报错,出错的代码具体如下:

knn_bo = BayesianOptimization(
        knn_cv,
        {
     'n_neighbors':(1,8), 
    'weights':{'uniform','distance'}, 
    'algorithm':{'auto','ball_tree','kd_tree','brute'},
    'p':(1,3)  
        }

报错如下:setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (4,) + inhomogeneous part.

看见网上大部分的边界都为数值型数据。但是若为字符串型该如何实现呢

用的哪个库?是bayesian-optimization还是别的呢?

  1. 这个问题是由于数组append的时候,前后数组shape不一致导致的,必须一致的才能append。需要检查数组的shape是否一致。
  2. 若为字符串型:将字符串转为数值型再进行分析,转换的方式有很多种,根据你要分析的原数据形式进行对应的转换