我需要绘制一个准确率与参数的关系图(主要任务是通过网格搜索找到最佳参数值)。现在,由于参数组合很多,我正在迭代这些组合;我考虑用迭代编号来标记每个组合;并绘制准确率与迭代编号的关系图。
我确实需要绘制准确率与每个参数值组合的关系图。但我也想为图表提供一个图例,图例中将包含参数组合值及其相应的迭代编号。如何实现这一点?
parameters = parameterGrid(paramGrid) i = 0 lst = [] maxScore = 0for parameter in parameters: meanAcc = 0 clf = DecisionTreeClassifier(**parameter) dTree = clf.fit(xTrain,yTrain) score = dTree.score(xTest, yTest) if(score > maxScore): maxScore = score selectedParams = parameter plt.plot(i,score) #绘制当前参数集的准确率 l = [i,score] lst.append(l) legend[i] = parameter i += 1plt.xlabel('X轴标签')plt.ylabel('Y轴标签')plt.show()
另外,关于如何进行绘图的任何其他建议都非常欢迎。请帮助我。
回答:
如果你正在循环遍历参数,你可以使用
iter = 0for param1 in [1,2,3,4]: for param2 in [2,3,4,5]: plt.plot(..., label=str(param1)+"_"+str(param2)+"_"+str(iter)) iter += 1plt.legend()