[{'role': 'system', 'content': "You are an expert in machine learning and your task is to classify the code snippets into categories from the provided list of categories. List of categories: ['helper_functions', 'load_data', 'data_exploration', 'data_preprocessing', 'evaluation', 'modelling', 'prediction', 'result_visualization', 'save_results', 'comment_only']"}, {'role': 'user', 'content': 'Identify to which category the provided code belongs and assign the code snippet to at least 1 but up to 5 categories based on the probabilities, ignore if the probability of the category is negligible. Strictly provide your response as a list. Avoid providing any additional information, commentary, or personal opinions.\\nPython Code:figNumber = 1   # initialise graph/figure count\ncontourMapResolution = 500\nfor i in range(0,len(fieldsToUse)):\nfor j in range(i+1,len(fieldsToUse)):\nX3 = dfSelected.values[:, [i, j]]    # Get data\nif ((max(X3[:,0])-min(X3[:,0])<0.000001) or (max(X3[:,1])-min(X3[:,1])<0.000001)):\nprint("One Dimensional")\nelse:\nif ((i >= 0) and (j >= 1)):\nprint("Computing for fields \\\'"+dfSelected.columns.values[i]+"\\\' and \\\'"+dfSelected.columns.values[j]+"\\\'")\nmin0 = min(X3[:,0])\nmax0 = max(X3[:,0])\nmin1 = min(X3[:,1])\nmax1 = max(X3[:,1])\ndelta0 = max0-min0\ndelta1 = max1-min1\nif (delta0 > delta1):\ndelta = delta0\nelse:\ndelta = delta1\nnewMin0 = np.mean(X3[:,0])-delta0\nnewMin1 = np.mean(X3[:,1])-(1.7*delta1)   # extra head room for threshold equations\nnewMax0 = np.mean(X3[:,0])+delta0\nnewMax1 = np.mean(X3[:,1])+(1.7*delta1)   # extra head room for the legend\nplt.figure(figNumber)\nboxplotWhiskerExtender = 1.5  # is usually 1.5 * (uq0-lq0) but 1.8 * (uq0-lq0) seemed\nplt.scatter(X3[:, 0], X3[:, 1], color=\'black\')\nlq0 = np.percentile(X3[:, 0],25)\nuq0 = np.percentile(X3[:, 0],75)\nlw0 = lq0 - (boxplotWhiskerExtender*(uq0-lq0))\nuw0 = uq0 + (boxplotWhiskerExtender*(uq0-lq0))\nlq1 = np.percentile(X3[:, 1],25)\nuq1 = np.percentile(X3[:, 1],75)\nlw1 = lq1 - (boxplotWhiskerExtender*(uq1-lq1))\nuw1 = uq1 + (boxplotWhiskerExtender*(uq1-lq1))\nannotateString = "  "   ###  for capturing univariate equations to split off outliers\nif (max0 > uw0):\nannotateString = annotateString+"Upper X: +"+dfSelected.columns.values[i]+\'{:+.2f}\'.format(0.0-uw0)+" = 0\\n  "\ndfSelected[dfSelected.columns.values[i]+\'_Uni_Upper_Outliers\'] = X3[:, 0]-uw0\ndfSelected[dfSelected.columns.values[i]+\'_Uni_Upper_Outliers_FLAG\'] = 0.5*(1.0+np.sign(X3[:, 0]-uw0))\nplt.plot([uw0,uw0],[lw1,uw1], linewidth=1, color=\'red\', linestyle=\'dashed\')\nif (min0 < lw0):\nannotateString = annotateString+"Lower X: -"+dfSelected.columns.values[i]+\'{:+.2f}\'.format(lw0)+" = 0\\n  "\ndfSelected[dfSelected.columns.values[i]+\'_Uni_Lower_Outliers\'] = 0.0-X3[:, 0]+lw0\ndfSelected[dfSelected.columns.values[i]+\'_Uni_Lower_Outliers_FLAG\'] = 0.5*(1.0+np.sign(0.0-X3[:, 0]+lw0))\nplt.plot([lw0,lw0],[lw1,uw1], linewidth=1, color=\'red\', linestyle=\'dashed\')\nif (max1 > uw1):\nannotateString = annotateString+"Upper Y: +"+dfSelected.columns.values[j]+\'{:+.2f}\'.format(0.0-uw1)+" = 0\\n  "\ndfSelected[dfSelected.columns.values[j]+\'_Uni_Upper_Outliers\'] = X3[:, 1]-uw1\ndfSelected[dfSelected.columns.values[j]+\'_Uni_Upper_Outliers_FLAG\'] = 0.5*(1.0+np.sign(X3[:, 1]-uw1))\nplt.plot([lw0,uw0],[uw1,uw1], linewidth=1, color=\'red\', linestyle=\'dashed\')\nif (min1 < lw1):\nannotateString = annotateString+"Lower Y: -"+dfSelected.columns.values[j]+\'{:+.2f}\'.format(lw1)+" = 0\\n  "\ndfSelected[dfSelected.columns.values[j]+\'_Uni_Lower_Outliers\'] = 0.0-X3[:, 1]+lw1\ndfSelected[dfSelected.columns.values[j]+\'_Uni_Lower_Outliers_FLAG\'] = 0.5*(1.0+np.sign(0.0-X3[:, 1]+lw1))\nplt.plot([lw0,uw0],[lw1,lw1], linewidth=1, color=\'red\', linestyle=\'dashed\')\nif (figNumber in ([1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,28])):\nif (figNumber == 1):\n(x1,y1,x2,y2,x3,y3)=(1.62,4.60,3.26,4.60,2.38,3.19)\nif (figNumber == 2):\n(x1,y1,x2,y2,x3,y3)=(3.72,-2.01,4.64,-0.12,3.90,-0.71)\nif (figNumber == 3):\n(x1,y1,x2,y2,x3,y3)=(4.09,439,4.09,420,3.91,430)\nif (figNumber == 4):\n(x1,y1,x2,y2,x3,y3)=(4.07,253,4.07,242,3.94,240)\nif (figNumber == 5):\n(x1,y1,x2,y2,x3,y3)=(4.12,50.2,4.09,49.8,3.94,50.0)\nif (figNumber == 7):\n(x1,y1,x2,y2,x3,y3)=(0.15,0.27,1.79,0.26,0.96,0.53)\nif (figNumber == 8):\n(x1,y1,x2,y2,x3,y3)=(-0.76,3.06,6.05,5.19,2.40,2.71)\nif (figNumber == 9):\n(x1,y1,x2,y2,x3,y3)=(4.40,445,4.72,416,3.24,430)\nif (figNumber == 10):\n(x1,y1,x2,y2,x3,y3)=(4.43,256,4.52,241,3.27,249)\nif (figNumber == 11):\n(x1,y1,x2,y2,x3,y3)=(5.79,50.0,-0.18,49.7,2.11,49.9)\nif (figNumber == 12):\n(x1,y1,x2,y2,x3,y3)=(3.85,11.7,5.56,4.62,3.38,6.93)\nif (figNumber == 13):\n(x1,y1,x2,y2,x3,y3)=(-0.09,0.20,4.25,0.83,1.70,0.66)\nif (figNumber == 14):\n(x1,y1,x2,y2,x3,y3)=(3.82,413,3.77,441,2.67,430)\nif (figNumber == 15):\n(x1,y1,x2,y2,x3,y3)=(3.82,255,3.39,237,2.59,248)\nif (figNumber == 16):\n(x1,y1,x2,y2,x3,y3)=(3.79,49.7,3.85,50.3,2.72,50.0)\nif (figNumber == 17):\n(x1,y1,x2,y2,x3,y3)=(3.40,8.86,4.22,0.61,2.70,3.00)\nif (figNumber == 18):\n(x1,y1,x2,y2,x3,y3)=(3.02,1.20,4.70,0.51,2.91,0.63)\nif (figNumber == 19):\n(x1,y1,x2,y2,x3,y3)=(423,247,429,250,427,248)\nif (figNumber == 28):\n(x1,y1,x2,y2,x3,y3)=(5.57,0.70,1.87,0.52,2.91,0.64)\nqP = quadParams(x1,y1,x2,y2,x3,y3)\nXQ = quadPlot(2.0,*qP)\nplt.plot(XQ[:,0],XQ[:,1], linewidth=1, color=\'blue\', linestyle=\'dashed\', label=\'Visually Separated\')\nquadOut = np.array([quadDiscrim(X3[k,0],X3[k,1],*qP) for k in range(0,len(X3[:,0]))])\ndfSelected[dfSelected.columns.values[i]+\'_\'+dfSelected.columns.values[i]+\'_Quad_Outliers_r1\'] = quadOut\ndfSelected[dfSelected.columns.values[i]+\'_\'+dfSelected.columns.values[i]+\'_Quad_Outliers_r1_FLAG\'] = 0.5*(1.0+np.sign(quadOut))\noutliers = np.where(quadOut[:] > 0.0)\nplt.scatter(X3[outliers, 0], X3[outliers, 1], color=\'blue\')\nif (figNumber == 1):\n(x1,y1,x2,y2,x3,y3)=(3.72,-2.05,4.74,-0.07,4.04,-0.60)\nif (figNumber == 2):\n(x1,y1,x2,y2,x3,y3)=(1.83,3.77,3.19,3.71,2.53,2.35)\nif (figNumber == 17):\n(x1,y1,x2,y2,x3,y3)=(-2.14,6.18,-1.63,7.71,-1.76,6.48)\nqP = quadParams(x1,y1,x2,y2,x3,y3)\nXQ = quadPlot(2.0,*qP)\nplt.plot(XQ[:,0],XQ[:,1], linewidth=1, color=\'blue\', linestyle=\'dashed\')\nquadOut = np.array([quadDiscrim(X3[k,0],X3[k,1],*qP) for k in range(0,len(X3[:,0]))])\ndfSelected[dfSelected.columns.values[i]+\'_\'+dfSelected.columns.values[i]+\'_Quad_Outliers_r2\'] = quadOut\ndfSelected[dfSelected.columns.values[i]+\'_\'+dfSelected.columns.values[i]+\'_Quad_Outliers_r2_FLAG\'] = 0.5*(1.0+np.sign(quadOut))\noutliers = np.where(quadOut[:] > 0.0)\nplt.scatter(X3[outliers, 0], X3[outliers, 1], color=\'blue\')\nplt.annotate(annotateString, xy=(lw0, lw1),\nxycoords="data", textcoords="data",\nxytext=(newMin0, newMin1))\nplt.title("Figure "+str(figNumber)+". 2D outlier detection on JLR data")\nplt.xlim((newMin0, newMax0))\nplt.ylim((newMin1, newMax1))\nxFieldLabel = dfSelected.columns.values[i]+" (field "+str(i)+")"\nyFieldLabel = dfSelected.columns.values[j]+" (field "+str(j)+")"\nplt.xlabel(xFieldLabel)\nplt.ylabel(yFieldLabel)\nplt.plot([uq0,uq0,lq0,lq0,uq0],[lq1,uq1,uq1,lq1,lq1], linewidth=2, color=\'green\', linestyle=\'-\', label=\'Interquartile Range\')\nplt.plot([newMin0,newMin0+1],[newMin1-1,newMin1], linewidth=1, color=\'red\', linestyle=\'dashed\', label=\'Box Whiskers\')\nlegend1_values_list = list( legend1.values() )\nlegend1_keys_list = list( legend1.keys() )\nplt.legend(loc="upper center",\nprop=matplotlib.font_manager.FontProperties(size=10))\nfigNumber += 1\nprint("------")\nplt.show()'}, {'role': 'assistant', 'content': "['modelling', 'result_visualization']"}]