In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"
+ ],
+ "text/plain": [
+ "XGBClassifier(base_score=0.5, booster='gbtree', callbacks=None,\n",
+ " colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,\n",
+ " early_stopping_rounds=None, enable_categorical=False,\n",
+ " eval_metric=None, gamma=0, gpu_id=-1, grow_policy='depthwise',\n",
+ " importance_type=None, interaction_constraints='',\n",
+ " learning_rate=0.300000012, max_bin=256, max_cat_to_onehot=4,\n",
+ " max_delta_step=0, max_depth=6, max_leaves=0, min_child_weight=1,\n",
+ " missing=nan, monotone_constraints='()', n_estimators=100,\n",
+ " n_jobs=0, num_parallel_tree=1, predictor='auto', random_state=0,\n",
+ " reg_alpha=0, reg_lambda=1, ...)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "xgb_def = xgb.XGBClassifier()\n",
+ "xgb_def.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "53575d53-3940-46a7-8950-6dce492daec1",
+ "metadata": {},
+ "source": [
+ "The default result of calling the `.score` method returns the accuracy of a classification model. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "4f299692-ab6e-4316-8a91-a597e2642602",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7458563535911602"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "xgb_def.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "12f269cf-9e66-4e66-a2ea-9ff1c77982cb",
+ "metadata": {},
+ "source": [
+ "The `accuracy_score` function also shows the same results."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "90229fae-c2a1-408c-86fe-988daecff677",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7458563535911602"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "metrics.accuracy_score(y_test, xgb_def.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b1688399-877a-42b4-83b0-0be0c841396b",
+ "metadata": {},
+ "source": [
+ "## 15.2 Confusion Matrix\n",
+ "\n",
+ "A confusion matrix is a table that is used to evaluate the performance of a machine learning model. It shows the number of true positive (TP), true negative (TN), false positive (FP), and false negative (FN) predictions made by the model.\n",
+ "\n",
+ "In binary classification problems, the two possible outcomes are typically referred to as the positive class and the negative class. The positive class is the class that represents the presence of a certain condition or attribute, while the negative class represents its absence. For example, in a medical diagnosis problem, the positive class might represent the presence of a disease while the negative class represents its absence.\n",
+ "\n",
+ "The terms positive and negative do not imply any value judgment or importance; they are simply labels used to distinguish between the two classes. The choice of which class to label as positive and which to label as negative is often arbitrary and can depend on the context of the problem.\n",
+ "\n",
+ "Confusion matrices and other classification performance metrics such as precision and recall are used specifically for classification problems where the goal is to predict a categorical outcome. In regression problems, where the goal is to predict a continuous numerical value, different performance metrics such as mean squared error or R-squared are used instead.\n",
+ "\n",
+ "- True Positive (TP): The number of instances where the model correctly predicted the positive class.\n",
+ "- True Negative (TN): The number of instances where the model correctly predicted the negative class.\n",
+ "- False Positive (FP): The number of instances where the model incorrectly predicted the positive class (Type I error).\n",
+ "- False Negative (FN): The number of instances where the model incorrectly predicted the negative class (Type II error).\n",
+ "\n",
+ "The confusion matrix can help you calculate other performance metrics such as prevalence, accuracy, precision, and recall. Prevalence is the proportion of positive cases in the population. Accuracy is the proportion of correct predictions made by the model. Precision is the proportion of true positive predictions among all positive predictions made by the model. Recall is the proportion of true positive predictions among all actual positive instances.\n",
+ "\n",
+ "In addition to the confusion matrix, there are several other tools and techniques that can be used to evaluate the performance of machine learning models. These include techniques such as ROC curves, precision-recall curves, and calibration plots. These tools can help you gain a deeper understanding of your model's performance and make more informed decisions about how to improve it.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "eca07fd6-cae1-4cd2-87a2-2715c4befbd5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAEUCAYAAAA8z6yoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAnz0lEQVR4nO3de2DN9ePH8dfZ7IK5DS2XUsksZi1ybdRYCbugsG+GUZSGIgu1ROQrMyq3auniri8xkXxFpZRbblu5VVLmPoxtdjvn8/vDz6lhNmrn7NP3+fiH8/7cXp+jy8v78/nsYzEMwxAAAICJuTg7AAAAwF9FoQEAAKZHoQEAAKZHoQEAAKZHoQEAAKZHoQEAAKZHoQFK2A8//KAmTZooOTnZPnb69GmFhIToyy+/tI8tWbJE3bp1U8eOHRUSEqK+fftq165d9uW9evVS27ZtFRERofDwcHXo0EHTp08vcKzt27fr8ccfV0REhMLCwjRgwADt379fkrR582aFhob+7ecXERGhc+fOyWq1auDAgWrfvr3mzZtnH/8rrFar3n//fXXt2lURERHq2LGj4uPjlZub+5f2+eec1ys5OVlDhgy54eNfrm3btgoMDFRmZmaB8Y8//lj169fXZ599ds3tz58/r969exe6/O/4cwBMwQBQ4hYuXGgEBwcbZ8+eNfLy8oxevXoZM2fOtC9PSEgwIiMjjcOHD9vHvv32W6N58+ZGamqqYRiGERUVZaxevdq+PD093bjvvvuMbdu2GYZhGFu2bDHuv/9+Izk52b5OUlKS0axZMyMtLc3YtGmT0alTpxI7x9TUVMPf39/Iz8//2/YZFxdnDB482Dh37pxhGIaRmZlpDBw40Bg+fPgN77Mkcv4VwcHBxgMPPGAsW7aswHivXr2MVq1aFfgzv5rff//dCAwMLMGEgDkwQwM4QGRkpJo0aaIXXnhBCQkJqlixop566ilJ0qlTp/Thhx/qjTfeUK1atezbtGzZUiNHjtSFCxeuus9Lf6OvUqWKJOnNN9/U008/LX9/f/s64eHheuWVV2S1Wgtse/DgQfXt21fdu3dXcHCwBg4cqJycHPt+wsLC1LVrVz3++OM6ceLENcfr16+vo0eP6oknnlB+fr66du2q3377TfXr19fp06clSf/5z3/UtWtXde7cWdHR0fr5558lSSNHjtRTTz2lTp06KT4+vkDGw4cP65NPPtGECRNUoUIFSVK5cuU0duxYhYSESLo4OzF8+HCFhoYqLCxMkyZNUn5+viSpUaNGmjZtmiIjI9W2bVstWLBAGRkZ18x56XxOnz6tzMxMDRkyRBEREerSpYvi4uJks9kKzHRd7/ELEx4erhUrVtg/p6amKisrS3fccYd97NIMXufOnRUcHGzf36hRo5Sdna2IiAhZrVb5+/vrmWeeUfv27ZWcnGw/n+nTpysyMlJWq1UnT55UUFCQNm3aVGgmwHSc3aiA/xWZmZnGgw8+aAQHBxsZGRn28bVr1xpdunQpcvuoqCgjODjYCA8PNzp27Gg0bNjQiI2NNWw2m2EYhhEYGGgcOHCg0O3/PEMzceJEY/ny5YZhGEZubq4RGhpqfPbZZ8aRI0eMxo0bGzk5OYZhGMbs2bONtWvXFjpuGIbh6+trpKWlXTFTcGl88+bNxmOPPWZkZWUZhmEYX3/9tfHwww8bhmEYI0aMMPr06XPVvJ999pnxyCOPXPM7ef75541x48YZNpvNyMnJMfr162e8/fbb9uPPnTvXMAzDSE5ONvz9/Y3s7OxCc17+edmyZUa/fv0MwzCM/Px848UXXzR+/fXXAt/jjRz/csHBwcb3339vtGzZ0jh+/LhhGIYxY8YMY+7cufZZuYyMDKN79+7G6dOnDcMwjB07dtjP4Wrn8+fZnkvnk5+fb/Ts2dN4++23jejoaGPWrFnX/G4Bs2GGBnCQgwcPKjMzU+fOndMPP/xgHzcue/tIRkaGIiIiFBERoQcffFBTpkyxL3v++eeVlJSkVatWacOGDfrll1/0zjvvSJJcXFxks9mKlSU2Nlbe3t5KTEzUmDFjdOLECWVlZcnHx0d+fn7q0qWLXnvtNd11110KCQkpdLw4vvzySx06dEiRkZGKiIhQfHy8zp07p7Nnz0qSmjRpctXtinM+GzZsUFRUlCwWi9zd3RUZGakNGzbYl7dr106S1LBhQ+Xm5iorK6tYmS/l+umnn9SrVy+988476tOnj+rUqVMix3dzc1P79u21cuVKSdLq1asL3O9Uvnx5vfXWW/rqq6/0+uuv66233rrmudx7771XjLm6umry5MlKTEyUYRh68skni/1dAGZAoQEc4PTp0xo8eLBGjRqlUaNGadiwYTp58qQkKSAgQAcPHtSZM2ckSV5eXkpKSlJSUpLCw8OVkZFx1X16e3srNDRUW7dulSQFBgYWuIn4krFjx+rbb78tMDZs2DB99NFHqlWrlqKjo9WwYUMZhiEXFxfNmzdP//73v1W5cmVNmDBBkyZNKnS8OGw2myIiIuzntGzZMi1dulSVKlWSdPEy0tUEBATol19+ueL8jx8/rgEDBig7O1s2m00Wi6XAsS5d8pEkDw8PSbKvc3l5vNyfbza+5ZZbtHbtWg0YMEAZGRnq27ev1q9ff8W5/V3H79y5s1asWKHt27fr9ttvV+XKle3Ljh07ps6dOys1NVVNmjTRs88+e83zKOw7TU1NlYeHh3777Telp6dfcx+A2VBogBJmtVo1dOhQBQcHKzQ0VI888ohat26toUOHymq1ysfHR71799YzzzyjI0eO2LdLTU3V9u3b5eJy9X9N8/LytHHjRgUEBEiSBg4cqOnTpyslJcW+zscff6w1a9bI19e3wLbffPONYmJi1LFjR0nSrl27ZLVatXfvXoWGhqpu3bp68sknFR0dreTk5ELHiyMoKEirVq2y33OzcOFC9enTp8jtfHx8FBYWphdeeMFeajIyMjRmzBhVrlxZnp6eCgoK0rx582QYhnJzc/XRRx+pVatWxcp1ibe3t/1cLs2QSNKCBQs0atQoBQUFKTY2VkFBQfrxxx+vOLe/evxL7r77bmVnZ2vq1Knq0qVLgWUpKSny9vbW008/raCgIH3xxReSLv6zVaZMGVmt1iLL2rlz5xQbG6uJEycqNDRUL7744g3lBEqrMs4OAPzTTZo0SRcuXNCIESPsY6NHj1b37t01ZcoUxcbGaujQoVqxYoWee+45XbhwQefPn1elSpXUsWNH9ezZs8C+Zs2aJYvFogsXLqhFixb2m4vvvfdejR8/Xq+++qqysrKUl5enW2+9VXPmzFG1atXsN+JK0tChQxUTE6Ny5crJy8tLTZs21W+//aZu3bqpQ4cOeuSRR1SuXDl5enoqLi5Ofn5+Vx0vjqCgIPXv31/9+vWTxWKRl5eXpk+fXmBmozAvv/yyZs6cqcjISLm6uio3N1chISEaPHiwJCkuLk7jx49XWFiY8vLy1Lp1a/v3UVxxcXF65ZVXVLFiRbVq1UrVq1eXdHHGZMuWLerYsaPKli2rGjVqqFevXtq7d2+Bbf/q8f8sIiJC8+fPV+vWrQuM33fffVqyZIkefvhhWSwWNWvWTN7e3jp06JDq1KmjgIAAderUSfPnz7/meT7wwAMKCgpSs2bN9Oijj2r+/PkF/vkCzMxiFFXrAQAASjkuOQEAANOj0AAAANOj0AAAANOj0AAAANMz3VNONptNmZmZcnNzK9ZTEgAAwPwMw1BeXp7Kly9/1R9nYbpCk5mZaX97MAAA+N/i6+trf7/bn5mu0Li5uUmSNj4+RtknThexNoB/kmcOXvxJvcbBiU5OAsDR8moN0/79++094HKmKzSXLjNlnzitC0dPOTkNAEe69CoBw6X472QC8M9gcXe/+Gsht5twUzAAADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADA9Cg0AADC9Ms4OAFyuaUxP3TvwX5Jh6PTPv+uT/nHqNPNled9Zx75O5dtr69BXW7UoYqBq3ttI7V9/Qe7ly8ri6qKNr72r5PkrnHgGAG6UYRjqO/JT+ftW1/DHm+lCdp5ixn6urclHZRiGmgXU1IyXQ1TW001bdx/V0AnrlXkhT1abTc8/0VxREQ2dfQpwkhIrNIcPH9aDDz4oX19fSZLNZlP58uXVu3dvdezYUZKUmJiolStXyjAM2Ww2tW7dWkOHDpW7u3tJxUIpV6NxQ7Ua3k9v3R2hnHMZejD+ebUd94z+0+0Z+zo1722kbkve0KcxYyVJ3Ze+qaR+L+jguu9UoZaPnty+TKmbd+n0T4ecdRoAbsCen9M0aOxabd59VP6+1SVJr87aJKvVpl0r+sowDPWKXal/v71JY4cE6dEhyzV7QgeFtLpNh4+dV5MuH6r53TVU7zZvJ58JnKFEZ2g8PT2VlJRk/5yamqro6Gi5urrKZrPp888/1+LFi+Xp6amcnBwNGTJE06dP17Bhw0oyFkqxo9t/0LR67WXLz5erh7sq1PLR2YOH7ctd3NzU+cOJWvPsBJ07fEyuHu76auwMHVz3nSTpfOpxZZ48rYq1b6bQACYzY/52Pd4tQLfWrGgfa9O0tm6rVUkuLhZJFgXe5aMffzqlnFyrRsfcp5BWt0mSat9cQdW9y+rwsfMUmv9RDr2HplatWhoyZIhmz56tkydPymq1Kjs7W5Lk4eGhl156SSEhIY6MhFLIlp+v+hHtNOzwBtVp01Q73//Yvqzx44/q/JET2rv8c0mSNSdXO95b8sfy/t3lUaG8Dm/a6ejYAP6i6aMf1GNhDQqMPRR0u3xvv1hQDqWm640Pt+nRh+vL06OMHu8WYF/vncU7dT4zVy0Cazo0M0oPh98U7Ofnp/3796tLly6qWLGigoKC1KNHD02cOFFHjx5VQEBA0TvBP96+pHWKr95CX42Zpqg1syWLRZLUYmgfbRg/66rb3Deivx4YO1gLw55SfnaOI+MCKGHfpxxTm54LFBPVWKHBdxZYNvGdTRozbaNWvPWIynq6OSkhnM3hhcZiscjT01MVKlTQe++9p9WrV+vRRx9VWlqaBgwYoPj4eEdHQilSpe6tuuW+JvbPO95bqkp1aqpslUq6OfAuuZQpo0NfbSmwjau7m7ouSJD/v0I1u2Wkju/e5+jYAErQolV79FC/j/Tv5+7XC0+1tI/n5ObrsWErtGjlHn27KEp3+93kxJRwNocXmuTkZPn6+ioxMVHbt2/XLbfcom7duik+Pl6JiYlasGCBoyOhFKlQo7oeXTRFZatWkSQ16hmmEykHdOH0WdW5v5kOrt90xTZd5k2WR0UvvdcqUumHUh0dGUAJ+mT9T3pm/Dqtmd3tistRvYav0rmMXG1c1FO31a7kpIQoLRz62PbBgwc1c+ZMvfjii0pOTlZCQoJmzJihypUrS5L279+vBg0aXHsn+Ef77Zvv9fWrbyn6yzmy5Vt1/sgJLe4cI0mqWq+Ozv5asLDUbhGoht0e1ql9B9Vv40L7+OcjJuvn/37j0OwA/n6xr30hwzDUP26NfaxV41qKCm+gJWv2yfe2Kgr61x9/EZ44/H61b327M6LCySyGYRglsePLH9t2cXGRh4eH+vTpow4dOshqtWrWrFlauXKlLBaLbDab/P39NXLkSFWvXr3Q/ebk5CglJUXrwobowtFTJREdQCn1snHxcqKxf4STkwBwtNw6ryglJUX+/v7y8PC4YnmJzdDUrl1be/bsKXS5q6urBg0apEGDBpVUBAAA8D+CVx8AAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTo9AAAADTK1ahyc3NlSQdOnRIX375pWw2W4mGAgAAuB5FFprp06dr5MiROnLkiHr27KkPPvhAEyZMcEQ2AACAYimy0Kxfv14TJkzQypUrFR4erg8++EDbt293RDYAAIBiKbLQ2Gw2eXp66osvvtD9998vm82mCxcuOCIbAABAsRRZaFq2bKnQ0FDl5eWpadOmioqKUtu2bR2RDQAAoFjKFLXCiBEj1KtXL/n4+MjFxUWjR4+Wn5+fI7IBAAAUS5EzNLt379aaNWtktVrVr18/RUdHa8OGDY7IBgAAUCxFFprx48erXr16WrNmjTw9PbVs2TK98cYbjsgGAABQLMW6KTgoKEhffvmlHnroIdWoUUNWq9UR2QAAAIqlyEJTtmxZvffee9q0aZOCg4M1Z84clS9f3hHZAAAAiqXIQjN58mRlZWVp2rRpqlSpko4fP64pU6Y4IhsAAECxFFlofHx81LZtW9lsNm3dulWtW7fW119/7YhsAAAAxVLkY9txcXHasmWL0tPTdccdd2jv3r1q3LixHn30UUfkAwAAKFKRMzTffvutVq1apfbt22vcuHGaM2eOsrOzHZENAACgWIosNDfddJPc3NxUt25d7du3T40aNdL58+cdkQ0AAKBYirzk5OPjo7ffflstW7ZUfHy8JCk3N7fEgwEAABRXkTM0r776qmrXrq2AgAA99NBDWrlypcaMGeOAaAAAAMVT6AzNkSNH7L+/5557dOTIEbVr107t2rVzSDAAAIDiKrTQREVFFbqRxWLRunXrSiQQAADA9Sq00Kxfv96ROQAAAG7YNe+hWbp0qXbv3m3/PGXKFC1durTEQwEAAFyPQgvN3LlztWjRInl5ednHgoKCtGDBAi1YsMAh4QAAAIqj0EKzZMkSvf/++7rjjjvsY82aNVNiYqIWLVrkkHAAAADFUWihcXFxKTA7c4m3t7dcXIp82hsAAMBhCr0p2NXVVWlpaapatWqB8VOnTslqtZZ4sKK8X+m0jmefdHYMAA708v//avF9zak5ADhBTs41Fxc61RIVFaX+/ftr06ZNOnfunHJycrRt2zYNHDhQkZGRf3tOACiKt7e3syMAKKUKnaHp3LmzcnJyNGrUKB07dkySdMstt6hfv36lotDsWBYpD5csZ8cA4EBVWyTK29tbS85Ud3YUAA4W4+eiefPmFbr8mu9y6tGjh3r06KEzZ87IxcVFlSpV+tsDAgAA/FVFvpxSkqpUqVLSOQAAAG4YjysBAADTo9AAAADTK7LQpKenKy4uTr1799bZs2c1atQopaenOyIbAABAsRRZaF566SU1atRIZ8+eVbly5XTTTTcpNjbWEdkAAACKpchCc/jwYfXo0UMuLi5yd3fX0KFD7Y9xAwAAlAZFFhpXV1edP39eFotFkvTrr7/y6gMAAFCqFPnY9uDBg9WrVy8dPXpUTz/9tHbu3KkJEyY4IhsAAECxFFlo2rRpI39/f+3evVtWq1WvvPKKqlWr5ohsAAAAxVJkoZk+fXqBz3v27JEkDRo0qGQSAQAAXKfruhkmLy9P69evV1paWknlAQAAuG5FztBcPhMTExOjfv36lVggAACA63XdjytlZmbqyJEjJZEFAADghhQ5Q9O2bVv7I9uGYSg9PV1PPPFEiQcDAAAoriILzeuvv66qVatKkiwWiypWrCgvL68SDwYAAFBcRRaaESNGaPXq1Y7IAgAAcEOKLDR+fn5avny5AgIC5OnpaR+vWbNmiQYDAAAoriILza5du7Rr164CYxaLRevWrSuxUAAAANej0EKzbNkydenSRevXr3dkHgAAgOtW6GPbc+bMcWQOAACAG8ZrswEAgOkVesnpwIEDateu3RXjhmFwDw0AAChVCi00derU0TvvvOPILAAAADek0ELj5uamWrVqOTILAADADSn0HprGjRs7MgcAAMANK7TQjB492pE5AAAAbhhPOQEAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0AAAANOj0KDUMQxD0SNWafLsLZIkq9WmZ19dp7seflf1HnxHby3cYV/3x59OqfW/5uueiA/UuPMHWvP1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04IFC5SYmKgOHTpo4sSJzo4HoATFxMTYfz948OACy6ZOneroOCjlTPdySvxv+eabb7R06VK5u7tr7ty5CgkJUZMmTdSkSRPNmTPH2fEAlKA//yD733//vdBlgMQMDUo5V1dXuf//W9V37NihZs2aFVgG4J/rz+/ru/zdfbzLD5ej0KDUy83NVXp6ulJSUtS8eXNJUnp6umw2m5OTAShJzMLgenDJCaVaaGioevfuLZvNpubNm6t27drasWOHpkyZorCwMGfHA1CCbDab0tPTZRiGrFar/feSZLVanZwOpQ1v20ap99lnn+nUqVPq3LmzvLy89O677yo7O1sxMTFMOwP/YH5+fleMWSwWGYYhi8WiPXv2OCEVSitmaFDqubq66pNPPlFCQoLKli0rX19f9e3blzID/MPt3btXNptNVqtVbm5uysjI0MaNG1W/fn3ddtttzo6HUoZCg1Jt9erVmjp1qoYMGSI/Pz9ZLBbt3r1br776qnJycvTQQw85OyKAEvLTTz9pwIABeumll9SyZUt169ZNkpSRkaGJEyfqvvvuc3JClCYUGpRqc+bM0QcffKCaNWvax+rWravAwEC98MILFBrgH2zSpEl69tlnFRwcrKVLl8owDK1atUonTpzQ0KFDKTQogKecUKplZmYWKDOX3H777crJyXFCIgCOcvToUYWHh0uSNm/erJCQELm6uqpGjRrKyMhwcjqUNhQalGrX+lkz3M8O/LO5uPzxv6gdO3aoadOm9s/8hQaX45ITAKBUqlSpkvbu3auMjAydPHnSXmi2b98uHx8fJ6dDaUOhQam2b98+NW7c+IpxwzCUm5vrhEQAHGXYsGGKjo5WRkaGhg8frnLlymn27Nl66623NGPGDGfHQynDz6FBqZaamnrN5bVq1XJQEgDOkJubq+zsbFWsWFHSxdkZb29vHtvGFSg0AADA9LgpGAAAmB6FBgAAmB6FBsAVDh8+LH9/f0VERKhz587q1KmT+vbtq2PHjt3wPj/++GONHDlSktS/f38dP3680HXffPNNbdu27br2X79+/auO//LLL3rqqacUFhamsLAwPffcczp9+rQkadq0aZo2bdp1HQdA6UShAXBVN910k5KSkrR8+XKtWrVK9evX16RJk/6WfScmJl7zsdutW7f+LW9TPn78uHr37q3u3bvrk08+0YoVK1SvXj0NGjToL+8bQOnCY9sAiqV58+aaMmWKJKlt27YKCAjQnj17tGDBAn399df68MMPZbPZ1LBhQ7388svy8PDQ8uXLNWvWLHl5ealWrVoqV66cffs5c+aoevXqGjt2rL7//nu5ubnp6aefVm5urlJSUhQXF6fp06fL09NTY8aM0dmzZ+Xp6amXXnpJDRo00OHDhxUbG6usrCzdfffdV828cOFCtWjRQm3btpV08U3N/fv3V+3atZWfn19g3Xnz5ikpKUkXLlyQm5ubEhISdMcdd+i1117Txo0b5eLiopCQEA0aNEjfffed4uPjJV38WSkJCQny9vYuqa8eQDEwQwOgSHl5eVqzZo0CAwPtY23atNGaNWt0+vRpffTRR1q0aJGSkpJUtWpVzZ49W8ePH9fkyZM1f/58LV68WJmZmVfsd+7cucrKytLq1av1/vvva8aMGerYsaP8/f01fvx41a9fXyNGjFBsbKyWLVumcePGaejQoZKkcePGqWvXrkpKSrrqzyqSpD179qhhw4YFxlxdXRUaGqoyZf74+1xGRoY+//xzzZ07VytXrtQDDzyg+fPnKzU1VRs2bNCKFSu0cOFC/fTTT8rJydHMmTM1ZswYffzxx2rVqpV+/PHHv+FbBvBXMEMD4KpOnDihiIgISRd/FkhAQICee+45+/JLsyKbN2/WoUOH1L17d0kXy0+DBg20Y8cO3XPPPapWrZokKSwsTJs2bSpwjK1bt6p79+5ycXFR9erVtWrVqgLLMzMzlZKSolGjRtnHsrKydObMGW3ZskUJCQmSpPDwcMXFxV1xDhaLRe7u7kWeq5eXlxISErRq1Sr9+uuv+vrrr3XXXXfJx8dHHh4eioyMVHBwsIYPHy4PDw+1a9dOgwYNUkhIiNq1a8dLEoFSgEID4Kou3UNTGA8PD0mS1WpVhw4d7IUiMzNTVqtV3333XYH3bf15RuTPYxaLxf750KFDqlGjhv2zzWaTu7t7gRzHjh1T5cqVJf3xPi+LxVLgvT+X+Pv7KyUlpcCYzWbTkCFDNGbMGPvY0aNH1atXL0VFRalNmzaqVq2a9uzZozJlyug///mPtmzZog0bNigyMlJz585VdHS0goOD9cUXXyg+Pl67d+/WwIEDC/2uAJQ8LjkB+EuaN2+utWvXKi0tTYZhaMyYMfrwww/VpEkT7dy5U8ePH5fNZtOnn356xbZNmzbVp59+KsMwlJaWpqioKOXm5srV1VVWq1UVKlTQbbfdZi80GzduVM+ePSVJrVq10ooVKyRJ//3vf6/6ssIePXroq6++0ldffSXpYgGaOXOm0tLS7DNHkpScnKw6deooOjpajRo10ueffy6r1aoff/xRUVFRatq0qUaMGKG6devq4MGD6tatmzIzMxUdHa3o6GguOQGlADM0AP4SPz8/DRo0SH369JHNZtNdd92lAQMGyMPDQ3FxcYqOjlbZsmV15513XrHtY489pvHjxys8PFyS9NJLL8nLy0utW7fWyy+/rNdee03x8fEaM2aM3n33Xbm5uWnq1KmyWCwaPXq0YmNjtXjxYvn7+6t8+fJX7L969epKTEzUpEmTNHnyZFmtVjVo0OCK9wDdd999WrhwoTp27CjDMNS0aVMdOHBADRo0UGBgoEJDQ1W2bFk1btxYbdq0UdmyZTVy5EiVKVNG5cqV0/jx40vmywVQbLz6AAAAmB6XnAAAgOlRaAAAgOlRaAAAgOlRaAAAgOlRaAAAgOlRaAAAgOlRaAAAgOlRaAAAgOn9H5oauyO5fAY7AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"
+ ],
+ "text/plain": [
+ "ConfusionMatrix(ax=,\n",
+ " classes=['DS', 'SE'],\n",
+ " cmap=,\n",
+ " estimator=XGBClassifier(base_score=0.5, booster='gbtree',\n",
+ " callbacks=None, colsample_bylevel=1,\n",
+ " colsample_bynode=1, colsample_bytree=1,\n",
+ " early_stopp...\n",
+ " eval_metric=None, gamma=0, gpu_id=-1,\n",
+ " grow_policy='depthwise',\n",
+ " importance_type=None,\n",
+ " interaction_constraints='',\n",
+ " learning_rate=0.300000012, max_bin=256,\n",
+ " max_cat_to_onehot=4, max_delta_step=0,\n",
+ " max_depth=6, max_leaves=0,\n",
+ " min_child_weight=1, missing=nan,\n",
+ " monotone_constraints='()',\n",
+ " n_estimators=100, n_jobs=0,\n",
+ " num_parallel_tree=1, predictor='auto',\n",
+ " random_state=0, reg_alpha=0,\n",
+ " reg_lambda=1, ...))"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "classifier.confusion_matrix(xgb_def, X_train, y_train, \n",
+ " X_test, y_test, \n",
+ " classes=['DS', 'SE'], ax=ax)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "400d5acc-94a6-40c8-b502-60d2c25b3250",
+ "metadata": {},
+ "source": [
+ "We can also use scikit-learn to create a NumPy matrix of a confusion matrix."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "79bb591d-cc0f-4b34-94f3-deeb0702c80b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[372, 122],\n",
+ " [108, 303]], dtype=int64)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cm = metrics.confusion_matrix(y_test, xgb_def.predict(X_test))\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "2dc30499-e775-4991-a029-296d4c339fc7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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s7MZOXIkd9xxh/7gqon69eszb948vv76awYNGsQ999zDxo0bAZg5cyZxcXHO1969e71crfxe6iZ7UU5ODmFhYZw/f56kpCQADhw4wMiRI+nSpQvt2rXzcoVXtuzsbIKDg5k+fToA3377LaNHj6Zz587qJvsgtQy9xGq1snTpUrp3786ECRPIy8sDoGnTptSrVw9/f38vVyh79+5l2rRpFBaWzSp0zTXXEBISgtls9nJlUhU0NtlDfnk32WQyYbfbGTZsGL169WLp0qUsXryYWrVqYbfbGThwIIMGDfJ2yQLMmzePtWvXEhgYiMPhYNSoUaSnp19yN7lr166MGzfOe4XK76YwFBFB3WQREUBhKCICKAxFRACFoYgIoDAUEQEUhj7jyJEjhIeH079/f/785z9z3333MXz4cI4fP/6bz/n+++/z5JNPAjBq1Chyc3PLPfb111/nq6+++lXnv9xD5bNmzWLWrFkVvq9nz54cOXLE7c9x55wiCkMfEhYWxqpVq1i5ciVr1qyhXbt2vPDCC5Vy7rfffptGjRqVu//LL790e8EfkepIw/F8WLdu3Xj55ZeBstZUREQEe/bs4d1332Xz5s0sWLCA0tJSOnXqxNSpUwkICGDlypXMmzeP4OBgmjZtSmBgoPP9CxcupGHDhjz99NNs374df39/Hn30UYqKisjIyCAxMZHZs2dTq1Ytpk2bxtmzZ6lVqxZTpkyhY8eOHDlyhISEBAoKCujcubPL+hctWsSqVav46aef8Pf356WXXqJVq1YAzJ49m6ysLAICAnj66adp3749p06dIikpiePHj2MYBk888QS33npr1f2CxaeoZeijiouL+fjjj7n++uud23r06MHHH3/Mjz/+SFpaGqmpqaxatYoGDRrwz3/+k9zcXF588UUWL17Me++9h81mu+S8KSkpFBQUsHbtWubPn8+cOXPo06cP4eHhPPvss7Rr146JEyeSkJDAihUrSE5OJj4+HoDk5GTuv/9+Vq1axQ033FBh/VarlfT0dFJSUvjwww+5/fbbWbx4sXN/y5YtWblyJY8++qizK//cc8/xwAMP8P777zNv3jySkpKwWq2V8NuUK4Fahj7kxIkT9O/fH4CioiIiIiJ44oknnPsvtMa2bdtGdnY2MTExQFlwduzYkW+++YbIyEhCQ0MB6Nu3L59//vlFn/Hll18SExODyWSiYcOGrFmz5qL9NpuNjIwMJk2a5NxWUFDAmTNn+OKLL3jppZeAsslQExMTy/0uwcHBvPTSS6xZs4aDBw+yefNmOnTo4Nx/YSLVP/7xjyQkJHDu3Dm2bNnCDz/8wOuvvw6UrdV7+PDhX/EblCuZwtCHXLhmWJ6AgAAA7HY79957rzOMbDYbdrudrVu38svRmZdbyNvPzw/DMJw/Z2dn07hxY+fPpaWlWCyWi+o4fvy4cxzvhfMbhlHhnI3Hjh0jLi6OoUOH0qNHD0JDQ9mzZ49z/y8nS3A4HPj5+VFaWsqCBQucn3XixAkaNGhAenp6uZ8jcoG6yVegbt26sW7dOk6fPo3D4WDatGksWLCALl26sGPHDnJzcyktLeWjjz665L1du3blo48+wuFwcPr0aYYOHUpRURFmsxm73U5ISAhXX321Mww/++wzhgwZAsCtt97K6tWrAfj3v//tnA3mcr799ltatmzJQw89xHXXXUd6evpFN2g++OADANatW0fr1q0JDAzk5ptv5t133wXKZqnu27cvP/30U+X80sTnqWV4BWrfvj1jx47lwQcfpLS0lA4dOjB69GgCAgJITEzkoYceonbt2rRp0+aS98bGxvLss8/Sr18/AKZMmUJwcDDdu3dn6tSpzJgxg5kzZzJt2jTeeecd/P39eeWVVzAMg6SkJBISEnjvvfcIDw8nKCio3BqjoqJYsmQJffr0weFw0LVrV/bt2+fcf/DgQfr3709QUBD/+Mc/AEhMTCQpKYm+ffsC8MILLxAcHFyZvzrxYZq1RkQEdZNFRACFoYgIoDAUEQEUhiIigMJQRARQGIqIAApDEREA/j8uQxKKy8WIyAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "\n",
+ "disp = metrics.ConfusionMatrixDisplay(confusion_matrix=cm,\n",
+ " display_labels=['DS', 'SE'])\n",
+ "\n",
+ "_=disp.plot(ax=ax, cmap='Blues')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "374d605a-6b9b-4995-9478-3739b9259f8e",
+ "metadata": {},
+ "source": [
+ "If you prefer to use fractions (which might sometimes make it easier to understand a confusion matrix) instead of\n",
+ "counts, the `normalize='true'` parameter is there to be used."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "02aa5b6e-0dfe-4013-a57a-873c99867a8e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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C88ALyU8PBwAl8vFnXfe6UlATqcTl8vFJ598wn/OjPy5zalDQkJKbE6/Z88efvOb33jeu91uwsLCSsRx8OBBz7zZC9c3DKPUNQ9/+OEHkpOT6d+/P+3bt6d27dps377dc/4/FyQwTZOQkBDcbjfz58/3fNfhw4epVasWWVlZl/weCW5qAgehG2+8kffee49jx45hmibp6enMnz+f6667juzsbA4dOoTb7Wb16tUXfbZt27asXr0a0zQ5duwY/fv3p7CwELvdjsvlomrVqlx99dWeBLhhwwb69esHwM0338ybb74JwLvvvutZZeXnfPXVV8TExPDggw9y7bXXkpWVVaKTZeXKlQC89957xMXFERkZSbt27XjllVeA86s5d+vWjR9//NE/vzQJSKoBBqGmTZsydOhQBgwYgNvtplmzZgwZMoTw8HBSU1N58MEHqVKlCg0bNrzos3379mXSpEl0794dgHHjxuFwOEhMTOTJJ59k+vTpzJgxg/T0dF588UVCQ0OZNWsWhmGQlpbG6NGjyczMJD4+nqioqEvGeMstt7B48WK6du2KaZq0bduWnTt3es7v3r2bHj16EBUVxbRp0wBITU0lLS2Nbt26AfDUU0/hcDj8+auTAKPVYEQkaKkJLCJBSwlQRIKWEqCIBC0lQBEJWkqAIhK0lABFJGgpAYpI0Po/Rh26KQ+PlI8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "cm = metrics.confusion_matrix(y_test, xgb_def.predict(X_test),\n",
+ " normalize='true')\n",
+ "\n",
+ "disp = metrics.ConfusionMatrixDisplay(confusion_matrix=cm, \n",
+ " display_labels=['DS', 'SE'])\n",
+ "_=disp.plot(ax=ax, cmap='Blues')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7594f76a-20ab-477c-ba3d-5354949cda98",
+ "metadata": {},
+ "source": [
+ "## 15.3 Precision and Recall\n",
+ "\n",
+ "Precision measures the proportion of correct positive predictions made by the model divided by all of the positive predictions. We can mathematically represent it as the correct positive guesses all over all positive guesses i.e the fraction of actual positives that the system classified correctly. We need lower false positives in order to have a high precision. \n",
+ "\n",
+ "$$\n",
+ "\\frac{TP}{TP + FP}\n",
+ "$$\n",
+ "\n",
+ "A system with high precision might leave some good items out but what it returns are items of high quality. If you were a book lover who didn’t have the time to search for books, you’d need a recommender system that had a high precision. The ratio of total number of relevant items found to the total items found by the recommender system.\n",
+ "\n",
+ "Recall measures the proportion of actual positive examples that the model correctly predicts. We can mathematically represent it as the correct positive guesses all over all truly positive items ie a proportion of actual positives classified correctly among all the data. We need the system to have a lower false negatives for it to have a high recall.\n",
+ "\n",
+ "$$\n",
+ "\\frac{TP}{TP+FN}\n",
+ "$$\n",
+ "\n",
+ "A system with a high recall might give you a lot of duds but it will also return most of the good items. Recall could be likened to a jewelry burglar, whilst robbing a jewelry store, who would collect all the items that remotely looked like an expensive piece of jewelry. The ratio of the relevant items found to the number of relevant items available.\n",
+ "\n",
+ "These two metrics are often at odds with each other, meaning that improving one can reduce the other. The tradeoff between precision and recall depends on the specific needs of the problem being solved.\n",
+ "\n",
+ "One additional fact about precision and recall is that they are often used together to evaluate the performance of a binary classification model. A common way to combine these two metrics is by calculating their harmonic mean, known as the F1 score. The F1 score provides a single measure of a model's performance that takes into account both precision and recall.\n",
+ "\n",
+ "Another related concept is the Receiver Operating Characteristic (ROC) curve, which plots the true positive rate (recall) against the false positive rate for different classification thresholds. The area under the ROC curve (AUC) is a commonly used performance metric that summarizes the tradeoff between true positive rate and false positive rate for a binary classifier.\n",
+ "\n",
+ "### Five examples where high precision may be preferred over high recall:\n",
+ "\n",
+ "1. Search engine results: In the case of a search engine, it may be more important to return highly relevant results (high precision) even if it means that some relevant results are not returned (lower recall). Users are more likely to be satisfied with a small number of highly relevant results than with a large number of irrelevant results.\n",
+ "\n",
+ "2. Email spam filter: In the case of an email spam filter, it may be more important to correctly identify all non-spam emails (high precision) even if it means that some spam emails make it through the filter (lower recall). The cost of incorrectly identifying a non-spam email as spam (a false positive) can be high, while the cost of missing a spam email (a false negative) is relatively low.\n",
+ "\n",
+ "3. Advertising: In advertising, it may be more important to show ads to people who are likely to be interested in the product or service being advertised (high precision) even if it means that some people who might be interested do not see the ad (lower recall). The cost of showing an ad to someone who is not interested (a false positive) can be high, while the cost of missing someone who might be interested (a false negative) is relatively low.\n",
+ "\n",
+ "4. Recommender systems: In recommender systems, such as those used by online retailers or streaming services, it may be more important to recommend items that the user is likely to enjoy or find useful (high precision) even if it means that some items that the user might enjoy or find useful are not recommended (lower recall). The cost of recommending an item that the user does not enjoy or find useful (a false positive) can be high, while the cost of missing an item that the user might enjoy or find useful (a false negative) is relatively low.\n",
+ "\n",
+ "5. Credit scoring: In credit scoring, it may be more important to correctly identify applicants who are likely to repay their loans on time (high precision) even if it means that some applicants who would repay their loans on time are not approved for credit (lower recall). The cost of approving an applicant who will not repay their loan on time (a false positive) can be high, while the cost of denying credit to an applicant who would repay their loan on time (a false negative) is relatively low.\n",
+ "\n",
+ "### Five examples where high recall may be preferred over high precision:\n",
+ "\n",
+ "1. Fraud detection: In the case of detecting fraudulent transactions, it may be more important to correctly identify as many fraudulent transactions as possible (high recall) even if it means that some legitimate transactions are incorrectly flagged as fraudulent (lower precision). The cost of missing a fraudulent transaction (a false negative) can be very high, while the cost of flagging a legitimate transaction as fraudulent (a false positive) is relatively low.\n",
+ "\n",
+ "2. Disease diagnosis: In medical diagnosis, it may be more important to correctly identify all patients with a certain disease (high recall) even if it means that some healthy patients are incorrectly identified as having the disease (lower precision). The cost of missing a positive case (a false negative) can be very high, while the cost of incorrectly identifying a negative case (a false positive) is relatively low.\n",
+ "\n",
+ "3. Natural disaster warning systems: In the case of natural disaster warning systems, it may be more important to correctly warn all people in danger (high recall) even if it means that some people who are not in danger receive a warning (lower precision). The cost of missing a person in danger (a false negative) can be very high, while the cost of warning a person who is not in danger (a false positive) is relatively low.\n",
+ "\n",
+ "4. Quality control in manufacturing: In manufacturing, it may be more important to correctly identify all defective products (high recall) even if it means that some non-defective products are incorrectly identified as defective (lower precision). The cost of missing a defective product (a false negative) can be very high, while the cost of incorrectly identifying a non-defective product as defective (a false positive) is relatively low.\n",
+ "\n",
+ "5. Criminal investigations: In criminal investigations, it may be more important to correctly identify all potential suspects (high recall) even if it means that some innocent people are investigated (lower precision). The cost of missing a potential suspect (a false negative) can be very high, while the cost of investigating an innocent person (a false positive) is relatively low.\n",
+ "\n",
+ "In the case of stock trading using classification to predict whether the market will go up or down, the choice between precision and recall would depend on the specific trading strategy and the relative costs of false positives and false negatives. If the trading strategy involves taking long positions when the market is predicted to go up and short positions when the market is predicted to go down, then a high precision would be important to minimize losses from incorrect predictions. In this case, a false positive (predicting an up day when it is actually a down day) would result in a loss from a long position, while a false negative (predicting a down day when it is actually an up day) would result in a loss from a short position. The relative costs of these two types of errors would depend on the specifics of the trading strategy and the market conditions.\n",
+ "\n",
+ "On the other hand, if the trading strategy involves taking long positions only when there is a high degree of confidence that the market will go up, then a high recall may be more important to capture as many profitable opportunities as possible. In this case, a false negative (failing to predict an up day) would result in a missed opportunity for profit, while a false positive (incorrectly predicting an up day) would have no impact if no position is taken.\n",
+ "\n",
+ "Risk to Reward ratio is key.\n",
+ "\n",
+ "\n",
+ "Let us visualize the tradeoff between these two measures, using a `precision-recall` curve\n",
+ "found in Yellowbrick."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "f7188e15-0182-4cc6-a129-10283ebd136b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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FtCvXz8AGjduzJIlS7Db7VitVgYNGsTff//tOPbQoUM88sgjBAQE8Pzzz9O/f3/279+fpv7mzZvz008/OXrC8+bNo2HDhri5ud0wpieeeIJly5axbNmydEn9mqCgILp06cKoUaOw2+23dR4bN27kpZdeomPHjgDs3bsXm82WpetWr149KlWqxIQJExx//C9fvszYsWMpW7YsAIULFyYkJASAo0ePcvjw4RvWd60H/umnn9KzZ08AKlasmOZL2oULF3jkkUccdd5I8+bNWbBgAcnJydjtdr799luaNm1603O6dOkSr776Ku+//z4VK1Zk1KhRXLlyxTFi/OGHH8bLy4tx48YRFxfnOG7v3r2cOXMm3WOJa65cuUJISAi1atXCzc2N5557jnfeeYfLly8DYLVaGT9+PAkJCZQoUcJx3KlTp4iNjeW1117joYceYtu2bVitVux2O9999x1vvfUWzZo144033qBZs2YcOHDghuVZ0axZM7799ltHGyNGjODDDz/M0rGSf6jHLve8Zs2a8dxzz/H0009jMpnw8fFh+vTpmEwmXn75ZcaNG8djjz2GzWajY8eOPPzww6xZswaAatWq0aFDB7p3746XlxceHh68++67aerv0aMHFy5coGfPntjtdvz9/ZkyZUq2xD5kyBA6dOjA999/T+/evW/5PMLDw3nppZfw8vLCx8eHhg0bcvr06Sy3P23aNKZOnUq3bt2wWCzY7Xa6dOnCM888A8B//vMfhg8fzvr166lUqdJNb+X27NmTGTNmOMYouLm5MWPGDMaNG8ecOXNISUnh1VdfpX79+pnW85///IcPPviALl26kJKSQu3atRkxYkSmx1z7wtOpUyfHYD9PT08+/vhjevbsSb169WjZsiVz5sxhzpw5PPXUU9jtdq5evUrFihUZNmxYmrEV156xX6t74MCBjsc0L7zwAp6eno7rlJSUxP3338+MGTPSxFS1alVatmxJhw4dcHNzIzAwkMqVK3Pq1Cm6dOnC9u3b6dixI56enpQqVYrg4GBcXV0zLD906FCm5w/w4osv8sEHH9C1a1dsNhvVq1dn+PDhNz1O8heTcacP4UREROSeoVvxIiIiTkSJXURExInkaGLfu3cvwcHB6crXrFlD9+7d6dWrF99//31OhiAiIpKv5Njguc8//5zly5fj6emZpjw5OZkJEybw448/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4+Hh4SgvXbp0jgUmIiIity5LiX3v3r3s27cvzTKuJpOJ1atX51hgIiIicusyTeyXLl1i0qRJeHt7U69ePV5//XX8/PzuVmwiIiJyizJ93e3tt9+mePHiDB06lOTkZCZMmJDliu12OyNHjqRXr14EBwdz6tSpDPcbMWIEU6ZMubWoRUREJEM37bF/8cUXADRt2pQuXbpkueJVq1ZhtVpZtGgRe/bsYeLEicycOTPNPgsXLiQ0NJSGDRveeuQiIiKSTqY9dldX1zQ/X//5Znbu3Enz5s0BqFu3LiEhIWm27969m71799KrV69biVdEREQycUuLqt/KbHOxsbH4+Pg4PlssFlJSUgAICwtj+vTpjBw58laaFxERkZvI9Fb8kSNHaN26tePzpUuXaN26NYZh3HRUvI+PD3FxcY7PdrsdF5fU5n777TciIyMZOHAg4eHhJCYmUqlSJbp163an5yMiIpKvZZrYf//999uuOCgoiLVr19KxY0f27NlDYGCgY1vfvn3p27cvAIsXL+b48eNK6iIiItkg08RepkyZ2664bdu2bNq0id69e2MYBuPHj2fFihXEx8frubqIiEgOMRnXzzpzj0pKSiIkJISaNWvi7u6e2+GIiIjkuNvNfbc0eE5ERETubUrsIiIiTkSJXURExIkosYuIiDgRJXYREREnosQuIiLiRJTYRUREnIgSu4iIiBNRYhcREXEiSuwiIiJORIldRETEiSixi4iIOBEldhERESeixC4iIuJElNhFRESciBK7iIiIE1FiFxERcSJK7CIiIk5EiV1ERMSJKLGLiIg4ESV2ERERJ6LELiIi4kSU2EVERJyIEruIiIgTUWIXERFxIkrsIiIiTkSJXURExIkosYuIiDgRJXYREREnosQuIiLiRJTYRUREnIgSu4iIiBNRYhcREXEiSuwiIiJORIldRETEiSixi4iIOBGXnKrYbrczatQoDh8+jJubG2PHjsXf39+xfeXKlXz99ddYLBYCAwMZNWoUZrO+Z4iIiNyJHMukq1atwmq1smjRIoYOHcrEiRMd2xITE/noo4/45ptvWLhwIbGxsaxduzanQhEREck3ciyx79y5k+bNmwNQt25dQkJCHNvc3NxYuHAhnp6eAKSkpODu7p5ToYiIiOQbOZbYY2Nj8fHxcXy2WCykpKSkNmo2U7RoUQDmzZtHfHw8TZs2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I5MnTwYgNDSU4OBgunfvTqtWrViwYEFunoaIXEc9dpF8JCwsjMcee4ykpCQiIyOpVasW06dPJzQ0lJCQEH788UdMJhNvvPEGy5cvp2LFinz33Xf89NNPeHp68uyzzxISEsKyZct48cUXady4MWfOnKFz58488cQTuX16IoISu0i+cu1WvN1uZ+LEiRw7doymTZsyefJk9u3b55izPjExkdKlS3P58mVatWrlWHTiq6++AqB69er89ddfzJo1i9DQUOLj43PrlETkfyixi+RDZrOZYcOG0aVLF7744gtsNhv9+vVjwIABAERHR2OxWBw9+GsuXbqEp6cn77zzDn5+frRq1YqOHTuycuXK3DoVEfkfesYukk+5uLgwbNgwZsyYQY0aNVi2bBlxcXGkpKTw0ksv8fvvv9OgQQPWr1/vKB86dCghISFs2rSJQYMG0aZNG8fKXzabLZfPSERAPXaRfK1FixbUq1ePHTt28PDDD/P4449js9lo3rw5Xbt2xWQy8dRTT9G7d2/sdjtt27alSZMmvPLKK/Tp0wd3d3eqVatGmTJlOHv2bG6fjoig1d1EREScim7Fi4iIOBEldhERESeixC4iIuJElNhFRESciBK7iIiIE1FiFxERcSJK7CIiIk7k/wGuSQwFH+i+CwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(0.0, 1.05)"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from yellowbrick import classifier\n",
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "\n",
+ "classifier.precision_recall_curve(xgb_def, X_train, \n",
+ " y_train, X_test, y_test, micro=False, macro=False, ax=ax, per_class=True)\n",
+ "\n",
+ "ax.set_ylim((0,1.05))\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9f188677-54bb-4fb7-b343-79248cb51ff2",
+ "metadata": {},
+ "source": [
+ "A `precision-recall` curve, is a plot that shows the tradeoff between precision and recall for different probability thresholds. Many machine learning models have a `.predict_proba` method that returns a probability for both positive and negative labels rather than just a single label or value for prediction. By changing the threshold for assigning a label, one can produce a model with different levels of precision and recall. For example, if the probability of the positive label is above a threshold of .98, the model would assign the positive label. This would likely produce a model with high precision and low recall (a point on the upper left of the plot). By loosening this threshold from .98 down to .01 and tracking both precision and recall, one can produce the precision-recall plot.\n",
+ "\n",
+ "It is important to note that a high area under the precision-recall curve represents both high recall and high precision, where high precision relates to a low false positive rate, and high recall relates to a low false negative rate. High scores for both show that the classifier is returning accurate results (high precision), as well as returning a majority of all positive results (high recall). This plot can help you understand how your model might perform given different considerations such as minimizing false positives or maximizing true positives.\n",
+ "\n",
+ "## 15.4 F1 Score\n",
+ "\n",
+ "The F1 score is the harmonic mean of precision and recall. The F1 score is a measure of a test's accuracy that considers both precision and recall. It is calculated as the harmonic mean of precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0. The F1 score is particularly useful when you want to strike a balance between precision and recall, as it provides a single number that can help describe the performance of a classifier in terms of both metrics."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "1df88d58-2439-4f7a-83e5-61023da736e4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7248803827751197"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "metrics.f1_score(y_test, xgb_def.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "779c2f94-66b4-413e-908a-c6ab9b03ea43",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " DS 0.78 0.75 0.76 494\n",
+ " SE 0.71 0.74 0.72 411\n",
+ "\n",
+ " accuracy 0.75 905\n",
+ " macro avg 0.74 0.75 0.74 905\n",
+ "weighted avg 0.75 0.75 0.75 905\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(metrics.classification_report(y_test,\n",
+ " y_pred=xgb_def.predict(X_test), \n",
+ " target_names=['DS', 'SE']))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "31cb482e-e9fa-48cd-b864-3d2fd2010f05",
+ "metadata": {},
+ "source": [
+ "The classification report provided by scikit-learn is a useful tool for evaluating the performance of a classifier. It provides a summary of the main classification metrics, including precision, recall, and F1-score, for each class as well as their macro and weighted averages. \n",
+ "\n",
+ "* The `macro average` is the average of the class behavior, calculated by taking the average of the metric for each class without considering the class imbalance. \n",
+ "\n",
+ "* The `weighted average` is based on the count (support), calculated by taking the average of the metric for each class while considering the class imbalance. This means that classes with more samples have a greater influence on the weighted average than classes with fewer samples.\n",
+ "\n",
+ "By analyzing these metrics, you can gain insight into how well your classifier is performing in terms of correctly identifying positive and negative samples, as well as how well it is balancing the tradeoff between precision and recall.\n",
+ "\n",
+ "For example, if you have a binary classification problem with imbalanced classes, you may want to pay close attention to the precision and recall values for the minority class. A low recall value for the minority class may indicate that your classifier is struggling to correctly identify positive samples from that class. Similarly, a low precision value for the minority class may indicate that your classifier is incorrectly labeling negative samples from the majority class as positive.\n",
+ "\n",
+ "In summary, the classification report can help you identify areas where your classifier may be underperforming and guide you in making improvements to your model.\n",
+ "\n",
+ "The Yellowbrick library also provides a classification report. This report provides a visual summary of the main classification metrics, including precision, recall, and F1-score, for both positive and negative labels. Like the classification report provided by scikit-learn, the Yellowbrick classification report can help you evaluate the performance of your classifier and identify areas where it may be underperforming. The visual nature of the report makes it easy to quickly assess the performance of your classifier and compare it to other models or benchmarks."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "831224e1-adbb-4d3b-a05d-f08ed3f33c27",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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3FyJeArNGflvBG3dQnx8vOu1qbA4HA68A2xs7/EmGYn5v/b5lrmH+gvfwOFw3HCV4HpsNpvrS+Eg9w34rYQctwWCK4cJLOfPY/n3ld1E8uPj4wOguSK3THNG/htXrkxZVIewMxLPk37mXKGMXalSJRISEkhOTqZ48eLs2rWLHj163PR+OqlQRETkD+DTTz8lLS2NqKgohg0bRo8ePTAMg8jISIKDg296fwUCERERD1WuXDnXxwpbt27tam/SpAlNmjT5r8bSdQhEREREgUBEREQUCERERAQFAhEREUGBQERERFAgEBERERQIREREBAUCERERQYFAREREUCAQERERFAhEREQEBQIRERFBgUBERERQIBAREREUCERERAQFAhEREUGBQERERACruwsQERG529QCjBv0m4qqkKtohUBEREQUCERERESBQERERFAgEBERERQIREREBAUCERERQYFAREREUCAQERERFAhEREQEBQIRERFBgUBERERQIBAREREUCERERAQFAhEREUGBQERExCM5nU7GjBlDVFQUXbp0ISEhIU//unXraNeuHZGRkXz44Yc3Hc9aWIWKiIhI4YmNjSUrK4sVK1awd+9eJk2axNy5c139U6ZMYf369RQvXpyWLVvSsmVLAgIC8h1PgUBERMQD7d69m/DwcADCwsKIi4vL01+5cmVSUlKwWq0YhoHJZLrheAoEIiIiHshut2Oz2Vy3LRYLOTk5WK25L+0PP/wwkZGRFCtWjIiICEqUKHHD8XQOgYiIiAey2Wykpqa6bjudTlcYOHToEFu2bOGrr77i66+/5sKFC2zYsOGG4ykQiIiIeKDq1auzdetWAPbu3UtISIirz9/fH19fX3x8fLBYLAQFBXH58uUbjqdDBiIiIh4oIiKC7du307lzZwzDYMKECXz66aekpaURFRVFVFQUzz33HF5eXlSoUIF27drdcDwFAhERkSL2YHAGFlNavv2OMhmcu8kYZrOZcePG5WmrVKmS6//PPvsszz777C3XpEBQyHyfbEKJYcMw+XiTffAgF6OHYNjtrv7iHSKx9e7lum3298fypz9xpmZtnOdyp4Pl3j9RZt06zkY8hfPiRQB86tUlYNQo8LJiZGSQPPoNsvfuLdJ9k4J3O/PFyMwk8O2peFV6CMwm0j5aRcqcuVgffpig2TGu+5jMFrz+XIVzPXuR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45///Cc7duzg+++/v+F4CgQiIiIeyGazkZqa6rrtdDqxWnMX/kuWLMn999/PQw89hJeXF+Hh4XlWEK5HgUBERMQDVa9ena1btwKwd+9eQkJCXH3ly5cnNTWVhIQEAHbt2sXDDz98w/F0DoGIiIgHioiIYPv27XTu3BnDMJgwYQKffvopaWlpREVF8dZbbxEdHY1hGDz22GM0atTohuMpEIiIiHggs9nMuHHj8rRVqlTJ9f+6deuyatWqWx+vwCoTERERj6VAICIiIgoEIiIiokAgIiIi6KRCERGRImd6vCSmTGf+/T4li66Yf9MKgYiIiCgQiIiIiAKBiIiIoEAgIiIiKBCIiIgICgQiIiKCAoGIiIigQCAiIiIoEIiIiAh3wJUKy+74Dh8fH3eXIR6i3KkT7i5BPIzmjNyKzMxMd5fgdlohEBEREfevEPxWpx6WxER3lyF3uCvv8k7eV97NlYin0JyR/0bpo7+4uwS30wqBiIiIKBCIiIiIAoGIiIigQCAiIiIoEIiIiAgKBCIiIoICgYiIiKBAICIiIigQiIiICHfAlQpFRETuNqaKJTA5nPn3W0oUYTW5tEIgIiIiCgQiIiKiQCAiIiIoEIiIiAgKBCIiIoICgYiIiEdyOp2MGTOGqKgounTpQkJCwnW3Gz16NNOmTbvpeAoEIiIiHig2NpasrCxWrFhBdHQ0kyZNumab5cuXEx8ff0vjKRCIiIh4oN27dxMeHg5AWFgYcXFxefp//PFH9u3bR1RU1C2Np0AgIiLigex2OzabzXXbYrGQk5MDQGJiIrNmzWLMmDG3PJ6uVCgiIuKBbDYbqamprttOpxOrNfdlfePGjVy8eJHevXuTlJRERkYGDz74IO3bt893PAUCERERD1S9enU2b95MixYt2Lt3LyEhIa6+rl270rVrVwA+/vhjjh49esMwAAoEIiIiHikiIoLt27fTuXNnDMNgwoQJfPrpp6Slpd3yeQNXUyAQERHxQGazmXHjxuVpq1Sp0jXb3WxlwDVegVQlIiIiHk2BQERERBQIRERERIFAREREUCAQERERFAhEREQEBQIRERFBgUBERETQhYlERESK3oMPgTkt/35ncUjNv7swaIVAREREFAhEREREgUBERERQIBAREREUCERERAQFAhEREUGBQERERFAgEBERERQIREREBAUCERERQYFARERE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//33u/rXr1/P+++/j8ViISQkhLFjx2I2578OoBUCERERDxQbG0tWVhYrVqwgOjqaSZMmufoyMjL4xz/+weLFi1m+fDl2u53NmzffcDwFAhEREQ+0e/duwsPDAQgLCyMuLs7V5+3tzfLlyylWrBgAOTk5N/20ggKBiIiIB7Lb7dhsNtdti8VCzr+vN2E2mylVqhQAS5YsIS0tjfr1699wPJ1DICIi4oFsNhupqb9/FMHpdGK1WvPcnjp1KseOHSMmJgaTyXTD8bRCICIi4oGqV6/O1q1bAdi7d6/rAoJXjBkzhszMTObMmeM6dHAjWiEQERHxQBEREWzfvp3OnTtjGAYTJkzg008/JS0tjdDQUFatWkXNmjXp1q0bAF27diXiBl9SpUAgIiLigcxmM+PGjcvTVqlSJdf/Dx069N+NVyBViYiIiEdTIBAREREFAhEREVEgEBERERQIREREBAUCERERQYFAREREUCAQERERFAhEREQEBQIRERFBgUBERERQIBAREREUCERERAR926GIiEjRK1kZfG7QnwmcLKpicmmFQERERBQIRERERIFAREREUCAQERERFAhEREQEBQIRERFBgUBERERQIBAREREUCERERAQFAhEREUGBQERERFAgEBERERQIREREBAUCERERQYFAREREUCAQERERFAhEREQEBQIRERFBgUBERMQjOZ1OxowZQ1RUFF26dCEhISFP/9dff01kZCRRUVGsXLnypuMpEIiIiHig2NhYsrKyWLFiBdHR0UyaNMnVl52dzcSJE3nvvfdYsmQJK1asICkp6YbjWQu74PwYhgFA0NYteHt7u6sM8RCZmZkAlD76i5srEU+hOSP/jaysLOD316bClp19e/0Au3fvJjw8HICwsDDi4uJcfUeOHKFChQoEBAQAUKNGDXbt2kXz5s3zHc9tgSD733sbHx/vrhJERETyyM7OxtfXt9DGt1gsWCwWDh923PK2+bHb7dhstjzb5+TkYLVasdvt+Pv7u/r8/Pyw2+03fDy3BQI/Pz9CQkLw8vLCZDK5qwwREREMwyA7Oxs/P79CfRyr1UpoaCgOx60FAqs1/5dpm81Gamqq67bT6XRt/599qampeQLCdWu7aUWFxGw237Q4ERGRolKYKwNXs1qtN3yhv1XVq1dn8+bNtGjRgr179xISEuLqq1SpEgkJCSQnJ1O8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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"
+ ],
+ "text/plain": [
+ "ClassificationReport(ax=,\n",
+ " classes=['DS', 'SE'],\n",
+ " cmap=,\n",
+ " estimator=XGBClassifier(base_score=0.5, booster='gbtree',\n",
+ " callbacks=None,\n",
+ " colsample_bylevel=1,\n",
+ " colsample_bynode=1,\n",
+ " colsample_bytree=1,\n",
+ " early_stopping_rounds=None,\n",
+ " enable_categorica...\n",
+ " eval_metric=None, gamma=0,\n",
+ " gpu_id=-1, grow_policy='depthwise',\n",
+ " importance_type=None,\n",
+ " interaction_constraints='',\n",
+ " learning_rate=0.300000012,\n",
+ " max_bin=256, max_cat_to_onehot=4,\n",
+ " max_delta_step=0, max_depth=6,\n",
+ " max_leaves=0, min_child_weight=1,\n",
+ " missing=nan,\n",
+ " monotone_constraints='()',\n",
+ " n_estimators=100, n_jobs=0,\n",
+ " num_parallel_tree=1,\n",
+ " predictor='auto', random_state=0,\n",
+ " reg_alpha=0, reg_lambda=1, ...))"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "\n",
+ "classifier.classification_report(xgb_def, X_train, y_train,\n",
+ " X_test, y_test, classes=['DS', 'SE'],\n",
+ " micro=False, macro=False, ax=ax)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c2c76c26-a272-4a3b-958f-921e4067538b",
+ "metadata": {},
+ "source": [
+ "## 15.5 ROC Curve\n",
+ "\n",
+ "The _Receiver Operating Characteristic_ (ROC) curve, is a graphical plot that illustrates the diagnostic ability of a binary classifier system as its discrimination threshold is varied. The ROC curve was first used during World War II to understand how effective radar signals were at detecting enemy aircraft. It measures the true positive rate (or recall) against the false positive rate (or fallout, false positive count divided by the count of all negatives) over a range of thresholds.\n",
+ "\n",
+ "One interesting fact about ROC curves is that they are widely used in medicine, radiology, and other fields for evaluating diagnostic tests. For example, an ROC curve can be used to evaluate the accuracy of a blood test for detecting a disease. Another fact is that the area under the ROC curve (AUC) provides an aggregate measure of performance across all possible classification thresholds. A model with perfect predictive ability will have an AUC of 1, while a model with no predictive ability will have an AUC of 0.5.\n",
+ "\n",
+ "Let’s look at an example and then explain it. We will plot two ROC curves on the same\n",
+ "plot—one from the default XGBoost model and the other from our Hyperopt-trained model.\n",
+ "We will use the scikit learn library `RocCurveDisplay.from_estimator` method."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "79eb355a-8247-4ae8-90a4-cf2fb86d7e03",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[0]\tvalidation_0-logloss:0.64730\tvalidation_1-logloss:0.65403\n",
+ "[81]\tvalidation_0-logloss:0.36640\tvalidation_1-logloss:0.51755\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "0.7580110497237569"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "step_params = {'random_state': 42,\n",
+ " 'max_depth': 5,\n",
+ " 'min_child_weight': 0.6411044640540848,\n",
+ " 'subsample': 0.9492383155577023,\n",
+ " 'colsample_bytree': 0.6235721099295888,\n",
+ " 'gamma': 0.00011273797329538491,\n",
+ " 'learning_rate': 0.24399020050740935}\n",
+ "\n",
+ "xg_step = xgb.XGBClassifier(**step_params, early_stopping_rounds=50,\n",
+ " n_estimators=500)\n",
+ "xg_step.fit(X_train, y_train, \n",
+ " eval_set=[(X_train, y_train),\n",
+ " (X_test, y_test)],verbose=100)\n",
+ "\n",
+ "xg_step.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "714ad313-7a5a-4308-9c01-245a6771be3d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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urbuwCiuIy4uju7dnTsIQ22jNqw8tWHlqQ0rT21YeVXdhnl5eaVetFbbbfNu3bqxceNGALZv307btm3t21q1akV8fDypqank5+cTGxtL165dq6sUERG3sGnTJkaMGEFubi4AiYmJDB8+nMTERAC++uorJk6caB+7fP78+eTn5wMwYMAA/vKXv3DLLbcwevRo/v3vf9vPe+DAAe666y4mTZrEmDFjePXVVzEMgy1btvDQQw9Vuu4zZ84wZ84coLC/04033sjixYt54IEHLvqc06dPL3KRd9NNN9lHmjuvd+/eRZY3btzI9OnTgcLge/bZZ5k4cSJ/+ctf+Nvf/sapU6cqXEdubi5Tpkxh4sSJ/O1vfyM5ObnYPu+99x6jR49m5syZfPfddwBkZ2dz7733MnHiRO644w77ca+88goHDx6scB3FGNXEarUas2bNMqKjo41x48YZBw8eNFauXGl88sknhmEYRkxMjDF69Ghj1KhRxkcffVTmuXJzc43Y2FgjNze3SmuMjY2t0vPVRWrDylMbVl5tasNnn33WePLJJ438/HxjwoQJxo8//mgYhmFs2LDBmDx5spGWlmYYhmHYbDZj/vz5xqeffmoYhmH079/f/m9kXl6eMXDgQOPs2bNGWlqaceONNxpHjhwxDMMwLBaLcf/99xsff/yx8fPPPxsPPvigYRhV14ZPPPGEERMTU6lzfPXVV8bixYvty7Gxscajjz5qDB061MjIyLCvv/rqq4sc9/333xuPP/64YRiGMWvWLOODDz6wb/v222+NcePGVbiW999/33j11VcNwzCM1atXG//85z+LbE9LSzOuueYaIy8vz9iwYYNx7bXXGoZhGB988IGxcOFCwzAM44svvrAfl5aWZvztb38r13eXlX3Vdtvcw8ODuXPnFll34Sg+AwYMKHOuWhERV/rlyH85enZnlZ7zkvBOXNFiWJn7PPTQQ0ycOJH77ruPq6++2n51uWTJEh577DGCg4OBwuFNZ8yYgclkKnaO3NxcfHx8CAoK4quvvqJnz55ccsklQGH/o2effRZvb2+2bdtmP2bNmjW88sorWCwWgoKCWLhwISdOnGDGjBl4eXnh6enJc889h7e3Nw8++CCGYVBQUMBTTz1FQEAADz/8MHfffTcbNmxg586dhIWF8cADD7Bp06YSZ0bbs2cPL7zwAt7e3owbN46RI0faa1myZAmvv/66ffnzzz9nyJAhNG7cmBUrVnDLLbeU2Yb5+fmsW7euyJX6oEGD6NGjR5H94uPjmTlzZpF1N954I9HR0fbluLg47rzzTgD69evHG2+8UWR/Pz8/mjRpQk5ODnl5efY/j1tvvdU+Kt7JkycJDw8HIDg4GB8fH/bu3Uv79u3L/DnKohHWRERqkPNhNmfOnCLhk5CQQFRUFADbtm3jpZdeoqCggMaNG/Ovf/0LgNtvvx2TycThw4e57rrr8Pb2JikpiebNmxf5joCAgCLLNpuNzMxMPvzwQzw8PLjjjjv47bff2Lt3Lx06dGD69OnExsaSlpbGyZMnCQoK4sUXX+TgwYNkZmbazzdw4EC+++47hg0bVuRRaEkzo1199dXk5eXx+eefF6klNzeXU6dOUa9ePaCw83NcXBzz5s2jTZs23HfffWWGt8lkIjU1lfDw8GK/2ISFhRVZjoqKKnH0ugtd2ME6ICCAjIyMYvs0btyYG264gby8PO6//377ek9PTyZPnsz+/fv54IMP7OvbtWvH1q1bFd4iIlXtihbDHF4lV4cTJ07w7rvvMm3aNKZNm8bixYvx9PSkcePGJCQk0L59e7p27cqSJUs4dOiQ/VkzFE5S4uPjQ35+PnfddRcrV66kSZMm7Nmzp8h3HD9+nNOnT9uXPTw88PLy4uGHH8bf35/Tp09jsVgYO3Ys//d//8edd95JUFAQDz30EP369ePo0aPcd999eHl5ce+99zr8mUqbGe1/Z0gDSEtLKxKyK1euxGazcffddwOFz9d/+uknrrrqqmLhnJ2djY+PD2FhYaSnp2MYRpF9Vq1axdChQ/H29gbKd+V9YQfrrKws+52P8zZu3EhSUhIxMTH8+uuvvP7663Tr1o1OnToBsHjxYg4dOsTdd9/N2rVrAWjQoIG9H8PF0vCoIiI1RH5+Pg8++CBPPPEEt956K40bN+a1114D4JZbbuG5554rcuW3devWEs9jNpupX78+BQUF9O/fnx9++IFjx44BheH5zDPPsH//fvv+e/fuJTY2lpdffplZs2Zhs9kwDIOYmBi6d+/OokWLGDp0KO+++y5btmwhIiKC999/n3vvvZeXXnrJ4c91fma0JUuWMG3aNPuY6x4exSMoLCysSEe1ZcuW8dZbb/Hee+/x3nvvMXPmTHtnvGbNmvHTTz/Z9/3hhx+4/PLL8fb2pk+fPkWuqr/55hsWLVpkD27488r7wv8uDG4o7Hx9fqa2jRs3FutNHhISgq+vL2azGbPZTFBQEOnp6bz99tusWLECAH9/fzw9Pe3HpKWlUb9+fYftVhZdeYuI1BDPPvss3bt3t4fbnDlzGD16NL169WLgwIFYLBbuu+8+oPAqsH379jz77LP242+//XY8PDyw2Ww0atSIESNGYDabeeaZZ5g5cyaGYZCVlUX//v2ZOHGiPfyjoqLw8fFh9OjRmM1mGjRoQFJSEl26dGHatGksXLgQDw8PZsyYQZMmTXjooYdYtGgRHh4eRW4Tl6akmdGSkpJK3NdsNhMeHs65c+dITEzEMAzatGlj3z5kyBCefvppTp06xbx583jqqaf417/+hc1mo0uXLtx0000AzJgxg6effto++UpISAgLFy6s6B8JEyZM4PHHH2fChAl4e3vz4osvAvDBBx8QGRnJwIED2bx5M+PGjSM7O5t+/frRu3dv2rdvz+OPP84XX3yB1WplwYIF9nPu3Lmz0r38TYZR8yd0Pf+uW1W9532e3musPLVh5akNK09tWHk1qQ1Xr17N2bNnufXWW11dSoWUpw1TU1OZPn06b731lsPzlZV9um0uIiI1yg033MDu3buL3D6vLT788MMqebdet81FRKRGMZlMJc5rXhs8+OCDVXIeXXmLiIi4GYW3iIiIm1F4i4iIuBmFt4iIiJtReIuIiLgZhbeIiIibUXiLiIi4Gbd4z/v8IHDnJ52vSnl5eVV+zrpGbVh5asPKUxtWntqw8qqyDc9nXkkDobrF8KgZGRlFBtEXERGpK9q2bWuflvQ8twhvm81GVlYW3t7eJU48LyIiUtsYhkFBQQEBAQHFZmBzi/AWERGRP6nDmoiIiJtReIuIiLgZhbeIiIibUXiLiIi4mVof3jabjdmzZxMdHc2kSZOIj48vsn3dunWMGTOG6OhoPvvsMxdVWbM5asPVq1dz8803M378eGbPno3NZnNRpTWXozY8b9asWbzwwgtOrs49OGrDnTt3MnHiRCZMmMDUqVP1znIpHLXjypUrGTVqFGPGjOHjjz92UZU1344dO5g0aVKx9U7LFKOWW7NmjfH4448bhmEY27ZtM+655x77tvz8fOO6664zUlNTjby8PGP06NFGUlKSq0qtscpqw5ycHGPgwIFGdna2YRiG8dBDDxlr1651SZ01WVlteN7SpUuNcePGGc8//7yzy3MLZbWhzWYzRowYYRw9etQwDMP47LPPjEOHDrmkzprO0d/F3r17GykpKUZeXp7930cp6p133jFuvPFG4+abby6y3pmZUuuvvOPi4ujbty8AXbp0YdeuXfZthw4dIjIykpCQEMxmM927dyc2NtZVpdZYZbWh2Wzmk08+wc/PDwCLxYKPj49L6qzJympDgG3btrFjxw6io6NdUZ5bKKsNjxw5QmhoKIsWLeKWW24hNTWVli1buqrUGs3R38V27dqRkZFBfn4+hmFobI0SREZGsnDhwmLrnZkptT68MzMzCQwMtC97enpisVjs2y4ctSYgIIDMzEyn11jTldWGHh4ehIeHA7BkyRKys7Pp3bu3S+qsycpqw6SkJF577TVmz57tqvLcQlltmJKSwrZt25g4cSIffPABP//8Mz/99JOrSq3RympHgDZt2jBmzBhuuOEGrr32WoKDg11RZo02ZMgQvLyKjy7uzEyp9eEdGBhIVlaWfdlms9kb/X+3ZWVlFRuCTspuw/PLzz77LJs2bWLhwoX6Tb0EZbXhN998Q0pKCnfddRfvvPMOq1evZvny5a4qtcYqqw1DQ0OJioqidevWeHt707dv32JXlFKorHbcu3cvGzZsICYmhnXr1pGcnMzXX3/tqlLdjjMzpdaHd7du3di4cSMA27dvp23btvZtrVq1Ij4+ntTUVPLz84mNjaVr166uKrXGKqsNAWbPnk1eXh5vvPGG/fa5FFVWG06ePJnly5ezZMkS7rrrLm688UZGjx7tqlJrrLLasHnz5mRlZdk7X8XGxtKmTRuX1FnTldWOQUFB+Pr64uPjg6enJ/Xq1SM9Pd1VpbodZ2aKW8wqVhmDBg1i06ZNjB8/HsMwWLBgAatWrSI7O5vo6GimT5/OHXfcgWEYjBkzhoYNG7q65BqnrDbs2LEjy5Yto0ePHvz1r38FCsNo0KBBLq66ZnH091Acc9SG8+fP55FHHsEwDLp27cq1117r6pJrJEftGB0dzcSJE/H29iYyMpJRo0a5uuQazxWZorHNRURE3Eytv20uIiJS2yi8RURE3IzCW0RExM0ovEVERNyMwltERMTNKLzFLSUkJNCxY0duuummIv+dOnWq1GMWLlxY4pCGFbF8+XKuvPJK+/cNGTKEWbNmFRmhqrxeeeUVYmJiAIpMcHDTTTdVqsbz5xs0aJC9zoEDB3Lrrbdy9uzZMo/77LPPWL16dYW+6/Tp08yYMaPY944YMYLhw4fz3//+96J+hvPtsHPnTp5//nkAYmJieOWVVy7qfOdt2bKlxAklLjR9+vQKDZRTnnOet2nTJvtrlQDffvstH330Ubm/SwTqwHveUntFRETwn//8x+nfO2DAAJ555hkArFYr48ePZ9myZYwfP75C5/n73/9u/7x161b756r6mebNm0fPnj2BwlG0pk6dygcffMC0adNKPebXX3/lyiuvrND3LFiwoMjPcuH37tu3j7Fjx9K3b98KjzR1vh0OHjzIuXPnABg4cCADBw6s0HlqCpvNxocffsjbb79dZGCUwYMHM3nyZK6//nrq16/vwgrFnejKW2qd/fv3M2nSJMaMGUP//v1ZunRpke0FBQVMmzaNkSNHMnLkSPu0fWfPnuW+++5j9OjRjBkzhs2bNzv8Lk9PT3r06MGBAwcA+OKLL7jxxhsZPnw406dPJysrq9TvO391N2/ePABuvvlmoHBiCIvFQp8+fexXyqmpqfTp04eCggI2btzI2LFjGTlyJA888AApKSkO68zOziYlJYWQkBAAvv76a8aNG8eIESMYOnQov/76K5s3b2bdunW8+uqr/PDDD+Vqj2PHjpGUlESrVq1K/N527drh7+9PfHw8OTk5PPLII/b2WbFiBVA4JOe4ceMYPXo0EyZM4OjRo/Zj09PTefXVV1m3bh1vvvkmy5cvZ/r06cTExHDPPffYv2fJkiXMmzcPq9XK008/zahRoxgxYgQffvhhme2ydetWJkyYwKhRoxg4cCBr1661b9uwYQOjR48ucvegPOdfunRpiXcHDh06xKFDh/jnP/9ZbNvgwYP597//XWatIhdSeIvbSkpKKnLL/N133wXg888/57777uOLL75g8eLFPPfcc0WO27ZtG2lpaaxYsYK3337bPuvP/PnzGTNmDMuXL+fNN99k9uzZDicVSElJ4ccff6RLly7s27ePt956iyVLlrBq1Sr8/Px47bXXSv2+82bOnGmv+zwvLy+GDh3KN998AxTeWh00aBAZGRm8+OKLvPfee6xYsYI+ffqUOv/3zJkzGTFiBH369CE6Opqrr76aW2+9FZvNxieffMJbb73FypUrufPOO3nnnXe4+uqrGTBgAFOnTqVv377lao9169bRrVu3Utvnhx9+AKBFixYsXLiQsLAwVq9ezaJFi1i4cCF79+5l0aJF3HbbbSxfvpxx48axfft2+/HBwcFMnTqVAQMGcO+999rX9+vXj127dpGWlgbAV199xYgRI+y/GH355ZcsW7aMmJiYMmd1+uijj5g3bx5ffvkl8+bNKxK6OTk5fPbZZ7z77rssWLCAM2fOlOv8EyZMKHIn4rw2bdowf/58+y9QF+rRowfr1q0rtU6R/6Xb5uK2SrttPn36dH744Qfefvtt9u/fT3Z2dpHtbdq04ciRI9xxxx3069ePxx57DIDNmzdz+PBhXn31VaBwetPjx49z6aWXFjl+3bp13HTTTRiGgWEYDBo0iBtvvJF///vf9O/fn7CwMACio6OZMWMGd911V4nf58iIESN4+umnueWWW1i9ejUPPfQQO3bs4NSpU0yePBkovBVbUhjAn7evf/31V6ZOncqgQYMwm80AvP7666xbt44jR46wdetWPDyK/x5fnvaIj4+nRYsWRY6bOXMm/v7+WK1WQkJCePnllwkICODnn39mwYIFANSrV4+BAweydetWrrnmGubOncsPP/zAgAED6N+/v8O28fb2ZtCgQXz77bf07t2b1NRUOnXqxLvvvsvvv//Ozz//DBTecdi3bx89evQo8TzPP/8869ev55tvvmHHjh1FJpUYNWoUXl5eNGzYkC5durBjxw5++umnEs/funVrhzWXpWnTpvZx2UXKQ+Ettc6DDz5IcHAw/fv3Z9iwYcU6YIWFhfHVV1+xadMmvv/+e0aNGsVXX32FzWZj0aJFhIaGAoVX9iU9g7zwmfeFbDZbkWXDMLBYLKV+nyOdOnUiLS2NnTt3kpiYSNeuXVm7di3dunXjrbfeAiAvL69I4JSkW7duTJo0iUceeYQvv/ySvLw8xo4dy4gRI7jiiito165dibdsy9MeJpOp2NSIFz7z/t/2+N9lq9XK0KFD6dq1K+vXr+fDDz9kw4YN9kcJZbnpppt45ZVXSEtLY/jw4UDhbe1p06YxePBgAJKTkwkICCj1HBMnTqRnz5707NmTq666ikcffdS+zdPTs0hbeHt7l3r+C+8WXAwvLy/NxicVotvmUuts2rSJqVOnct1119lnT7JarfbtMTExTJs2jWuvvdZ+lXjq1Cl69erFxx9/DBR2kho+fDg5OTnl/t4rr7ySdevWkZqaChT23O7Zs2ep33eh/51T+bzhw4fz5JNPcsMNNwDQuXNntm/fzpEjRwB44403ij0WKMltt91GVlYWn376KUePHsVkMnHPPffQs2dPvvvuO3v7eHp62j+Xpz0iIyM5ceJEudqnV69eLFu2DCgMvZiYGK688koefPBBfvvtN8aPH8/f//539uzZU6626dKlC0lJSfznP/9hxIgR9u/47LPPKCgoICsri4kTJ5YarKmpqRw9epS///3v9OvXj5iYmCJ/T7766isMw+DEiRPs2rWLyy+/vELnr4iEhASioqIqfR6pO3TlLbXOlClTmDhxIj4+PrRv356mTZuSkJBg396vXz++/fZbbrjhBnx8fBgxYgTt2rVj5syZzJ49234V99xzzxEYGFju723fvj133303kyZNoqCggA4dOvDUU0/h4+NT4vddaODAgdx0003FXk8aMWIEr7zyCv/6178AaNCgAQsWLODBBx/EZrPRsGFD+2tUZTGbzTz44IMsWLCA7777jksvvZTrr78ek8lEnz59iIuLA+Dqq6/mpZdeIigoqFzt0b9//yJXq2W5//77mTNnDsOHD8dqtXLPPffQoUMH7rnnHv7xj3/w+uuv4+3tzZw5c4oc16lTJ1577TVeeOEFWrZsWWTb9ddfz48//kjz5s0BGD9+PPHx8YwaNQqLxcLo0aNLvAsAhXOAjx07lhtuuAEvLy969epFbm6u/TGLv78/o0ePxmKxMHfuXOrVq1fq+bds2WI/79KlS0lKSirxuXdptmzZ4ra96MU1NKuYiFTKAw88wNSpU4vN8y7lN2HCBF577TW9KiblptvmIlIpM2bM4L333nN1GW7rm2++YciQIQpuqRBdeYuIiLgZXXmLiIi4GYW3iIiIm1F4i4iIuBmFt4iIiJtReIuIiLgZhbeIiIib+X9v7jczsU3a1wAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8,8))\n",
+ "metrics.RocCurveDisplay.from_estimator(xgb_def,\n",
+ "X_test, y_test,ax=ax, label='default')\n",
+ "metrics.RocCurveDisplay.from_estimator(xg_step,\n",
+ "X_test, y_test,ax=ax)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0d444cbc-3a92-4a49-bb03-3b85d25a88d5",
+ "metadata": {},
+ "source": [
+ "A high AUC value is desirable when the cost of false positives and false negatives is similar. In such cases, a high AUC indicates that the model is able to effectively differentiate between positive and negative examples. However, in cases where there are wide disparities in the cost of false negatives vs. false positives, it may be critical to minimize one type of classification error. For example, when doing email spam detection, you likely want to prioritize minimizing false positives (even if that results in a significant increase of false negatives).\n",
+ "\n",
+ "As a rule of thumb, the AUC metric or an ROC plot alone cannot determine if a model is good enough for a specific application. However, they can indicate if a model is performing poorly. An AUC value less than 0.5 suggests that the model performs worse than random guessing. In such cases, it may be beneficial to re-evaluate the model.\n",
+ "\n",
+ "If a model reports an AUC of 1 or very close to it, it could indicate one of two things:\n",
+ "* The problem may be very simple and machine learning may not be necessary.\n",
+ "* There could be data leakage in the model, where information that would not be available at the time of prediction is included in the model's training.\n",
+ "\n",
+ "Data leakage can occur when data that wouldn't be known when making a prediction is included in the model.\n",
+ "An example of data leakage is building a machine learning model to predict the sentiment of movie reviews and including the movie's rating as a feature in the model's training. When this feature is removed, the accuracy of the model drops.\n",
+ "\n",
+ "An ROC curve can be used to determine if one model is better than another at a given threshold. If one model has a higher AUC or its ROC curve bulges out more to the upper left corner, it is considered better. However, being a better model does not necessarily mean it will work for a given business context.\n",
+ "\n",
+ "ROC curves can also be used to understand overfitting. If an ROC curve is plotted for both training and testing data, they should look similar. If the training data has a good ROC curve but the testing data has a poor ROC curve, it may indicate overfitting.\n",
+ "\n",
+ "An example of data leakage in reality could occur in healthcare when building a predictive model for patient readmissions. If information about future events such as lab results or diagnoses that occur after the initial hospitalization is included in the model's training data, it could result in data leakage and an overly optimistic performance estimate.\n",
+ "\n",
+ "Let’s explore that with the default model and the stepwise model."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "65c41f52-d313-43d2-b9aa-f66d10ae54b4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Text(0.5, 1.0, 'ROC plots for stepwise model')]"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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3r17QqVSGb9XtvDll1+Knj17iqefftpkur2+39Yic7nkMeUq77lsLiYhylY+O+SZd1xcHO3btwcgPDyc48ePG+dduHCBoKAgfH19cXV1pVmzZhw8eNCuMbm6uvLjjz/i4eEBgFarxc3Nza4xARw+fJgjR44QGxtr9ViKEtOlS5fw8/NjyZIlDB48mJSUFOrWrWu3eADCwsJIT09HrVYjhLBZpyJBQUEsXLgwz3R7fb+tReZyyWMCmctFiQnKVj47ZPHOyMjA29vb+F6pVKLVao3zHuxGzsvLi4yMDLvG5OTkRGBgIABLly4lKyuLyMhIu8aUnJzMJ598wpQpU6weR1FjunfvHocPH2bQoEF888037N27l7///ttu8QDUr1+f/v3706NHD5544gl8fHysGk+url274uycd+gBe32/rUXmcsljkrlctJigbOWzQxZvb29vMjMzje/1er3xD/PveZmZmTbp47mwmHLfz507l927d7Nw4UKbHPEVFtPvv//OvXv3GD58OF9++SW//vorq1evtmtMfn5+BAcHU69ePVxcXGjfvn2eI2dbxnP69Gl27NjB1q1b2bZtG3fv3mXjxo1Wjccce32/rUXmcsljkrlctJjKWj47ZPGOiIhg586dAMTHxxMaGmqcFxISQkJCAikpKajVag4ePEjTpk3tGhPAlClTUKlUfPbZZ8ZLbvaMaejQoaxevZqlS5cyfPhwevbsSb9+/ewaU61atcjMzDQ2Mjl48CD169e3WzwVKlTA3d0dNzc3lEolAQEBpKWlWTUec+z1/bYWmcslj0nmctFiKmv57BBDgv5bdHQ0u3fvZsCAAQghmDVrFuvXrycrK4vY2FgmTJjAsGHDEELQv39/qlSpYteYGjVqxKpVq2jevDnPPfccYEi46Ohou8Vky3tjxYlp5syZjB07FiEETZs25YknnrBrPLGxsQwaNAgXFxeCgoLo27evVeMpiL2/39Yic7nkMclcLnpMZSmf5cAkkiRJkuRgHPKyuSRJkiSVZ7J4S5IkSZKDkcVbkiRJkhyMLN6SJEmS5GBk8ZYkSZIkB1Mmi3diYiKNGjWid+/eJv9u3LhR4DoLFy7Mt/u64li9ejUtW7Y07q9r165MnjzZpIefolqwYAFbt24FMOnMvnfv3iWKMXd70dHRxjijoqJ4/vnnuX37dqHrrVy5kl9//bVY+7p58yYTJ07Ms99evXoRExPDb7/99lCfIffvcPToUf773/8CsHXrVhYsWPBQ28u1b9++fAcPeNCECROK1QlGUbaZa/fu3cZHkAA2bdrEsmXLiryvskbmcuFkLhesrOeyQz7nXRSVK1fml19+sfl+O3XqxJw5cwDQ6XQMGDCAVatWMWDAgGJt54033jC+3r9/v/G1pT7TjBkzaNWqFWDohej111/nm2++Ydy4cQWuc+jQIVq2bFms/cyaNcvkszy43zNnzvDUU0/Rvn37Yveclft3OH/+PHfu3AEgKiqKqKioYm2ntNDr9Xz77bd88cUXJh1LdOnShaFDh/Lkk09SsWJFO0ZoPzKXCydzuXSxVS6XyTPvwpw9e5YhQ4bQv39/OnbsyPLly03mazQaxo0bR58+fejTp49xiLbbt2/z6quv0q9fP/r378+ePXvM7kupVNK8eXPOnTsHwM8//0zPnj2JiYlhwoQJZGZmFri/3CPCGTNmAPD0008Dho71tVot7dq1Mx5dp6Sk0K5dOzQaDTt37uSpp56iT58+jBw5knv37pmNMysri3v37uHr6wvAxo0beeaZZ+jVqxfdunXj0KFD7Nmzh23btvHxxx+za9euIv09rly5QnJyMiEhIfnuNywsDE9PTxISEsjOzmbs2LHGv8/atWsBQ5eGzzzzDP369WPgwIFcvnzZuG5aWhoff/wx27ZtY9GiRaxevZoJEyawdetWRowYYdzP0qVLmTFjBjqdjtmzZ9O3b1969erFt99+W+jfZf/+/QwcOJC+ffsSFRXFli1bjPN27NhBv379TM44irL95cuX53tGceHCBS5cuMD06dPzzOvSpQvff/99obGWRzKX85K5nL8ymcslHeqsNLp69apo2LCh6NWrl/Hf//3f/wkhhJgxY4bYs2ePEEKIK1euiPDwcCGEEB9//LH4+OOPxb59+8TLL78shBDi5s2bYty4cUIIIUaPHm0c+i8pKUlERUWJ9PR0k/3+/PPPxuHohBDi7t27omfPnmLdunXi9OnTonPnzuLu3btCCCGmTp0q5syZU+D+xo8fL37++WchhBChoaHGbea+nj59uli6dKkQQogVK1aIqVOnijt37ohevXoZh7lbvny5eOedd/L8fQYPHiw6d+4sYmJiRGRkpOjevbv45JNPhEqlEjqdTgwdOlTcuXNHCCHETz/9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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(figsize=(8, 4), ncols=2)\n",
+ "metrics.RocCurveDisplay.from_estimator(xgb_def, \n",
+ " X_train, y_train,ax=axes[0], label='detault train')\n",
+ "metrics.RocCurveDisplay.from_estimator(xgb_def,\n",
+ " X_test, y_test,ax=axes[0])\n",
+ "axes[0].set(title='ROC plots for default model')\n",
+ "metrics.RocCurveDisplay.from_estimator(xg_step,\n",
+ " X_train, y_train,ax=axes[1], label='step train')\n",
+ "metrics.RocCurveDisplay.from_estimator(xg_step,\n",
+ " X_test, y_test,ax=axes[1])\n",
+ "axes[1].set(title='ROC plots for stepwise model')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "91111cc1-1ff4-4f30-b99a-fceaed5ef867",
+ "metadata": {},
+ "source": [
+ "The stepwise model has worse training performance than the default model. However, this is because the default model appears to be overfitting. The testing score improves with tuning even though the training score decreases.\n",
+ "\n",
+ "## 15.6 Threshold Metrics\n",
+ "\n",
+ "In scikit-learn and XGBoost models, the threshold is not exposed as a hyperparameter. However, you can experiment with the threshold by creating a subclass."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "9983fbac-ce54-4944-ab09-3870ee5e1c7e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class ThresholdXGBClassifier(xgb.XGBClassifier):\n",
+ " def __init__(self, threshold=0.5, **kwargs):\n",
+ " super().__init__(**kwargs)\n",
+ " self.threshold = threshold\n",
+ " \n",
+ " def predict(self, X, *args, **kwargs):\n",
+ " \"\"\"Predict with `threshold` applied to predicted class probabilities.\n",
+ " \"\"\"\n",
+ " proba = self.predict_proba(X, *args, **kwargs)\n",
+ " return (proba[:, 1] > self.threshold).astype(int)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "769e9327-d314-47c7-abeb-7b76f9e46039",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[0.14253652, 0.8574635 ]], dtype=float32)"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "xgb_def = xgb.XGBClassifier()\n",
+ "xgb_def.fit(X_train, y_train)\n",
+ "xgb_def.predict_proba(X_test.iloc[[0]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "7568996c-c257-48e6-91dd-c3e9e17212e7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1])"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "xgb_def.predict(X_test.iloc[[0]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "24410b44-d47b-4f4a-9bbc-75fe350020dd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0])"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "xgb90 = ThresholdXGBClassifier(threshold=.9, verbosity=0)\n",
+ "xgb90.fit(X_train, y_train)\n",
+ "xgb90.predict(X_test.iloc[[0]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "eecf6e7d-c574-415a-953b-cbd4da7e697a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAETCAYAAAABEL4cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACPbUlEQVR4nOzdd3zU9eHH8df39sxl7z0hhL23gKiAioKKe9tqtdZqa/ur2lp3Ha1WtLVarXuAiCigMmUoIxB2JiEhe6+75Pb398eFCLIhIYPP80Eel7v73vc+9+Vy7/t8vp8hybIsIwiCIAjCOafo7gIIgiAIwvlKhLAgCIIgdBMRwoIgCILQTUQIC4IgCEI3ESEsCIIgCN1EhLAgCIIgdBMRwoJwGp566ilmz57N7NmzycjI4OKLL+64brfbSUtLo76+vkue+49//CP//e9/T+sxixYt4pe//OUx77v00kvZvHnzMZ8nLS2NTZs2HXF7aWkp/fr144knnjjp886fP5+VK1ce875XXnmFxYsXn7zwgnAeUHV3AQShN3n00Uc7fp86dSovvvgiAwcO7MYSdY3IyEi+/PJLxowZ03Hb4sWLCQoKOqXHb968meTk5GPe95vf/KZTyigIfYEIYUHoZK+++io7d+6ksbGRO+64gxtuuIFFixaxcOFC2traMJlMvP/++yxYsICPP/4Yr9eLv78/jz32GElJSWRmZvLcc8/h9XoB+OUvf8nFF18MQFZWFtdeey21tbWkpKTw0ksvYTAYyMzM5Pnnn6etrQ21Ws0DDzzApEmTjihXQUEBf/rTn2hrayMxMZHW1tbjvoaZM2eycOFC7HY7Op0OgOXLlzNjxoyOcrW0tPD000+Tl5eHy+Vi7NixPPzww3z66afs2bOH559/HqVSyapVq2hsbKSkpIQLLriAuro6UlJSuOOOO9i5cydPPfVUR7kffvhhxo4dyz//+U9WrFiBWq0mICCAZ599ltDQ0K747xKEbiWaowWhk8XExLBo0SLmz5/Pc889h8vlAnwh+P777/P++++zZcsWFi9ezIcffsjixYu58847ue+++wBfiN92220sWrSIZ5555ohm4aqqKt555x2+/fZbqqqq+O6772hoaOD+++/nkUce4auvvuJvf/sbv//97ykpKTmiXL/73e+4+uqr+eqrr7j55pspLy8/7msIDAxk6NCh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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def get_tpr_fpr(probs, y_truth):\n",
+ " \"\"\"\n",
+ " Calculates true positive rate (TPR) and false positive rate\n",
+ " (FPR) given predicted probabilities and ground truth labels.\n",
+ " Parameters:\n",
+ " probs (np.array): predicted probabilities of positive class\n",
+ " y_truth (np.array): ground truth labels\n",
+ " Returns:\n",
+ " tuple: (tpr, fpr)\n",
+ " \"\"\"\n",
+ " tp = (probs == 1) & (y_truth == 1)\n",
+ " tn = (probs < 1) & (y_truth == 0)\n",
+ " fp = (probs == 1) & (y_truth == 0)\n",
+ " fn = (probs < 1) & (y_truth == 1)\n",
+ " tpr = tp.sum() / (tp.sum() + fn.sum())\n",
+ " fpr = fp.sum() / (fp.sum() + tn.sum())\n",
+ " return tpr, fpr\n",
+ "\n",
+ "vals = []\n",
+ "for thresh in np.arange(0, 1, step=.05):\n",
+ " probs = xg_step.predict_proba(X_test)[:, 1]\n",
+ " tpr, fpr = get_tpr_fpr(probs > thresh, y_test)\n",
+ " val = [thresh, tpr, fpr]\n",
+ " for metric in [metrics.accuracy_score, metrics.precision_score,\n",
+ " metrics.recall_score, metrics.f1_score,\n",
+ " metrics.roc_auc_score]:\n",
+ " val.append(metric(y_test, probs > thresh))\n",
+ " vals.append(val)\n",
+ " \n",
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "(pd.DataFrame(vals, columns=['thresh', 'tpr/rec', \n",
+ " 'fpr', 'acc', 'prec', 'rec', 'f1', 'auc'])\n",
+ " .drop(columns='rec')\n",
+ " .set_index('thresh')\n",
+ " .plot(ax=ax, title='Threshold Metrics')\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8d42dca9-d3dd-462f-9778-e76d4b942a80",
+ "metadata": {},
+ "source": [
+ "## 15.7 Cumulative Gains Curve\n",
+ "The Cumulative Gains Curve is useful for maximizing marketing response rates when resources are finite. It plots the gain (recall or sensitivity) against the ordered samples. The baseline represents the gain that would be achieved with random predictions. The gain is calculated as the true positive rate if the predictions were ordered by probability against the percentage of samples.\n",
+ "\n",
+ "In a Cumulative Gains Curve, gain is calculated as the true positive rate if the predictions were ordered by probability against the percentage of samples. This means that the gain represents the proportion of positive instances that were correctly identified by the model up to a certain point in the ordered list of predictions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "9b185498-cf60-4dab-adb6-1ebdb4905a68",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import scikitplot\n",
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "\n",
+ "y_probs = xgb_def.predict_proba(X_test)\n",
+ "scikitplot.metrics.plot_cumulative_gain(y_test, y_probs, ax=ax)\n",
+ "ax.plot([0, (y_test == 1).mean(), 1], [0, 1, 1], label='Optimal Class 1')\n",
+ "ax.set_ylim(0, 1.05)\n",
+ "ax.annotate('Reach 60% of\\nClass 1\\nby contacting top 35%', xy=(.35, .6),\n",
+ " xytext=(.55,.25), arrowprops={'color':'k'})\n",
+ "_=ax.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a6634af4-8f93-450f-9cc5-1e4bcd94a40b",
+ "metadata": {},
+ "source": [
+ "Here is a breakdown of the code block:\n",
+ "\n",
+ "1. `import scikitplot`: This line imports the scikitplot library.\n",
+ "2. `fig, ax = plt.subplots(figsize=(8, 4))`: This line creates a figure with a single subplot and sets the figure size to 8 by 4 inches.\n",
+ "3. `y_probs = xgb_def.predict_proba(X_test)`: This line uses the `xgb_def` model to predict the probabilities of the test data and stores the result in the `y_probs` variable.\n",
+ "4. `scikitplot.metrics.plot_cumulative_gain(y_test, y_probs, ax=ax)`: This line uses the `plot_cumulative_gain` function from the scikitplot library to plot a Cumulative Gains Curve on the specified axes. The function takes as input the true labels of the test data and the predicted probabilities.\n",
+ "5. `ax.plot([0, (y_test == 1).mean(), 1], [0, 1, 1], label='Optimal Class 1')`: This line adds an optimal line to the plot, representing the gain that would be achieved with a perfect model.\n",
+ "6. `ax.set_ylim(0, 1.05)`: This line sets the y-axis limit to slightly above 1.\n",
+ "7. `ax.annotate('Reach 60% of\\nClass 1\\nby contacting top 35%', xy=(.35, .6), xytext=(.55,.25), arrowprops={'color':'k'})`: This line adds an annotation to the plot indicating that 60% of Class 1 can be reached by contacting the top 35% of samples.\n",
+ "8. `ax.legend()`: This line adds a legend to the plot.\n",
+ "\n",
+ "\n",
+ "## 15.8 Lift Curves\n",
+ "The Lift Curve is a plot showing the true positive rate and the cumulative positive rate of a machine learning model as the prediction threshold varies. It uses the same x-axis as the Cumulative Gains plot but the y-axis represents the ratio of gains to randomly choosing a label. This indicates how much better the model is than guessing. For example, if you can only reach the top 20% of your audience, you should be almost 1.8x better than randomly choosing labels.\n",
+ "\n",
+ "A Lift Curve is useful for evaluating a model when resources are finite and can help determine how much better a model is than random guessing. It can also be used to compare different models and determine which one performs better at a given threshold."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "5a43619f-5f8e-4f20-ad15-e0677593344e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(figsize=(8, 4))\n",
+ "y_probs = xgb_def.predict_proba(X_test)\n",
+ "scikitplot.metrics.plot_lift_curve(y_test, y_probs, ax=ax)\n",
+ "mean = (y_test == 1).mean()\n",
+ "ax.plot([0, mean, 1], [1/mean, 1/mean, 1], label='Optimal Class 1')\n",
+ "ax.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a53aac5e-1418-41aa-a63c-3290dff5b1c8",
+ "metadata": {},
+ "source": [
+ "## Summary\n",
+ "1. Cross-validation is a technique used to evaluate the performance of a machine learning model by partitioning the data into subsets and training the model on one subset while testing it on another. This process is repeated multiple times with different partitions of the data. The average performance across all iterations is used to estimate the model's performance on unseen data.\n",
+ "\n",
+ "2. Precision and recall are two metrics used to evaluate the performance of a machine learning model. Precision measures the proportion of true positive predictions among all positive predictions made by the model. Recall measures the proportion of true positive predictions among all actual positive instances in the data. In other words, precision measures how many of the positive predictions made by the model are correct, while recall measures how many of the actual positive instances were correctly identified by the model.\n",
+ "\n",
+ "3. The F1 score is a measure of a model's accuracy that combines precision and recall. It is calculated as the harmonic mean of precision and recall and ranges from 0 to 1, with 1 indicating perfect precision and recall. The F1 score is commonly used to evaluate models when there is an uneven class distribution or when the cost of false positives and false negatives is not equal.\n",
+ "\n",
+ "4. The appropriate metric to use when evaluating a machine learning model depends on the specific problem and context. Precision may be more appropriate when the cost of false positives is high, while recall may be more appropriate when the cost of false negatives is high. Accuracy may be more appropriate when the class distribution is balanced and the cost of false positives and false negatives is equal. The F1 score may be more appropriate when there is an uneven class distribution or when the cost of false positives and false negatives is not equal.\n",
+ "\n",
+ "5. A ROC curve (Receiver Operating Characteristic curve) is a graphical representation of a model's performance at different classification thresholds. It plots the true positive rate against the false positive rate at different thresholds, allowing for visual comparison of different models or selection of an optimal threshold for a given model. The area under the ROC curve (AUC) can also be used as a single-number summary of a model's performance.\n",
+ "\n",
+ "6. ROC curves, precision-recall curves, and lift plots can be used to improve, optimize, and maximize the performance of a machine learning model by providing visual representations of its performance at different classification thresholds or operating points. These plots can help identify optimal thresholds or operating points for a given problem or context, allowing for fine-tuning of the model's performance."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6aed876e-2db5-4e41-82b8-1049e34ce9dd",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}