{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":10737,"databundleVersionId":290346,"sourceType":"competition"}],"dockerImageVersionId":30786,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2025-05-29T06:50:13.438583Z","iopub.execute_input":"2025-05-29T06:50:13.438991Z","iopub.status.idle":"2025-05-29T06:50:13.443912Z","shell.execute_reply.started":"2025-05-29T06:50:13.438956Z","shell.execute_reply":"2025-05-29T06:50:13.442846Z"},"trusted":true},"outputs":[],"execution_count":39},{"cell_type":"code","source":"raw_df = pd.read_csv('/kaggle/input/quora-insincere-questions-classification/train.csv')","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:13.445986Z","iopub.execute_input":"2025-05-29T06:50:13.446418Z","iopub.status.idle":"2025-05-29T06:50:16.502692Z","shell.execute_reply.started":"2025-05-29T06:50:13.446374Z","shell.execute_reply":"2025-05-29T06:50:16.501541Z"},"trusted":true},"outputs":[],"execution_count":40},{"cell_type":"code","source":"raw_df.head()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.504808Z","iopub.execute_input":"2025-05-29T06:50:16.505222Z","iopub.status.idle":"2025-05-29T06:50:16.516605Z","shell.execute_reply.started":"2025-05-29T06:50:16.505178Z","shell.execute_reply":"2025-05-29T06:50:16.515578Z"},"trusted":true},"outputs":[{"execution_count":41,"output_type":"execute_result","data":{"text/plain":"                    qid                                      question_text  \\\n0  00002165364db923c7e6  How did Quebec nationalists see their province...   \n1  000032939017120e6e44  Do you have an adopted dog, how would you enco...   \n2  0000412ca6e4628ce2cf  Why does velocity affect time? Does velocity a...   \n3  000042bf85aa498cd78e  How did Otto von Guericke used the Magdeburg h...   \n4  0000455dfa3e01eae3af  Can I convert montra helicon D to a mountain b...   \n\n   target  \n0       0  \n1       0  \n2       0  \n3       0  \n4       0  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>qid</th>\n      <th>question_text</th>\n      <th>target</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>00002165364db923c7e6</td>\n      <td>How did Quebec nationalists see their province...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>000032939017120e6e44</td>\n      <td>Do you have an adopted dog, how would you enco...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0000412ca6e4628ce2cf</td>\n      <td>Why does velocity affect time? Does velocity a...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>000042bf85aa498cd78e</td>\n      <td>How did Otto von Guericke used the Magdeburg h...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0000455dfa3e01eae3af</td>\n      <td>Can I convert montra helicon D to a mountain b...</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":41},{"cell_type":"code","source":"sincere_df = raw_df[raw_df.target == 0] \nsincere_df.question_text[:10]","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.51804Z","iopub.execute_input":"2025-05-29T06:50:16.518456Z","iopub.status.idle":"2025-05-29T06:50:16.603252Z","shell.execute_reply.started":"2025-05-29T06:50:16.518424Z","shell.execute_reply":"2025-05-29T06:50:16.602Z"},"trusted":true},"outputs":[{"execution_count":42,"output_type":"execute_result","data":{"text/plain":"0    How did Quebec nationalists see their province...\n1    Do you have an adopted dog, how would you enco...\n2    Why does velocity affect time? Does velocity a...\n3    How did Otto von Guericke used the Magdeburg h...\n4    Can I convert montra helicon D to a mountain b...\n5    Is Gaza slowly becoming Auschwitz, Dachau or T...\n6    Why does Quora automatically ban conservative ...\n7    Is it crazy if I wash or wipe my groceries off...\n8    Is there such a thing as dressing moderately, ...\n9    Is it just me or have you ever been in this ph...\nName: question_text, dtype: object"},"metadata":{}}],"execution_count":42},{"cell_type":"code","source":"insincere_df = raw_df[raw_df.target == 1] \ninsincere_df.question_text[:10]","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.606118Z","iopub.execute_input":"2025-05-29T06:50:16.607386Z","iopub.status.idle":"2025-05-29T06:50:16.629481Z","shell.execute_reply.started":"2025-05-29T06:50:16.607337Z","shell.execute_reply":"2025-05-29T06:50:16.628163Z"},"trusted":true},"outputs":[{"execution_count":43,"output_type":"execute_result","data":{"text/plain":"22     Has the United States become the largest dicta...\n30     Which babies are more sweeter to their parents...\n110    If blacks support school choice and mandatory ...\n114    I am gay boy and I love my cousin (boy). He is...\n115                 Which races have the smallest penis?\n119                    Why do females find penises ugly?\n127    How do I marry an American woman for a Green C...\n144    Why do Europeans say they're the superior race...\n156    Did Julius Caesar bring a tyrannosaurus rex on...\n167    In what manner has Republican backing of 'stat...\nName: question_text, dtype: object"},"metadata":{}}],"execution_count":43},{"cell_type":"code","source":"raw_df.target.value_counts(normalize = True)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.63094Z","iopub.execute_input":"2025-05-29T06:50:16.631382Z","iopub.status.idle":"2025-05-29T06:50:16.647711Z","shell.execute_reply.started":"2025-05-29T06:50:16.631337Z","shell.execute_reply":"2025-05-29T06:50:16.646593Z"},"trusted":true},"outputs":[{"execution_count":44,"output_type":"execute_result","data":{"text/plain":"target\n0    0.93813\n1    0.06187\nName: proportion, dtype: float64"},"metadata":{}}],"execution_count":44},{"cell_type":"code","source":"raw_df.target.value_counts(normalize = True).plot(kind = 'bar');","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.64904Z","iopub.execute_input":"2025-05-29T06:50:16.649456Z","iopub.status.idle":"2025-05-29T06:50:16.859778Z","shell.execute_reply.started":"2025-05-29T06:50:16.649414Z","shell.execute_reply":"2025-05-29T06:50:16.858621Z"},"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAiMAAAGrCAYAAAASIZeZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAZr0lEQVR4nO3df2zddb3H8VdbaAtCCzpot9mkeiPgAmzQ3dXhr3uvlXklu3cx6gKGYcURdTFIg2ET2EQuFO+FOQzDxV0X7829hF1/Ec3IiLdXjbrGweZQE2RxZG7BtKyX2OLQVdveP24sqevGztj2odvjkZyEfc/nc877ELo++Z5fVWNjY2MBACikuvQAAMCpTYwAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAijqt9ABHYnR0NL/5zW9y9tlnp6qqqvQ4AMARGBsbywsvvJAZM2akuvrQ5z+mRIz85je/SUtLS+kxAICjsHfv3rz+9a8/5PVTIkbOPvvsJP//YBoaGgpPAwAciaGhobS0tIz/Hj+UKREjf35qpqGhQYwAwBTzci+x8AJWAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKOq00gNweK3LN5UegRNo9z1XlR4B4IRzZgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAijqqGFm7dm1aW1tTX1+f9vb2bN269bDr16xZkwsvvDBnnHFGWlpactNNN+UPf/jDUQ0MAJxcKo6RjRs3pqurK6tWrcr27dsze/bsLFiwIM8999yk6x966KEsX748q1atylNPPZWvfOUr2bhxYz7zmc+84uEBgKmv4hhZvXp1li5dms7OzsyaNSvr1q3LmWeemQ0bNky6fsuWLXnrW9+aa665Jq2trbnyyitz9dVXv+zZFADg1FBRjAwPD2fbtm3p6Oh46Qaqq9PR0ZHe3t5J91xxxRXZtm3beHw888wzefTRR/Pe9773kPdz4MCBDA0NTbgAACen0ypZPDAwkJGRkTQ1NU043tTUlF/+8peT7rnmmmsyMDCQt73tbRkbG8uf/vSnfOxjHzvs0zTd3d254447KhkNAJiijvu7ab7//e/n7rvvzoMPPpjt27fnm9/8ZjZt2pQ777zzkHtWrFiRwcHB8cvevXuP95gAQCEVnRmZNm1aampq0t/fP+F4f39/mpubJ91z++2359prr81HP/rRJMkll1yS/fv354Ybbsitt96a6uqDe6iuri51dXWVjAYATFEVnRmpra1NW1tbenp6xo+Njo6mp6cn8+fPn3TPiy++eFBw1NTUJEnGxsYqnRcAOMlUdGYkSbq6unLddddl7ty5mTdvXtasWZP9+/ens7MzSbJkyZLMnDkz3d3dSZKFCxdm9erVueyyy9Le3p5f/epXuf3227Nw4cLxKAEATl0Vx8jixYuzb9++rFy5Mn19fZkzZ042b948/qLWPXv2TDgTctttt6Wqqiq33XZbnn322Zx33nlZuHBh7rrrrmP3KACAKatqbAo8VzI0NJTGxsYMDg6moaGh9DgnVOvyTaVH4ATafc9VpUcAOGaO9Pe376YBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFDUUcXI2rVr09ramvr6+rS3t2fr1q2HXf/b3/42y5Yty/Tp01NXV5cLLrggjz766FENDACcXE6rdMPGjRvT1dWVdevWpb29PWvWrMmCBQvy9NNP5/zzzz9o/fDwcN797nfn/PPPz9e//vXMnDkzv/71r3POOecci/kBgCmu4hhZvXp1li5dms7OziTJunXrsmnTpmzYsCHLly8/aP2GDRvy/PPPZ8uWLTn99NOTJK2tra9sagDgpFHR0zTDw8PZtm1bOjo6XrqB6up0dHSkt7d30j3f/va3M3/+/CxbtixNTU25+OKLc/fdd2dkZOSQ93PgwIEMDQ1NuAAAJ6eKYmRgYCAjIyNpamqacLypqSl9fX2T7nnmmWfy9a9/PSMjI3n00Udz++2357777ss//dM/HfJ+uru709jYOH5paWmpZEwAYAo57u+mGR0dzfnnn58vf/nLaWtry+LFi3Prrbdm3bp1h9yzYsWKDA4Ojl/27t17vMcEAAqp6DUj06ZNS01NTfr7+ycc7+/vT3Nz86R7pk+fntNPPz01NTXjx9785jenr68vw8PDqa2tPWhPXV1d6urqKhkNAJiiKjozUltbm7a2tvT09IwfGx0dTU9PT+bPnz/pnre+9a351a9+ldHR0fFjO3fuzPTp0ycNEQDg1FLx0zRdXV1Zv359/u3f/i1PPfVUPv7xj2f//v3j765ZsmRJVqxYMb7+4x//eJ5//vnceOON2blzZzZt2pS77747y5YtO3aPAgCYsip+a+/ixYuzb9++rFy5Mn19fZkzZ042b948/qLWPXv2pLr6pcZpaWnJY489lptuuimXXnppZs6cmRtvvDG33HLLsXsUAMCUVTU2NjZWeoiXMzQ0lMbGxgwODqahoaH0OCdU6/JNpUfgBNp9z1WlRwA4Zo7097fvpgEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUNRRxcjatWvT2tqa+vr6tLe3Z+vWrUe07+GHH05VVVUWLVp0NHcLAJyEKo6RjRs3pqurK6tWrcr27dsze/bsLFiwIM8999xh9+3evTs333xz3v72tx/1sADAyafiGFm9enWWLl2azs7OzJo1K+vWrcuZZ56ZDRs2HHLPyMhIPvShD+WOO+7IG9/4xlc0MABwcqkoRoaHh7Nt27Z0dHS8dAPV1eno6Ehvb+8h933uc5/L+eefn+uvv/6I7ufAgQMZGhqacAEATk4VxcjAwEBGRkbS1NQ04XhTU1P6+vom3fOjH/0oX/nKV7J+/fojvp/u7u40NjaOX1paWioZEwCYQo7ru2leeOGFXHvttVm/fn2mTZt2xPtWrFiRwcHB8cvevXuP45QAQEmnVbJ42rRpqampSX9//4Tj/f39aW5uPmj9rl27snv37ixcuHD82Ojo6P/f8Wmn5emnn85f/dVfHbSvrq4udXV1lYwGAExRFZ0Zqa2tTVtbW3p6esaPjY6OpqenJ/Pnzz9o/UUXXZSf//zn2bFjx/jlH/7hH/K3f/u32bFjh6dfAIDKzowkSVdXV6677rrMnTs38+bNy5o1a7J///50dnYmSZYsWZKZM2emu7s79fX1ufjiiyfsP+ecc5LkoOMAwKmp4hhZvHhx9u3bl5UrV6avry9z5szJ5s2bx1/UumfPnlRX+2BXAODIVI2NjY2VHuLlDA0NpbGxMYODg2loaCg9zgnVunxT6RE4gXbfc1XpEQCOmSP9/e0UBgBQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAoo4qRtauXZvW1tbU19envb09W7duPeTa9evX5+1vf3vOPffcnHvuueno6DjsegDg1FJxjGzcuDFdXV1ZtWpVtm/fntmzZ2fBggV57rnnJl3//e9/P1dffXW+973vpbe3Ny0tLbnyyivz7LPPvuLhAYCpr2psbGyskg3t7e3567/+6zzwwANJktHR0bS0tOSTn/xkli9f/rL7R0ZGcu655+aBBx7IkiVLjug+h4aG0tjYmMHBwTQ0NFQy7pTXunxT6RE4gXbfc1XpEQCOmSP9/V3RmZHh4eFs27YtHR0dL91AdXU6OjrS29t7RLfx4osv5o9//GNe+9rXHnLNgQMHMjQ0NOECAJycKoqRgYGBjIyMpKmpacLxpqam9PX1HdFt3HLLLZkxY8aEoPlL3d3daWxsHL+0tLRUMiYAMIWc0HfT3HPPPXn44YfzrW99K/X19Ydct2LFigwODo5f9u7dewKnBABOpNMqWTxt2rTU1NSkv79/wvH+/v40Nzcfdu+9996be+65J//93/+dSy+99LBr6+rqUldXV8loAMAUVdGZkdra2rS1taWnp2f82OjoaHp6ejJ//vxD7vvnf/7n3Hnnndm8eXPmzp179NMCACedis6MJElXV1euu+66zJ07N/PmzcuaNWuyf//+dHZ2JkmWLFmSmTNnpru7O0ny+c9/PitXrsxDDz2U1tbW8deWnHXWWTnrrLOO4UMBAKaiimNk8eLF2bdvX1auXJm+vr7MmTMnmzdvHn9R6549e1Jd/dIJly996UsZHh7O+9///gm3s2rVqnz2s599ZdMDAFNexZ8zUoLPGeFU4XNGgJPJcfmcEQCAY02MAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAok4rPQDAqap1+abSI3AC7b7nqtIjvGo5MwIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKKOKkbWrl2b1tbW1NfXp729PVu3bj3s+q997Wu56KKLUl9fn0suuSSPPvroUQ0LAJx8Ko6RjRs3pqurK6tWrcr27dsze/bsLFiwIM8999yk67ds2ZKrr746119/fX76059m0aJFWbRoUX7xi1+84uEBgKmv4hhZvXp1li5dms7OzsyaNSvr1q3LmWeemQ0bNky6/v7778973vOefPrTn86b3/zm3Hnnnbn88svzwAMPvOLhAYCp77RKFg8PD2fbtm1ZsWLF+LHq6up0dHSkt7d30j29vb3p6uqacGzBggV55JFHDnk/Bw4cyIEDB8b/PDg4mCQZGhqqZNyTwuiBF0uPwAl0Kv43firz831qORV/vv/8mMfGxg67rqIYGRgYyMjISJqamiYcb2pqyi9/+ctJ9/T19U26vq+v75D3093dnTvuuOOg4y0tLZWMC1NO45rSEwDHy6n88/3CCy+ksbHxkNdXFCMnyooVKyacTRkdHc3zzz+f173udamqqio4GSfC0NBQWlpasnfv3jQ0NJQeBziG/HyfWsbGxvLCCy9kxowZh11XUYxMmzYtNTU16e/vn3C8v78/zc3Nk+5pbm6uaH2S1NXVpa6ubsKxc845p5JROQk0NDT4ywpOUn6+Tx2HOyPyZxW9gLW2tjZtbW3p6ekZPzY6Opqenp7Mnz9/0j3z58+fsD5Jvvvd7x5yPQBwaqn4aZqurq5cd911mTt3bubNm5c1a9Zk//796ezsTJIsWbIkM2fOTHd3d5LkxhtvzDvf+c7cd999ueqqq/Lwww/niSeeyJe//OVj+0gAgCmp4hhZvHhx9u3bl5UrV6avry9z5szJ5s2bx1+kumfPnlRXv3TC5YorrshDDz2U2267LZ/5zGfypje9KY888kguvvjiY/coOKnU1dVl1apVBz1VB0x9fr6ZTNXYy73fBgDgOPLdNABAUWIEAChKjAAARYkRAKAoMQIAFPWq/Dh4Ti0DAwPZsGFDent7x7+zqLm5OVdccUU+/OEP57zzzis8IQDHkzMjFPX444/nggsuyBe/+MU0NjbmHe94R97xjneksbExX/ziF3PRRRfliSeeKD0mcBzs3bs3H/nIR0qPwauAzxmhqLe85S2ZPXt21q1bd9CXII6NjeVjH/tYfvazn6W3t7fQhMDx8uSTT+byyy/PyMhI6VEozNM0FPXkk0/mq1/96qTfxlxVVZWbbropl112WYHJgFfq29/+9mGvf+aZZ07QJLzaiRGKam5uztatW3PRRRdNev3WrVvHv2oAmFoWLVqUqqqqHO4E/GT/I8KpR4xQ1M0335wbbrgh27Zty7ve9a7x8Ojv709PT0/Wr1+fe++9t/CUwNGYPn16HnzwwfzjP/7jpNfv2LEjbW1tJ3gqXo3ECEUtW7Ys06ZNyxe+8IU8+OCD488d19TUpK2tLV/96lfzwQ9+sPCUwNFoa2vLtm3bDhkjL3fWhFOHF7DyqvHHP/4xAwMDSZJp06bl9NNPLzwR8Er88Ic/zP79+/Oe97xn0uv379+fJ554Iu985ztP8GS82ogRAKAonzMCABQlRgCAosQIAFCUGAEAihIjAEBRYgSo2N/8zd/kU5/6VOkxxr3a5gEqI0aAIoaHh0uPALxKiBGgIh/+8Ifzgx/8IPfff3+qqqpSVVWVXbt25frrr88b3vCGnHHGGbnwwgtz//33H7Rv0aJFueuuuzJjxoxceOGFSZItW7Zkzpw5qa+vz9y5c/PII4+kqqoqO3bsGN/7i1/8In//93+fs846K01NTbn22mvHPyBvsnl27959ov51AMeAj4MHKnL//fdn586dufjii/O5z30uSXLuuefm9a9/fb72ta/lda97XbZs2ZIbbrgh06dPn/Bx/j09PWloaMh3v/vdJMnQ0FAWLlyY9773vXnooYfy61//+qCnW37729/m7/7u7/LRj340X/jCF/L73/8+t9xySz74wQ/mf/7nfyad57zzzjsx/zKAY0KMABVpbGxMbW1tzjzzzDQ3N48fv+OOO8b/+Q1veEN6e3vzX//1XxNi5DWveU3+9V//NbW1tUmSdevWpaqqKuvXr099fX1mzZqVZ599NkuXLh3f88ADD+Syyy7L3XffPX5sw4YNaWlpyc6dO3PBBRdMOg8wdYgR4JhYu3ZtNmzYkD179uT3v/99hoeHM2fOnAlrLrnkkvEQSZKnn346l156aerr68ePzZs3b8KeJ598Mt/73vdy1llnHXSfu3btygUXXHBsHwhwwokR4BV7+OGHc/PNN+e+++7L/Pnzc/bZZ+df/uVf8pOf/GTCute85jUV3/bvfve7LFy4MJ///OcPum769OlHPTPw6iFGgIrV1tZmZGRk/M8//vGPc8UVV+QTn/jE+LFdu3a97O1ceOGF+Y//+I8cOHAgdXV1SZLHH398wprLL7883/jGN9La2prTTpv8r6y/nAeYWrybBqhYa2trfvKTn2T37t0ZGBjIm970pjzxxBN57LHHsnPnztx+++0HRcVkrrnmmoyOjuaGG27IU089lcceeyz33ntvkqSqqipJsmzZsjz//PO5+uqr8/jjj2fXrl157LHH0tnZOR4gfznP6Ojo8XvwwDEnRoCK3XzzzampqcmsWbNy3nnnZcGCBXnf+96XxYsXp729Pf/7v/874SzJoTQ0NOQ73/lOduzYkTlz5uTWW2/NypUrk2T8dSQzZszIj3/844yMjOTKK6/MJZdckk996lM555xzUl1dPek8e/bsOX4PHjjmqsbGxsZKDwHwZ//5n/+Zzs7ODA4O5owzzig9DnACeM0IUNS///u/541vfGNmzpyZJ598cvwzRIQInDrECFBUX19fVq5cmb6+vkyfPj0f+MAHctddd5UeCziBPE0DABTlBawAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAivo/V1onwt9A5Y8AAAAASUVORK5CYII="},"metadata":{}}],"execution_count":45},{"cell_type":"code","source":"test_df = pd.read_csv('/kaggle/input/quora-insincere-questions-classification/test.csv')\ntest_df.head(5)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:16.861088Z","iopub.execute_input":"2025-05-29T06:50:16.861486Z","iopub.status.idle":"2025-05-29T06:50:17.750866Z","shell.execute_reply.started":"2025-05-29T06:50:16.861454Z","shell.execute_reply":"2025-05-29T06:50:17.749874Z"},"trusted":true},"outputs":[{"execution_count":46,"output_type":"execute_result","data":{"text/plain":"                    qid                                      question_text\n0  0000163e3ea7c7a74cd7  Why do so many women become so rude and arroga...\n1  00002bd4fb5d505b9161  When should I apply for RV college of engineer...\n2  00007756b4a147d2b0b3  What is it really like to be a nurse practitio...\n3  000086e4b7e1c7146103                             Who are entrepreneurs?\n4  0000c4c3fbe8785a3090   Is education really making good people nowadays?","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>qid</th>\n      <th>question_text</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0000163e3ea7c7a74cd7</td>\n      <td>Why do so many women become so rude and arroga...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>00002bd4fb5d505b9161</td>\n      <td>When should I apply for RV college of engineer...</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>00007756b4a147d2b0b3</td>\n      <td>What is it really like to be a nurse practitio...</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>000086e4b7e1c7146103</td>\n      <td>Who are entrepreneurs?</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0000c4c3fbe8785a3090</td>\n      <td>Is education really making good people nowadays?</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":46},{"cell_type":"code","source":"sub_df = pd.read_csv('/kaggle/input/quora-insincere-questions-classification/sample_submission.csv')\nsub_df.head(3)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:17.752041Z","iopub.execute_input":"2025-05-29T06:50:17.752344Z","iopub.status.idle":"2025-05-29T06:50:18.005432Z","shell.execute_reply.started":"2025-05-29T06:50:17.7523Z","shell.execute_reply":"2025-05-29T06:50:18.004319Z"},"trusted":true},"outputs":[{"execution_count":47,"output_type":"execute_result","data":{"text/plain":"                    qid  prediction\n0  0000163e3ea7c7a74cd7           0\n1  00002bd4fb5d505b9161           0\n2  00007756b4a147d2b0b3           0","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>qid</th>\n      <th>prediction</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0000163e3ea7c7a74cd7</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>00002bd4fb5d505b9161</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>00007756b4a147d2b0b3</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":47},{"cell_type":"markdown","source":"## Tokenization\n\nsplitting a document into words and separators","metadata":{}},{"cell_type":"code","source":"import nltk\nfrom nltk.tokenize import word_tokenize","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.006534Z","iopub.execute_input":"2025-05-29T06:50:18.006805Z","iopub.status.idle":"2025-05-29T06:50:18.0114Z","shell.execute_reply.started":"2025-05-29T06:50:18.006778Z","shell.execute_reply":"2025-05-29T06:50:18.010341Z"},"trusted":true},"outputs":[],"execution_count":48},{"cell_type":"code","source":"q0 = sincere_df.question_text[1]\nq0","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.01508Z","iopub.execute_input":"2025-05-29T06:50:18.01541Z","iopub.status.idle":"2025-05-29T06:50:18.030568Z","shell.execute_reply.started":"2025-05-29T06:50:18.015382Z","shell.execute_reply":"2025-05-29T06:50:18.029507Z"},"trusted":true},"outputs":[{"execution_count":49,"output_type":"execute_result","data":{"text/plain":"'Do you have an adopted dog, how would you encourage people to adopt and not shop?'"},"metadata":{}}],"execution_count":49},{"cell_type":"code","source":"q0_tok  = word_tokenize(q0)\nq0_tok","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.03191Z","iopub.execute_input":"2025-05-29T06:50:18.032207Z","iopub.status.idle":"2025-05-29T06:50:18.041724Z","shell.execute_reply.started":"2025-05-29T06:50:18.032179Z","shell.execute_reply":"2025-05-29T06:50:18.040638Z"},"trusted":true},"outputs":[{"execution_count":50,"output_type":"execute_result","data":{"text/plain":"['Do',\n 'you',\n 'have',\n 'an',\n 'adopted',\n 'dog',\n ',',\n 'how',\n 'would',\n 'you',\n 'encourage',\n 'people',\n 'to',\n 'adopt',\n 'and',\n 'not',\n 'shop',\n '?']"},"metadata":{}}],"execution_count":50},{"cell_type":"markdown","source":"## Stop Word Removal\n\nRemoving commonly occuring words","metadata":{}},{"cell_type":"code","source":"from nltk.corpus import stopwords","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.043134Z","iopub.execute_input":"2025-05-29T06:50:18.043697Z","iopub.status.idle":"2025-05-29T06:50:18.051425Z","shell.execute_reply.started":"2025-05-29T06:50:18.043652Z","shell.execute_reply":"2025-05-29T06:50:18.050404Z"},"trusted":true},"outputs":[],"execution_count":51},{"cell_type":"code","source":"english_stopwords = stopwords.words('english')","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.052567Z","iopub.execute_input":"2025-05-29T06:50:18.052852Z","iopub.status.idle":"2025-05-29T06:50:18.062505Z","shell.execute_reply.started":"2025-05-29T06:50:18.052825Z","shell.execute_reply":"2025-05-29T06:50:18.061427Z"},"trusted":true},"outputs":[],"execution_count":52},{"cell_type":"code","source":"def remove_stopwords(tokens):\n    return[word for word in tokens if word.lower() not in english_stopwords]\n","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.06406Z","iopub.execute_input":"2025-05-29T06:50:18.064779Z","iopub.status.idle":"2025-05-29T06:50:18.073941Z","shell.execute_reply.started":"2025-05-29T06:50:18.064732Z","shell.execute_reply":"2025-05-29T06:50:18.073129Z"},"trusted":true},"outputs":[],"execution_count":53},{"cell_type":"code","source":"q0_norm = remove_stopwords(q0_tok)\nq0_norm","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.075186Z","iopub.execute_input":"2025-05-29T06:50:18.075527Z","iopub.status.idle":"2025-05-29T06:50:18.089866Z","shell.execute_reply.started":"2025-05-29T06:50:18.075499Z","shell.execute_reply":"2025-05-29T06:50:18.088761Z"},"trusted":true},"outputs":[{"execution_count":54,"output_type":"execute_result","data":{"text/plain":"['adopted', 'dog', ',', 'would', 'encourage', 'people', 'adopt', 'shop', '?']"},"metadata":{}}],"execution_count":54},{"cell_type":"markdown","source":"### Stemming\n\n\"go\", \"gone\", \"going\" -> \"go\"\n\"birds\", \"bird\" -> \"bird\"","metadata":{}},{"cell_type":"code","source":"from nltk.stem.snowball import SnowballStemmer\nstemmer = SnowballStemmer(language = 'english')","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.091109Z","iopub.execute_input":"2025-05-29T06:50:18.091432Z","iopub.status.idle":"2025-05-29T06:50:18.101222Z","shell.execute_reply.started":"2025-05-29T06:50:18.091403Z","shell.execute_reply":"2025-05-29T06:50:18.100119Z"},"trusted":true},"outputs":[],"execution_count":55},{"cell_type":"code","source":"q0_stem = [stemmer.stem(word) for word in q0_norm]\nq0_stem","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.102531Z","iopub.execute_input":"2025-05-29T06:50:18.102879Z","iopub.status.idle":"2025-05-29T06:50:18.113483Z","shell.execute_reply.started":"2025-05-29T06:50:18.102828Z","shell.execute_reply":"2025-05-29T06:50:18.112405Z"},"trusted":true},"outputs":[{"execution_count":56,"output_type":"execute_result","data":{"text/plain":"['adopt', 'dog', ',', 'would', 'encourag', 'peopl', 'adopt', 'shop', '?']"},"metadata":{}}],"execution_count":56},{"cell_type":"markdown","source":"## Implement Bag of Words \n\n\nOutline:\n\n1. Create a vocabulary using Count Vectorizer\n2. Transform text to vectors using Count Vectorizer\n3. Configure text preprocessing in Count Vectorizer","metadata":{}},{"cell_type":"code","source":"small_df = raw_df[:5]\nsmall_df","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.114818Z","iopub.execute_input":"2025-05-29T06:50:18.11512Z","iopub.status.idle":"2025-05-29T06:50:18.128208Z","shell.execute_reply.started":"2025-05-29T06:50:18.115089Z","shell.execute_reply":"2025-05-29T06:50:18.127203Z"},"trusted":true},"outputs":[{"execution_count":57,"output_type":"execute_result","data":{"text/plain":"                    qid                                      question_text  \\\n0  00002165364db923c7e6  How did Quebec nationalists see their province...   \n1  000032939017120e6e44  Do you have an adopted dog, how would you enco...   \n2  0000412ca6e4628ce2cf  Why does velocity affect time? Does velocity a...   \n3  000042bf85aa498cd78e  How did Otto von Guericke used the Magdeburg h...   \n4  0000455dfa3e01eae3af  Can I convert montra helicon D to a mountain b...   \n\n   target  \n0       0  \n1       0  \n2       0  \n3       0  \n4       0  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>qid</th>\n      <th>question_text</th>\n      <th>target</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>00002165364db923c7e6</td>\n      <td>How did Quebec nationalists see their province...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>000032939017120e6e44</td>\n      <td>Do you have an adopted dog, how would you enco...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0000412ca6e4628ce2cf</td>\n      <td>Why does velocity affect time? Does velocity a...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>000042bf85aa498cd78e</td>\n      <td>How did Otto von Guericke used the Magdeburg h...</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0000455dfa3e01eae3af</td>\n      <td>Can I convert montra helicon D to a mountain b...</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":57},{"cell_type":"code","source":"from sklearn.feature_extraction.text import CountVectorizer","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.129435Z","iopub.execute_input":"2025-05-29T06:50:18.129759Z","iopub.status.idle":"2025-05-29T06:50:18.139351Z","shell.execute_reply.started":"2025-05-29T06:50:18.129728Z","shell.execute_reply":"2025-05-29T06:50:18.138342Z"},"trusted":true},"outputs":[],"execution_count":58},{"cell_type":"code","source":"small_vect = CountVectorizer()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.140752Z","iopub.execute_input":"2025-05-29T06:50:18.141059Z","iopub.status.idle":"2025-05-29T06:50:18.15302Z","shell.execute_reply.started":"2025-05-29T06:50:18.14103Z","shell.execute_reply":"2025-05-29T06:50:18.151982Z"},"trusted":true},"outputs":[],"execution_count":59},{"cell_type":"code","source":"small_vect.fit(small_df.question_text)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.154433Z","iopub.execute_input":"2025-05-29T06:50:18.154834Z","iopub.status.idle":"2025-05-29T06:50:18.169083Z","shell.execute_reply.started":"2025-05-29T06:50:18.154789Z","shell.execute_reply":"2025-05-29T06:50:18.168043Z"},"trusted":true},"outputs":[{"execution_count":60,"output_type":"execute_result","data":{"text/plain":"CountVectorizer()","text/html":"<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>CountVectorizer()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">CountVectorizer</label><div class=\"sk-toggleable__content\"><pre>CountVectorizer()</pre></div></div></div></div></div>"},"metadata":{}}],"execution_count":60},{"cell_type":"code","source":"small_vect.get_feature_names_out()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.170529Z","iopub.execute_input":"2025-05-29T06:50:18.170961Z","iopub.status.idle":"2025-05-29T06:50:18.181097Z","shell.execute_reply.started":"2025-05-29T06:50:18.170909Z","shell.execute_reply":"2025-05-29T06:50:18.180115Z"},"trusted":true},"outputs":[{"execution_count":61,"output_type":"execute_result","data":{"text/plain":"array(['1960s', 'adopt', 'adopted', 'affect', 'an', 'and', 'as', 'bike',\n       'by', 'can', 'changing', 'convert', 'did', 'do', 'does', 'dog',\n       'encourage', 'geometry', 'guericke', 'have', 'helicon',\n       'hemispheres', 'how', 'in', 'just', 'magdeburg', 'montra',\n       'mountain', 'nation', 'nationalists', 'not', 'otto', 'people',\n       'province', 'quebec', 'see', 'shop', 'space', 'the', 'their',\n       'time', 'to', 'tyres', 'used', 'velocity', 'von', 'why', 'would',\n       'you'], dtype=object)"},"metadata":{}}],"execution_count":61},{"cell_type":"markdown","source":"### Transforming documents into Vectors","metadata":{}},{"cell_type":"code","source":"small_vectors = small_vect.transform(small_df.question_text)\nsmall_vectors","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.182588Z","iopub.execute_input":"2025-05-29T06:50:18.183328Z","iopub.status.idle":"2025-05-29T06:50:18.197958Z","shell.execute_reply.started":"2025-05-29T06:50:18.183246Z","shell.execute_reply":"2025-05-29T06:50:18.197011Z"},"trusted":true},"outputs":[{"execution_count":62,"output_type":"execute_result","data":{"text/plain":"<Compressed Sparse Row sparse matrix of dtype 'int64'\n\twith 55 stored elements and shape (5, 49)>"},"metadata":{}}],"execution_count":62},{"cell_type":"code","source":"small_vectors.shape","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.199511Z","iopub.execute_input":"2025-05-29T06:50:18.200213Z","iopub.status.idle":"2025-05-29T06:50:18.215343Z","shell.execute_reply.started":"2025-05-29T06:50:18.200167Z","shell.execute_reply":"2025-05-29T06:50:18.21433Z"},"trusted":true},"outputs":[{"execution_count":63,"output_type":"execute_result","data":{"text/plain":"(5, 49)"},"metadata":{}}],"execution_count":63},{"cell_type":"code","source":"small_vectors[0].toarray()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.216606Z","iopub.execute_input":"2025-05-29T06:50:18.216918Z","iopub.status.idle":"2025-05-29T06:50:18.227129Z","shell.execute_reply.started":"2025-05-29T06:50:18.21689Z","shell.execute_reply":"2025-05-29T06:50:18.226125Z"},"trusted":true},"outputs":[{"execution_count":64,"output_type":"execute_result","data":{"text/plain":"array([[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,\n        0, 0, 0, 0, 0]])"},"metadata":{}}],"execution_count":64},{"cell_type":"code","source":"small_vectors.toarray()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.228547Z","iopub.execute_input":"2025-05-29T06:50:18.228877Z","iopub.status.idle":"2025-05-29T06:50:18.240757Z","shell.execute_reply.started":"2025-05-29T06:50:18.228846Z","shell.execute_reply":"2025-05-29T06:50:18.239873Z"},"trusted":true},"outputs":[{"execution_count":65,"output_type":"execute_result","data":{"text/plain":"array([[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,\n        0, 0, 0, 0, 0],\n       [0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0,\n        1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,\n        0, 0, 0, 1, 2],\n       [0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0,\n        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,\n        2, 0, 1, 0, 0],\n       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1,\n        1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,\n        0, 1, 0, 0, 0],\n       [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n        0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0,\n        0, 0, 0, 0, 0]])"},"metadata":{}}],"execution_count":65},{"cell_type":"markdown","source":"## Configuring Count Vectorizer Parameters","metadata":{}},{"cell_type":"code","source":"stemmer = SnowballStemmer(language='english')","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.241887Z","iopub.execute_input":"2025-05-29T06:50:18.24223Z","iopub.status.idle":"2025-05-29T06:50:18.249802Z","shell.execute_reply.started":"2025-05-29T06:50:18.2422Z","shell.execute_reply":"2025-05-29T06:50:18.248847Z"},"trusted":true},"outputs":[],"execution_count":66},{"cell_type":"code","source":"def tokenize(text):\n    return[stemmer.stem(word) for word in word_tokenize(text)]","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.255401Z","iopub.execute_input":"2025-05-29T06:50:18.256408Z","iopub.status.idle":"2025-05-29T06:50:18.260666Z","shell.execute_reply.started":"2025-05-29T06:50:18.256325Z","shell.execute_reply":"2025-05-29T06:50:18.259812Z"},"trusted":true},"outputs":[],"execution_count":67},{"cell_type":"code","source":"## example \ntokenize('What is the really (dealing) here?')","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.261862Z","iopub.execute_input":"2025-05-29T06:50:18.26225Z","iopub.status.idle":"2025-05-29T06:50:18.273504Z","shell.execute_reply.started":"2025-05-29T06:50:18.262209Z","shell.execute_reply":"2025-05-29T06:50:18.272415Z"},"trusted":true},"outputs":[{"execution_count":68,"output_type":"execute_result","data":{"text/plain":"['what', 'is', 'the', 'realli', '(', 'deal', ')', 'here', '?']"},"metadata":{}}],"execution_count":68},{"cell_type":"code","source":"vectorizer = CountVectorizer(lowercase=True, \n                             ## our own tokenizer\n                             stop_words=english_stopwords,\n                             max_features=1000)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.275363Z","iopub.execute_input":"2025-05-29T06:50:18.275809Z","iopub.status.idle":"2025-05-29T06:50:18.283401Z","shell.execute_reply.started":"2025-05-29T06:50:18.275739Z","shell.execute_reply":"2025-05-29T06:50:18.282294Z"},"trusted":true},"outputs":[],"execution_count":69},{"cell_type":"code","source":"%%time\nvectorizer.fit(raw_df.question_text)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:18.28468Z","iopub.execute_input":"2025-05-29T06:50:18.28496Z","iopub.status.idle":"2025-05-29T06:50:34.526586Z","shell.execute_reply.started":"2025-05-29T06:50:18.284933Z","shell.execute_reply":"2025-05-29T06:50:34.525527Z"},"trusted":true},"outputs":[{"name":"stdout","text":"CPU times: user 15.9 s, sys: 298 ms, total: 16.2 s\nWall time: 16.2 s\n","output_type":"stream"},{"execution_count":70,"output_type":"execute_result","data":{"text/plain":"CountVectorizer(max_features=1000,\n                stop_words=['i', 'me', 'my', 'myself', 'we', 'our', 'ours',\n                            'ourselves', 'you', \"you're\", \"you've\", \"you'll\",\n                            \"you'd\", 'your', 'yours', 'yourself', 'yourselves',\n                            'he', 'him', 'his', 'himself', 'she', \"she's\",\n                            'her', 'hers', 'herself', 'it', \"it's\", 'its',\n                            'itself', ...])","text/html":"<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>CountVectorizer(max_features=1000,\n                stop_words=[&#x27;i&#x27;, &#x27;me&#x27;, &#x27;my&#x27;, &#x27;myself&#x27;, &#x27;we&#x27;, &#x27;our&#x27;, &#x27;ours&#x27;,\n                            &#x27;ourselves&#x27;, &#x27;you&#x27;, &quot;you&#x27;re&quot;, &quot;you&#x27;ve&quot;, &quot;you&#x27;ll&quot;,\n                            &quot;you&#x27;d&quot;, &#x27;your&#x27;, &#x27;yours&#x27;, &#x27;yourself&#x27;, &#x27;yourselves&#x27;,\n                            &#x27;he&#x27;, &#x27;him&#x27;, &#x27;his&#x27;, &#x27;himself&#x27;, &#x27;she&#x27;, &quot;she&#x27;s&quot;,\n                            &#x27;her&#x27;, &#x27;hers&#x27;, &#x27;herself&#x27;, &#x27;it&#x27;, &quot;it&#x27;s&quot;, &#x27;its&#x27;,\n                            &#x27;itself&#x27;, ...])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">CountVectorizer</label><div class=\"sk-toggleable__content\"><pre>CountVectorizer(max_features=1000,\n                stop_words=[&#x27;i&#x27;, &#x27;me&#x27;, &#x27;my&#x27;, &#x27;myself&#x27;, &#x27;we&#x27;, &#x27;our&#x27;, &#x27;ours&#x27;,\n                            &#x27;ourselves&#x27;, &#x27;you&#x27;, &quot;you&#x27;re&quot;, &quot;you&#x27;ve&quot;, &quot;you&#x27;ll&quot;,\n                            &quot;you&#x27;d&quot;, &#x27;your&#x27;, &#x27;yours&#x27;, &#x27;yourself&#x27;, &#x27;yourselves&#x27;,\n                            &#x27;he&#x27;, &#x27;him&#x27;, &#x27;his&#x27;, &#x27;himself&#x27;, &#x27;she&#x27;, &quot;she&#x27;s&quot;,\n                            &#x27;her&#x27;, &#x27;hers&#x27;, &#x27;herself&#x27;, &#x27;it&#x27;, &quot;it&#x27;s&quot;, &#x27;its&#x27;,\n                            &#x27;itself&#x27;, ...])</pre></div></div></div></div></div>"},"metadata":{}}],"execution_count":70},{"cell_type":"code","source":"%%time\ninputs = vectorizer.transform(raw_df.question_text)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:34.527765Z","iopub.execute_input":"2025-05-29T06:50:34.528034Z","iopub.status.idle":"2025-05-29T06:50:49.720245Z","shell.execute_reply.started":"2025-05-29T06:50:34.528008Z","shell.execute_reply":"2025-05-29T06:50:49.719132Z"},"trusted":true},"outputs":[{"name":"stdout","text":"CPU times: user 15.1 s, sys: 51.6 ms, total: 15.2 s\nWall time: 15.2 s\n","output_type":"stream"}],"execution_count":71},{"cell_type":"code","source":"inputs.shape","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:49.721511Z","iopub.execute_input":"2025-05-29T06:50:49.721768Z","iopub.status.idle":"2025-05-29T06:50:49.728225Z","shell.execute_reply.started":"2025-05-29T06:50:49.721742Z","shell.execute_reply":"2025-05-29T06:50:49.727215Z"},"trusted":true},"outputs":[{"execution_count":72,"output_type":"execute_result","data":{"text/plain":"(1306122, 1000)"},"metadata":{}}],"execution_count":72},{"cell_type":"code","source":"test_df.head()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:49.729615Z","iopub.execute_input":"2025-05-29T06:50:49.729984Z","iopub.status.idle":"2025-05-29T06:50:49.757375Z","shell.execute_reply.started":"2025-05-29T06:50:49.729943Z","shell.execute_reply":"2025-05-29T06:50:49.75627Z"},"trusted":true},"outputs":[{"execution_count":73,"output_type":"execute_result","data":{"text/plain":"                    qid                                      question_text\n0  0000163e3ea7c7a74cd7  Why do so many women become so rude and arroga...\n1  00002bd4fb5d505b9161  When should I apply for RV college of engineer...\n2  00007756b4a147d2b0b3  What is it really like to be a nurse practitio...\n3  000086e4b7e1c7146103                             Who are entrepreneurs?\n4  0000c4c3fbe8785a3090   Is education really making good people nowadays?","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>qid</th>\n      <th>question_text</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0000163e3ea7c7a74cd7</td>\n      <td>Why do so many women become so rude and arroga...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>00002bd4fb5d505b9161</td>\n      <td>When should I apply for RV college of engineer...</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>00007756b4a147d2b0b3</td>\n      <td>What is it really like to be a nurse practitio...</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>000086e4b7e1c7146103</td>\n      <td>Who are entrepreneurs?</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0000c4c3fbe8785a3090</td>\n      <td>Is education really making good people nowadays?</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":73},{"cell_type":"code","source":"%%time\ntest_inputs = vectorizer.transform(test_df.question_text)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:49.759159Z","iopub.execute_input":"2025-05-29T06:50:49.759632Z","iopub.status.idle":"2025-05-29T06:50:53.972356Z","shell.execute_reply.started":"2025-05-29T06:50:49.759588Z","shell.execute_reply":"2025-05-29T06:50:53.971325Z"},"trusted":true},"outputs":[{"name":"stdout","text":"CPU times: user 4.2 s, sys: 1.88 ms, total: 4.2 s\nWall time: 4.2 s\n","output_type":"stream"}],"execution_count":74},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:53.973541Z","iopub.execute_input":"2025-05-29T06:50:53.973836Z","iopub.status.idle":"2025-05-29T06:50:53.978636Z","shell.execute_reply.started":"2025-05-29T06:50:53.973808Z","shell.execute_reply":"2025-05-29T06:50:53.977647Z"},"trusted":true},"outputs":[],"execution_count":75},{"cell_type":"code","source":"X_train, X_val, y_train, y_val= train_test_split(inputs,\n                                                 raw_df.target, \n                                                 test_size=0.3,\n                                                 random_state=42)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:53.979745Z","iopub.execute_input":"2025-05-29T06:50:53.980554Z","iopub.status.idle":"2025-05-29T06:50:54.184996Z","shell.execute_reply.started":"2025-05-29T06:50:53.980521Z","shell.execute_reply":"2025-05-29T06:50:54.183904Z"},"trusted":true},"outputs":[],"execution_count":76},{"cell_type":"code","source":"X_train.shape","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:54.186406Z","iopub.execute_input":"2025-05-29T06:50:54.186816Z","iopub.status.idle":"2025-05-29T06:50:54.194262Z","shell.execute_reply.started":"2025-05-29T06:50:54.186774Z","shell.execute_reply":"2025-05-29T06:50:54.193153Z"},"trusted":true},"outputs":[{"execution_count":77,"output_type":"execute_result","data":{"text/plain":"(914285, 1000)"},"metadata":{}}],"execution_count":77},{"cell_type":"code","source":"X_val.shape","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:54.195771Z","iopub.execute_input":"2025-05-29T06:50:54.196128Z","iopub.status.idle":"2025-05-29T06:50:54.209451Z","shell.execute_reply.started":"2025-05-29T06:50:54.196068Z","shell.execute_reply":"2025-05-29T06:50:54.208325Z"},"trusted":true},"outputs":[{"execution_count":78,"output_type":"execute_result","data":{"text/plain":"(391837, 1000)"},"metadata":{}}],"execution_count":78},{"cell_type":"markdown","source":"## Training the model","metadata":{}},{"cell_type":"code","source":"from xgboost import XGBClassifier","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:54.210781Z","iopub.execute_input":"2025-05-29T06:50:54.21168Z","iopub.status.idle":"2025-05-29T06:50:54.431362Z","shell.execute_reply.started":"2025-05-29T06:50:54.211645Z","shell.execute_reply":"2025-05-29T06:50:54.430319Z"},"trusted":true},"outputs":[],"execution_count":79},{"cell_type":"code","source":"%%time\nxgb_clf = XGBClassifier(\n    n_estimators=1000,      # Increase the number of trees\n    learning_rate=0.05,    # Shrinkage to help avoid overfitting\n    max_depth=6,           # Tree depth\n    subsample=0.8,         # Use 80% of the data for each tree\n    colsample_bytree=0.8,  # Use 80% of the features for each tree\n    gamma=1,               # Regularization to avoid overfitting\n    objective='binary:logistic',  # Binary classification\n    eval_metric='auc',     # AUC as evaluation metric\n    use_label_encoder=False\n)\n\nxgb_clf_model =  xgb_clf.fit(X_train , y_train)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:50:54.43267Z","iopub.execute_input":"2025-05-29T06:50:54.433065Z","iopub.status.idle":"2025-05-29T06:51:37.141227Z","shell.execute_reply.started":"2025-05-29T06:50:54.433025Z","shell.execute_reply":"2025-05-29T06:51:37.14056Z"},"trusted":true},"outputs":[{"name":"stdout","text":"CPU times: user 2min 44s, sys: 316 ms, total: 2min 45s\nWall time: 42.7 s\n","output_type":"stream"}],"execution_count":80},{"cell_type":"code","source":"xgb_clf_model.score(X_train , y_train)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:51:37.142068Z","iopub.execute_input":"2025-05-29T06:51:37.142396Z","iopub.status.idle":"2025-05-29T06:52:01.616125Z","shell.execute_reply.started":"2025-05-29T06:51:37.142364Z","shell.execute_reply":"2025-05-29T06:52:01.615047Z"},"trusted":true},"outputs":[{"execution_count":81,"output_type":"execute_result","data":{"text/plain":"0.9474616777044357"},"metadata":{}}],"execution_count":81},{"cell_type":"code","source":"from sklearn.metrics import accuracy_score\nval_preds = xgb_clf_model.predict(X_val)\naccuracy = accuracy_score(y_val , val_preds)\naccuracy","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:01.617713Z","iopub.execute_input":"2025-05-29T06:52:01.618025Z","iopub.status.idle":"2025-05-29T06:52:12.244084Z","shell.execute_reply.started":"2025-05-29T06:52:01.617995Z","shell.execute_reply":"2025-05-29T06:52:12.243165Z"},"trusted":true},"outputs":[{"execution_count":82,"output_type":"execute_result","data":{"text/plain":"0.9472306086459421"},"metadata":{}}],"execution_count":82},{"cell_type":"code","source":"from sklearn.metrics import f1_score\nf1_score(y_val, val_preds)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:12.245538Z","iopub.execute_input":"2025-05-29T06:52:12.245934Z","iopub.status.idle":"2025-05-29T06:52:12.3879Z","shell.execute_reply.started":"2025-05-29T06:52:12.24589Z","shell.execute_reply":"2025-05-29T06:52:12.386831Z"},"trusted":true},"outputs":[{"execution_count":83,"output_type":"execute_result","data":{"text/plain":"0.3709652885522193"},"metadata":{}}],"execution_count":83},{"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\ncm = confusion_matrix(y_val, val_preds)\nsns.heatmap(cm, annot=True, fmt='d', cmap='Blues')\nplt.xlabel('Predicted')\nplt.ylabel('True')\nplt.title('Confusion Matrix')\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:12.388966Z","iopub.execute_input":"2025-05-29T06:52:12.389225Z","iopub.status.idle":"2025-05-29T06:52:12.70556Z","shell.execute_reply.started":"2025-05-29T06:52:12.389199Z","shell.execute_reply":"2025-05-29T06:52:12.704539Z"},"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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V6vY7t27Y8uWLbC3t4dKpaoxxsnJCYcOHUK/fv0AALdu3UJaWhq6d+9eY3znzp2h0+mwb98+eHt7VzteVSmqrKwU97m7u0OpVCI7O/ueFZ6OHTvi22+/1dv3888/P/gmiYgMhBOFiR5h48ePR9OmTTFixAj8+OOPyMrKQkpKCv773//izz//BAC88sorePvtt7Fjxw5kZGTg5Zdfvu8zZlq3bo2AgABMmTIFO3bsENvcunUrAMDFxQUKhQLx8fEoKChASUkJrK2tMW/ePAQHB2Pjxo04f/48jh07hvfffx8bN24EAMycORNnz57F/PnzkZmZibi4OMTGxkr9FRERiZjUED3CGjZsiP3796NVq1YYOXIkOnbsiKlTp+LmzZti5Wbu3LmYMGECAgICoFarYW1tjeeff/6+7a5fvx6jR4/Gyy+/jA4dOmD69OkoLS0FADRv3hxLlizBwoUL4eDggNmzZwMA3njjDbz++uuIiopCx44dMXjwYCQkJMDV1RUA0KpVK3z11VfYsWMHunbtipiYGCxdulTCb4eISJ9CuNdsQiIiIqLHCCs1REREZBSY1BAREZFRYFJDRERERoFJDRERERkFJjVERERkFJjUEBERkVFgUkNERERGgUkNERERGQUmNURERGQUmNQQERGRUWBSQ0REREaBSQ0REREZhf8HtqOLrS/RLekAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":84},{"cell_type":"code","source":"test_preds = xgb_clf_model.predict(test_inputs)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:12.706784Z","iopub.execute_input":"2025-05-29T06:52:12.707052Z","iopub.status.idle":"2025-05-29T06:52:22.736176Z","shell.execute_reply.started":"2025-05-29T06:52:12.707024Z","shell.execute_reply":"2025-05-29T06:52:22.735449Z"},"trusted":true},"outputs":[],"execution_count":85},{"cell_type":"code","source":"sub_df.prediction = test_preds","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:22.737055Z","iopub.execute_input":"2025-05-29T06:52:22.737338Z","iopub.status.idle":"2025-05-29T06:52:22.744697Z","shell.execute_reply.started":"2025-05-29T06:52:22.737309Z","shell.execute_reply":"2025-05-29T06:52:22.743704Z"},"trusted":true},"outputs":[],"execution_count":86},{"cell_type":"code","source":"sub_df.prediction.value_counts()","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:22.745957Z","iopub.execute_input":"2025-05-29T06:52:22.746328Z","iopub.status.idle":"2025-05-29T06:52:22.763139Z","shell.execute_reply.started":"2025-05-29T06:52:22.746294Z","shell.execute_reply":"2025-05-29T06:52:22.762247Z"},"trusted":true},"outputs":[{"execution_count":87,"output_type":"execute_result","data":{"text/plain":"prediction\n0    367076\n1      8730\nName: count, dtype: int64"},"metadata":{}}],"execution_count":87},{"cell_type":"code","source":"sub_df.to_csv('submission.csv', index=None)","metadata":{"execution":{"iopub.status.busy":"2025-05-29T06:52:22.764475Z","iopub.execute_input":"2025-05-29T06:52:22.765199Z","iopub.status.idle":"2025-05-29T06:52:23.168399Z","shell.execute_reply.started":"2025-05-29T06:52:22.765153Z","shell.execute_reply":"2025-05-29T06:52:23.167579Z"},"trusted":true},"outputs":[],"execution_count":88},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}