diff --git a/机器学习竞赛实战_优胜解决方案/建筑能源利用率预测/.ipynb_checkpoints/建筑能源利用率预测-checkpoint.ipynb b/机器学习竞赛实战_优胜解决方案/建筑能源利用率预测/.ipynb_checkpoints/建筑能源利用率预测-checkpoint.ipynb index 787cab7..323ca15 100644 --- a/机器学习竞赛实战_优胜解决方案/建筑能源利用率预测/.ipynb_checkpoints/建筑能源利用率预测-checkpoint.ipynb +++ b/机器学习竞赛实战_优胜解决方案/建筑能源利用率预测/.ipynb_checkpoints/建筑能源利用率预测-checkpoint.ipynb @@ -1948,6 +1948,16 @@ "execution_count": 10, "metadata": {}, "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Energy Star Score Distribution')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, { "data": { "image/png": "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XwwGA7t27bppvzFjxvDll1/i5eVFjx49ePrpp9m+fTshISGmwNC5c2fTuLd27doRHBxsNrh//vz57N27l+7du1O7du1bDiR+7bXXOHjwIC+88AJ+fn6mc5uQkHDbx1mpUiXTWKdy5coRHBxMQEBAof0XL17MsGHD2LdvH08//TRdunTh0qVL/Oc//+GNN97IF3azs7MZOHAgf/zxB506daJt27bs37+fkSNHcuDAgduuVx5MGuMjD7W4uDjmzp1b6PImTZrQpEkTs7YDBw7w7rvvmq565OTkMGDAAPbt28fvv/9O/fr1AQgPDyc7O5uoqChTG1y7ShIdHc1nn31G3759Te1ZWVm8+OKLZgEqOzubyZMn4+zszPz583nssccA6NevH/369TO72lGpUiX8/PyIi4vj9OnTeHh4mJatWrWKUqVK3XIMRHBwMLt372bfvn3MmjWLWbNm4ebmRuPGjXnyyScJCAgw+yWYd26+//576tevbxqHcvnyZWbPnk3lypX57LPPKFmypGmdWbNmsWDBAn766SezcUQFHX9hnJycmDhxImFhYezevZvdu3fj4OBArVq18PPzo2XLljRp0gSDwWBaJzc3l/feew+j0cicOXNMA3GHDBnCwIEDWbJkCS+99BJly5blvffew9nZmVmzZlG3bl3T+lOmTDENmr6+zsJqv93PwJ0qUaIEZcuWJT09nczMTLOwl+fQoUNs3bqVTp06ma6SALRv357XXnuNb7/9lnr16tG5c2dOnjxJXFwc7du3p127dmbbyczMZOHChRYPIvbw8GD27Nk4OzsDEBMTw/jx4/nwww/573//e1vH6enpycCBA4mOjqZcuXI3HZ934sQJPvroI9zd3ZkzZw5eXl4AXLp0iTFjxrB582YWL17MSy+9ZFonIyODRo0aMXXqVJycrv36a9iwIVOnTmXZsmXUqVPntuqVB5Ou+MhDLS4ujujo6EL/2bFjR751PDw8TKEHrj1a/OSTTwKQlJQEwL59+zh06BDPPvus2S88gL59+1KqVClWrFiRb9tt2rQx+37r1q2cOXOGbt26mUIPQNmyZRkwYEC+9Z999lmMRqPZWI+kpCT27dtHmzZtTL98ClOqVCnmzp1LWFgYdevWxWAwkJqaypo1a5g4cSJdunRh8eLFN90GXAsJb7/9NmPHjjULPYDpasK5c+duefw307RpU7788ku6d+9OhQoVyM3N5cCBA3zxxReEhobSu3dv4uPjTf337dtHUlISzzzzjNnTR05OTgwfPpxBgwZhNBrZsGEDGRkZdO/e3RR64Np4mmHDhlGmTBlWrlyZ7xbbjbXf6WfgThUrVgy4Fkxu5ujRo2bn/sknn+Tbb79lzJgxFu2nYcOGt/Xk1ODBg80+dx07dqR+/frExsaSnp5u8XZuV0xMDFevXqV///6m0APXQmJYWBiOjo4sX74833o9e/Y0hR6Ap556Cvj7v215+OmKjzzUgoODb/uprqpVq+Zry5tDJe/WxR9//AFcGxdU0BUlFxcXkpKSuHjxolkw8PT0NOuXd/uhoEeKfX1987W1bduWDz74gNWrV/Pqq68C1672ALe8zZXHycmJ7t270717d9LS0oiLi+O3335j48aNnDlzhmnTpuHo6Ei3bt0K3Yazs7Pp0fZjx46RkJBAUlISR44cMYXJG28zQP7jvxUPDw/CwsJ44403OHz4MDt27GDr1q1s27aN+Ph4hgwZwueff07FihVNIaigc/n444+b5if69ttvAQq81Va6dGlq1qzJjh07OHnyJJUrVy609jv9DNypvMBT2LZq1KiBr68vu3fv5rnnnuPxxx/nySefpFWrVgV+pgtz/SPzlijoEff69evz+++/c/DgQdOYnaJ28OBBgALnnfL09KRixYocOXKEq1evmgWdG89F3n/bN44JkoeXgo/IDfL+sr7e9bdUANN4k9jYWGJjYwvd1l9//WX2i6pEiRJmy/P+Mq9QoUK+dStWrJivrWTJkrRp04YffviBw4cP4+PjQ0xMDB4eHvlu2VmifPnytG/fnvbt2xMWFsb//vc/IiMj+eSTT24afAB27drFhx9+aAoAxYsXx8fHh3r16nHy5MkC17nx+C1lMBioUaMGNWrUoEePHiQnJ/P222+zd+9evv32W0JCQsjIyAAo8DbQ9S5cuHDTfq6ursC125A3q/1OPwN34ty5c2RmZlKmTJl8Exle77///S8LFy4kJibGVNd//vMffH19GTt2rGns1s3c6qrh9UqXLl1g/7zjvfEcFqW8n2Nh58PNzY1Tp05x6dIls+Bz47xdef9tXz+eTh5uCj4idyDvf+xvvfUWzz///F1vJ+9/4tcrqA2u3e764Ycf+PHHH7ly5QrHjx+nT58++cLZjbZt28Z7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bt263TQoiv0ynDt3TkPZRe6RCxcukJmZScWKFfPdEtm+fTuhoaEMHTqUV155xWxZVlYWnTp1onnz5kyZMsWWJYuIPNAUh0XuoWPHjvHcc88xduxYs/acnBw+//xz4Npg5ht99tlnXLx4kcDAQJvUKSLysNCtLpF7qE6dOjRo0IC1a9eSkpJCw4YNuXr1KrGxsSQkJNCtWzezdyUNGjTI9MRKgwYNTDNKi4iIZXSrS+Qeu3DhAl999RU//vgjp06dwtHRkerVqxMYGGj2dBXA6NGj+fXXX2nYsCHh4eEFTnIoIiKFU/ARERERu6ExPiIiImI3FHxERETEbij4iIiIiN1Q8CliBw8evNcl2BWdb9vS+bYtnW/b0zm3rXtxvhV8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu+F0rwsQERGRh98702dzOO2iWZur4xU+jhhj0zoUfERERMTqDqddJMbnRbO2gL2f2LwO3eoSERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdcLpXOz516hTR0dHExsaSlpZGuXLlaNGiBQMHDsTV1dWsb2JiIlFRUezatYvz589TpUoVAgMDCQoKwsEhf3ZLTU01bfvs2bO4u7vTqVMnevfuTfHixW11iCIiInKfuSdXfPbv30+vXr1YsWIFZcqUoUWLFhgMBpYuXcrAgQPJyMgw9Y2Pj6dPnz6sWbOGSpUq4e/vT3JyMtOmTSM8PDzftpOTk+nbty/fffcdjzzyCC1atCAzM5PIyEhee+01rl69asMjFRERkfuJza/4XL58mXHjxnHhwgVGjRpFjx49ALh06RITJkxg3bp1REVFMWrUKIxGI+Hh4WRmZhIREUGnTp0ASE9PZ8iQIcTExNC6dWvatm1r2v7UqVNJSUlh0KBB9O/fH4CsrCzCwsLYtm0bixYtolevXrY+bBEREbkP2PyKz48//sjx48fp2LGjKfQAlChRghEjRlC+fHkSExMBiI2N5dChQzRp0sQUegDKlSvH6NGjAVi0aJGpPTExkU2bNlG5cmX69u1randxcWHs2LE4OjqyePFiax+iiIiI3KdsfsVn3bp1APTs2TPfMnd3d2JiYkzfb9myBYCAgIB8fX19fSlfvjy7d+8mMzOTUqVKsXXrVoxGIy1btsw39sfDw4PatWuzf/9+jhw5gre3d1EeloiIiDwAbB58/vzzT4oVK0bNmjVJTk4mJiaGpKQkHn30Udq2bUu9evVMfY8cOQJQaEipWrUqaWlpJCQk0KBBA1N/Hx+fAvtXq1aN/fv3c/jwYQUfERERO2TT4HP58mWSk5OpWLEiP/30E++99x7Z2dmm5Z9++ikvv/wyw4cPB+Ds2bMA+Z7yypPXnpaWBsCZM2duq7+IiIjYF5uO8cnMzAQgIyOD8PBwWrduzZIlS/jpp594//33KVOmDJ999hnfffcdcG1QMoCzs3OB2ytRogQAFy9evKP+IiIiYl9sfsUHIDs7m+bNmzNx4kTTsg4dOuDi4sLIkSOZN28egYGBpnE6BoOhwO0ZjUaz72/Vv7D1rnfw4MFbH8gtFMU2xHI637al821bOt+2p3NuHVkXswpsL+rzXbNmzZsut2nwuf5KTFBQUL7lLVu2pGLFiqSkpHD8+HFcXFyAa4+6FyQvSOVt91b989rz+hXkVifsVg4ePHjX2xDL6Xzbls63bel8257OufW4lCz4d6+tz7dNb3WVLl2aYsWKAVCpUqUC+3h4eABw7tw53NzcgL/H+tzoxjE9t9tfRERE7ItNg4+joyPVq1cH/g4hN8oLLeXKlTM9eZWQkJCvn9FoJDExEUdHRx577DHg76e/8p7uutHRo0eBwp/6EhERkYebzScwfOqpp4BrExneKDExkVOnTuHm5oaXlxf+/v4ArF+/Pl/fPXv2kJ6ejq+vL6VKlQIw9d+4cSO5ublm/U+fPk18fDyVKlXSo+wiIiJ2yubB54UXXsDFxYUffvjBbLLCjIwM3nvvPXJzc00vH/Xz88Pb25vY2FiWLl1q6puens6UKVMAzF4/kReWEhMTiYyMNLVnZWXx/vvvk5OTU+DEiSIiImIfbD6BYaVKlRg7dizjx49n/PjxfPHFF7i5ubF3717OnTtH06ZN6d27N3DtKa1x48YxZMgQJk2axPLly3F1dSUuLo6MjAwCAwNp1aqV2fbffPNNgoOD+eSTT9iwYQPVqlVjz549nDlzhqeeeopu3brZ+pBFRETkPmHz4APXHl2vVq0a8+fPJy4ujoSEBDw9PenVqxe9evXCyenvsurXr8/8+fOZO3cu27dv5/Dhw1SpUoXQ0FC6du2ab9teXl4sWLCAyMhIfv31V5KSkvD09KRHjx68+OKLZtsWERER+3LPUkCtWrWYPHmyRX29vb0t7gvX3vk1fvz4Oy1NREREHlI2H+MjIiIicq8o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu+F0L3b6ww8/EB4eXujyvn37MnjwYNP3+/fvJzo6mv3795OVlYW3tzc9evSgY8eOBa6fmJhIVFQUu3bt4vz581SpUoXAwECCgoJwcFDWExERsVf3JPj8+eefADRv3pxy5crlW16rVi3T17GxsYwYMQKj0Ujjxo1xdnbmt99+Y/z48Rw5coTQ0FCzdePj4xk0aBCZmZn4+vpSr149duzYwbRp09i3bx8TJ0607sGJiIjIfeueBJ/4+HgAxo0bR8WKFQvtl52dzYQJEwCYMWMGTZs2BSApKYmQkBAWLFhAmzZtqFu3LgBGo5Hw8HAyMzOJiIigU6dOAKSnpzNkyBBiYmJo3bo1bdu2tebhiYiI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L7dOhSIiIiJFpNDgExERwRdffEFGRgYrV66kbt26lCtXzpa1iYiIiBSpQoOPm5sbr732GgDbt29n0KBB1KlTx2aFiYiIiBS1m76rK8+yZcsAOHfuHHv37uXChQuULVuWBg0amL2wVEREROR+ZlHwAZg3bx4LFizg8uXLf6/s5MSrr77KwIEDrVKciIiISFGyKPgsXbqUuXPn0rlzZ5599lkqVKhAamoqq1atYv78+Xh4eNClSxdr1yoiIiJyVywKPl999RWBgYG89dZbprZq1arRtGlTnJycWLx4sYKPiIiI3PcsemXFiRMnaN26dYHLAgICSExMLMqaRERERKzCouDj5ubGiRMnClx24sQJSpcuXaRFiYiIiFiDRcHn6aefJioqil27dpm179q1i+joaJ5++mmrFCciIiJSlCwa4xMcHExsbCwhISG4ublRoUIFzp49S2pqKtWrVyc0NNTadYqIiIjcNYuCT+nSpVmwYAErVqxg586dZGRk4OXlRePGjencuTPOzs7WrlNERETkrlk8j0+JEiUICgoiKCjImvWIiIiIWI1FY3xEREREHgYKPiIiImI3FHxERETEblgUfPbv309ubq61axERERGxKouCz2uvvcbKlSutXYuIiIiIVVkUfIoXL86jjz5q7VpERERErMqix9lDQ0OZPn06aWlp+Pj4UKFChXx9vLy8irw4ERERkaJkUfB57733yM3NZfLkyRgMhgL7bN261eKd5uTk8PXXX7Ns2TKOHTuGs7MzdevWpUePHrRs2TJf/8TERNMrM86fP0+VKlUIDAwkKCgIB4f8F61SU1OJjo4mNjaWs2fP4u7uTqdOnejduzfFixe3uE4RERF5uFgUfN55550i3enEiRNZtWoVpUqV4oknnuDKlSvExcURGxvLoEGD6N+/v6lvfHw8gwYNIjMzE19fX+rVq8eOHTuYNm0a+/btY+LEiWbbTk5Opn///qSkpFC7dm3q1KnD7t27iYyMZPv27cyYMQMnJ4vnbRQREZGHiEUJoHPnzkW2w7Vr17Jq1SqqVavGnDlzTLfNDh8+zIABA4iKiqJDhw5UrVoVo9FIeHg4mZmZRERE0KlTJwDS09MZMmQIMTExtG7dmrZt25q2P3XqVFJSUswCVFZWFmFhYWzbto1FixbRq1evIjseEREReXBYPI9Pbm4ua9eu5d133+W1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lhsMBgUfERERue9ZFHzmz59PkyZNGDRoEK6urtauSURERMQqLAo+586d4+2336Zhw4bWrkdERETEaiwa3NywYUMOHjxo7VpERERErMqiKz59+vRh3LhxpKen06hRI0qWLJnv0fYnnnjCKgWKiIiIFBWLgs/QoUMB+Pzzz/n8889N7QaDAaPRiMFgKPCt7SIiIiL3E4uCz+zZs61dh4iIiIjVWRR8/Pz8rF2HiIiIiNVZ/K6uW3n22WfvuhgRERERa7Io+EycOLHAdoPBYPpHwUdERETudxYFn2+++SZfW2ZmJtu3b2fRokV8+OGHRV6YiIiISFGzKPhUrly5wPbatWuTm5vL9OnTmTlzZpEWJiIiIlLULJrA8GZq167N3r17i6IWEREREau66+Dz888/U6ZMmaKoRURERMSqLLrVNXDgwHxtubm5pKSkkJKSQt++fYu8MBEREZGiZlHwcXBwyPeKCkdHR2rVqkVwcDCdO3e2SnEiIiIiRcmi4DNnzhxr1yEiIiJidXc9xkdERETkQVHoFZ/BgwdbvBGDwcCsWbOKpCARERERayk0+Fy9evWWKx8+fJjMzEwcHHThSERERO5/hQafqKioQlfKzMzko48+Ys+ePVStWpXx48dbpTgRERGRomTR4Obrbd++nXfffZeUlBR69OjBkCFDKFGihDVqExERESlSFgef7OxsZsyYwbfffkulSpWYNWsWjRs3tmZtIiIiIkXKouCza9cu3n33XU6cOEG3bt0YNmwYzs7O1q5NREREpEjdNPhcvnyZWbNm8dVXX+Hu7s7HH39M06ZNbVWbiIiISJEqNPj8/vvvREREcOzYMbp27crrr7+Oi4uLLWsTERERKVKFBp/g4GCMRiOlS5cmISGB1157rdCNGAwGIiMjrVKgiIiISFEpNPj4+vrmez+XiIiIyIOs0OCj93OJiIjIw0ZTLouIiIjdUPARERERu6HgIyIiInZDwUdERETshoKPiIiI2A0FHxEREbEbCj4iIiJiNxR8RERExG4o+IiIiIjdUPARERERu6HgIyIiInZDwUdERETsRqEvKbWmnJwcvvnmG77//nuOHj1Kbm4unp6e/N///R8vv/wyJUqUMOu/f/9+oqOj2b9/P1lZWXh7e9OjRw86duxY4PYTExOJiopi165dnD9/nipVqhAYGEhQUBAODsp6IiIi9srm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\n", @@ -2017,7 +2027,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -2034,7 +2044,7 @@ "Name: Site EUI (kBtu/ft²), dtype: float64" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -2045,7 +2055,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -2064,7 +2074,7 @@ "Name: Site EUI (kBtu/ft²), dtype: float64" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -2082,7 +2092,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -2297,7 +2307,7 @@ "8068 East Williamsburg ... " ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -2334,7 +2344,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -2351,7 +2361,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -2391,7 +2401,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -2403,7 +2413,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -2450,7 +2460,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -2515,7 +2525,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -2547,7 +2557,7 @@ "# Select the categorical columns \n", "categorical_subset = data[['Borough','Largest Property Use Type']]\n", "\n", - "# ne hot encode\n", + "# one hot encode\n", "categorical_subset = pd.get_dummies(categorical_subset)\n", "\n", "# Join the two dataframes using concat\n", @@ -2562,7 +2572,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -2586,7 +2596,7 @@ "Name: score, dtype: float64" ] }, - "execution_count": 23, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -2598,7 +2608,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -2622,7 +2632,7 @@ "Name: score, dtype: float64" ] }, - "execution_count": 24, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -2648,7 +2658,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -2703,7 +2713,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -2768,6 +2778,300 @@ "plt.suptitle('Pairs Plot of Energy Data', size = 36, y = 1.02);" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 特征工程" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:13: RuntimeWarning: divide by zero encountered in log\n", + " del sys.path[0]\n", + "D:\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:13: RuntimeWarning: invalid value encountered in log\n", + " del sys.path[0]\n" + ] + }, + { + "data": { + "text/plain": [ + "(11319, 110)" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Copy the original data\n", + "features = data.copy()\n", + "\n", + "# Select the numeric columns\n", + "numeric_subset = data.select_dtypes('number')\n", + "\n", + "# Create columns with log of numeric columns\n", + "for col in numeric_subset.columns:\n", + " # Skip the Energy Star Score column\n", + " if col == 'score':\n", + " next\n", + " else:\n", + " numeric_subset['log_' + col] = np.log(numeric_subset[col])\n", + " \n", + "# Select the categorial columns\n", + "categorical_subset = data[['Borough', 'Largest Property Use Type']]\n", + "\n", + "# One hot encode\n", + "categorical_subset = pd.get_dummies(categorical_subset)\n", + "\n", + "# Join the two dataframes using concat\n", + "# Make sure to use axis = 1 to perform a column bind\n", + "features = pd.concat([numeric_subset, categorical_subset], axis = 1)\n", + "\n", + "features.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 共线" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzkAAAKVCAYAAADsuyU4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXhM9/4H8PcsmRFJBEFKCWIJ1ZSKahVFaBvFD11Qxb2WUvTW7b5d6rpd6ZYuSCxVVNtUS9uo3GqDkkoQQkgiIaolBNGEyDrL74/cczrLOTNnkkkymbxfz3OfPmbOnDkTE3fe8/l8P19VYWGhGURERERERF5CXd8XQERERERE5E4MOURERERE5FUYcoiIiIiIyKsw5BARERERkVdhyCEiIiIiIq/CkENERERERF6FIYeIiIiIiLyKtr4vgIhq17///W9s27YNS5cuxdChQ+3uf/zxx7F//3507twZX375pd39hw4dwmOPPYYRI0bg9ddfr9VrLS8vR1xcHKZOnSreFhsbi9WrV+ONN97A8OHDa/X5nYmPj8eSJUvQvn17bNq0CU2aNJE87pFHHkFOTg72799fx1dYfampqZg7d66iYzdu3Iju3bsDAB577DEcOnQIW7duRbt27Ryee9SoUXjllVfE28eOHYvz58973M/p6NGjiIuLQ1paGv788080bdoUoaGhGDFiBMaPHw+t9q//68zLy8O4ceMwcOBAvPfee+Ltv//+O06cOIG7777brdcm/Lydueuuu/D2228DkP/5y53b8u9SeM/PmjULs2fPrtY19+/fX/J2jUYDPz8/hISE4N5778WDDz4IjUZTreeoDoPBgK+++gpbt25FXl4eWrRogbvvvhuPPvqo7O+2rfPnzyMmJgbJyckoKSlBp06d8OCDD2LMmDFQqVRWx5aVlWHt2rXYsWMHLl26hODgYNxzzz2YMmUK/Pz87M595swZxMbG4uDBgygrK0NISAgmTpyIUaNG2Z378OHDWL16NY4fPw6j0YjOnTtj8uTJiIqKqv4PiKiBY8gh8nL9+vXDtm3bkJ6ebhdyysrKcOTIEajVapw+fRr5+fkIDg62OiYtLQ0AcNttt9X6tT722GPIzc21Cjme6OzZs4iNjcUTTzxR35fidt26dcOQIUMcHtOyZcs6upq698UXX+C9995D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JqKiomAymay+0c3MzMSOHTtwxx134IEHHsDu3bvx1Vdf4dq1azhw4ADat2+P8ePHIy0tDQkJCSguLsa7776r6HV5mh49eqBz585ISkpCSUkJmjZtKt537tw5HD9+HMOGDUNAQAB+++03zJ8/HyqVSlzHkJGRgc8//xyHDx/GunXrHK6zEN7nX375JYqKijBq1Cjceuut8PHxEY8ZNGiQw+uNiIjA+fPnsW3bNtx000248847xSEN2dnZmDdvHkpKSjB06FC0a9cOx44dw6pVq7B//34sX77c6rkaC6PRiOTkZACwCx222rZti1mzZjk9Z9u2bWXvMxgMOHv2LHr06GG3gB8A2rVrh+PHjyMvL89qrZUlIejKhbLi4mKYzWZcuHABXbt2hU6nkz322rVrAP4KTkLI7tChA1atWoVt27bh8uXLCAkJwZQpU6y+rFGpVHjggQewceNG/Oc//8G8efPQtGlTfP/999i5cyd69+7tdS21REox5BA1AsI3mkePHhVDzf79+2E2m8W1NrfddhvWrVuH5ORkq5CjUqnEdT0AsHz5cuTk5ODpp58WzwUABw4cwOOPP44333wTH374IQDg66+/xrlz5/D888/jgQceEI+dO3cu7r//fuzYsQP/+te/xH79bdu2wWg0Svbuq9VqbNq0SawUPfjgg5g8eTK+/fZb8fiLFy9i6dKlaN++PVatWiV+gzlv3jw89dRT2LBhA+666y707t1bPO+VK1dkJ8850rZtW8ydOxfvvvsuXnvtNcTGxkp+YAKqPoy///77CA4OxsqVK8UQWF5ejhdeeAFJSUmIi4vDww8/LD6msLAQTz75pNVtgtzcXMyfPx9/+9vfAFStzxg3bhwSEhIwZswYLFy4EEDVh7kJEyZg79694jfKzmRnZyM2Nlb2/u7du7v8s6qp++67Dx9//DF++eUXq2lRQguQcNvWrVtRXFyMjz/+2GoN2csvv4wdO3bg6NGj6NOnj+zzdO3aFf/4xz/w0UcfYfv27di+fTv0ej1uvvlm9OvXD0OHDkWXLl0cXqvwu7Zt2zb06tXL6r28ePFilJWVYdWqVejVq5d4u1D92bhxo13rk5wvvvjC4d/nww8/jICAAEXnqi/l5eX4448/8Mknn+DkyZPo06eP1b81Utq1a1fjNWPXr18HANmfj/BzLS4ulj1H586d0aRJExw8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Iz4+Hl988QVatmxp9Y27rWnTpqG8vBxffvml5P233HILHn74YXz88cf4/fffXQo5wnvgxRdftPtyobYJVSxn+1BdvHgROp2uzt6HEyZMQGZmJrZt24YXX3wRMTExVsM3pERERGD//v01el4fHx+0bdtW9t+fvLw86PV62UqqrZtuuslucX9mZiaaNWtmF9zatm2LBx980Oq2jIwMABDXe4WEhCAjI0MylAq3CVUf4XdLavBJSEgItFotLly4oOh1EHkb7pND1Eg0b94cXbp0QVZWFo4cOQI/Pz+7tQFhYWEIDAzEqVOnkJ6ejl69ell9q9ypUyfodDqcOHECJpPJ7jk2b96M1atX4/LlywCA7du3IzAwEEuXLkX//v3FD8RGoxF//PEHgL/60N1BaHkRWoMsXbhwAe+99x5+/vlntz2fwMfHBy+//DLUajXeffddu2qR8O1rWlqa3WMvX76MP/74A6GhoW6/rrogTKM7fPiw7DHCfUon10nx9/fH4MGDkZqaisOHD+P333/Hvffea9WK9d1332HZsmUwm81iFWbevHmIjo4GIP3zt6TRaHD69GkcP35c9hjh/eqo6iDVHubovWkymfDhhx/is88+c+vvgyA4OBht2rRBVlaWWFG1de7cOVy6dElyJHJtevrppxEcHIyjR4/is88+q7Pn7d27NwoLC+3GhRcXF+PEiRPo2bOn06rfo48+ismTJ9vdnpGRgfPnz+OOO+4Qb/vggw8QGRkphhJBWVkZkpKS0KZNG3HNnBDcDx48aHdu4f0jTKETqj+///673bHnz5+HwWCwqiYRNSYMOUSNSL9+/ZCVlYX09HT07dvX7v/EhUlqx48fR25urtWEKqCqFeqee+7BmTNnsGHDBqv7jh07hvfeew+bN28Wd+Ju0qQJKisrrT70m81mREdHo6ioCIB1C41Wq4XBYKj2B72RI0dCo9EgJiYGly5dEm83mUx499138fnnn9t9yHCX8PBwPPTQQygsLLT75jQqKgoajQaffvqpGO6Aqvagt956C0aj0enu6p5KGIe9YcMGyU0HU1NTsWPHDoSEhFhVBatj5MiRqKysxDvvvCP+2dLx48fx1Vdf4aeffrK6/fz58wAguV7KkjDMYdGiRZJ75Zw5cwZxcXFo06YNBgwYIHse4ffKch1U79690b59e3z//fd2gfCLL77Ahg0b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Ea1i4d4MKOS8+uqrWrp0qWpqanweD1XIOe+881RYWKiSkhKfHdgar8E577zzJH2/lqel8wEALTNbC2WzvR8AQFMBhZx169bp0ksv1X/+53/qggsuaHE6WLBkZGTI6XTq6NGjGjFiRINjHo9Hx44dk81mU+/evevOl+S3RfTHH38syX/3NQAwK2e+q80L6lOT7aYKBrSEBgDzCyjkfP7551q0aJHf/WxCJSsrS5s2bdIbb7yh6667rsGx/fv36+uvv9bw4cPVsWPHuvMl6a233tJdd93VoD31l19+qcLCQp1//vm0jwYQUxq3Rq7d1+aQJDUIOo2D0NC+qdpbVGLogGOzSu56kxBoCQ0AsSGgzUB79OihM2fCvzBz+PDhysjI0K5du7R58+a6x7/++mv97ne/kyTdfPPNDerMysrSsWPHlJ2dXfd4eXm5HnnkEbndbt10003hewMAEAVycosb7P0iSZVVNcrJrR31dua7NO/xt/TsSwfqAk1JaYVe233c0AHHHm/RHT8d2O5NUAEAxhPQSM5tt92m1atXq2/fvmGd6mW1WvXggw9q4cKFevTRR7V161Z17dpV77//vs6cOaNp06Y12Yj0vvvu089//nOtX79eb775pi666CLt379fJ0+e1OWXX67/+I//CFv9ABAN/AWVktIKnxtgmkX1d80SVizKinAlAIBw8xtypk6d2mDtzcmTJ3XzzTcrKSmpSXcyi8WirVu3hqTASy65ROvWrdPq1au1e/duHTlyRD179tSdd96pn/70p03O79Gjh55//nllZ2frnXfe0Weffab09HTdcMMN+tnPfqa4uIAbygGAKfhbU2O1SM++dCACFYWHu6Z2FIuRGwCIPX5/4h85cmTYGgysWrWq2eMZGRlavnx5wNdLS0vTQw891N6yAMAUZkzM8DlaY5Z9bzL7OLT7cLnPY0aebgcAaDu/IWfJkiUBX6S6ujooxQAAgs87kuFtKmC1mCfgdHTYdM3ILjr61UmfgYZOagAQmwJqPDBt2jQdOnTI57F9+/ZpypQpQS0KABBcYwanacWiLP33Q+NNE3AkafbkfpJqR6sS4ht+pdFJDQBil9+RnA0bNujcuXOSpC+++EIvvvii0tKazmv+8MMP/W4SCgCILF/743R02FRW7o50ae02KTNdYwanqajoTJPRqtbuBQQAMBe/Iaempkbr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aEbIibC8vDxJ0rhx45ocGz9+vCTpnXfeCWdJiDGff/65vvnmm4BGX5q7X6+44grZbLa6c4BArVq1Sq+88ooGDhyodevWqVevXj7Pa+7+GzJkiLp06aJ9+/aprKxMkrRz5055PB5dccUVTeaQd+/eXf3799cXX3yh4uLi4L4hmEag96ZU+8uiDh066MILL2zxutybaI+UlBT16tVLl1xySZNj3vvv5MmTklr/vd3az9loxnS1CPJ4PDp69KisVqt69+7d5PiFF14oq9Wq4uJieTweWSyWCFQJs/NOVevSpYsef/xx5eXl6cSJE+revbumTJnSYAGj9wu3/qijV1JSkrp27SqXy6WSkhKlpqaG703A0Hr16qUlS5ZoypQpzS5o9d5/GRkZPo9feOGFOnXqlI4ePapLL7202ftVql0jUVBQoCNHjvi9JmJboPdmaWmpvvzySw0YMEAvvPCCtm/frk8//VSdOnXSFVdcodtvv13nnXde3fncm2iPJ5980u+xgoICSaob4Wnt93ZrP2ejGSM5EXTmzBlVVlYqOTlZ8fHxTY7HxcUpJSVF586dM0RihjF5p1j8/e9/16uvvqqMjAxdcsklOnHihLKzs+vm9EpSSUmJJKlr164+r+V9/NSpU2GoHGZxyy236JprrmmxY09r7z/vbzK5X9FWgd6b3s/RgwcP6plnnlGXLl3qGglt3rxZs2fP1rFjx+rO595EKHg8Hq1evVqSNGHCBEmt/9w00/c8IzkR5P3B0dv9whfvb9DLy8uVlJQUlroQW7xfzldddZUefPBBORwOSdLx48d17733av/+/Vq1apXuvvtulZeXS1KT1pRe9e9XINi895W/z0zv/eddHN7a84G28o6IZ2Rk6Pe//7169OghqfYefOSRR/SPf/xDDz74oDZu3Fj3uMS9ieB65pln9P7776tLly6aNWuWJLX6e9tM9yYhJ4ICmX7m8Xga/C8QbMuXL9fnn3+unj17NhhRTE9P15IlSzRr1ixt3rxZd911l6xWa7NTJ7lfEUre36a3dP8Fer6/5wGtdeONN2rChAnq2LGjUlJS6h73NhLYu3evDh48qPz8fA0ePJh7E0GXnZ2tDRs2KCEhQY8++mjddhCt/d5u7edsNGO6WgR16NBBklRRUeH3nMrKSkmq++06EGx2u10ZGRk+p0z269dP3bp107fffqtjx47J4XDI4/H4vWe5XxFK3vuqpfvP+xvIls73Ps79ivay2Wzq0aNHg4DjlZiYqBEj/n979x9TdfXHcfzJj9stiAKiMSUjwLJZAV2TTZatrD9UKC6pkRg4ihbOJBc1XWsr+mWy2rKck9t1OSjaghVttLn5YyUJQ7gkzDKZqZQuQbxemTD5eb9/uHv3JS7glZ/dXo+NTT/v87mfc91758PbzznnswC4Op0NlJsycfr7+9myZQu7du3CaDRSVFSEyWRyx729b3s7zs5kKnKmUXBwMEFBQVy6dIn+/v5h8f7+fhwOB0ajkZCQkGnooQjuDQR6enrcc3Fdc3b/yTXPXJsOyGRwLdweK/9ceepte5HJ4hoTXdPUlZsyEbq7uykoKOC7774jJCSEbdu2kZycPKSNt/dtX8pNFTnTyM/Pj5iYGAYGBvjzzz+HxVtbWxkcHBxx9xWR8erq6uKDDz5g8+bNHgttuLo2B64OfK5cPHXq1LB2ly9fpqOjg7CwMBU5Milcu/14yj+n00lraysBAQHu3Spd7Ufahvf06dPAyDtciVyrzz//nM2bN3PixAmPcdc46trxSrkp49XZ2UleXh61tbVERkZisViGPMFx8fa+7e04O5OpyJlmixYtAuCnn34aFnMd+2dVLjJRgoKC+PHHHzlw4ACNjY3D4rW1tTgcDubOncvtt98+ar7+/PPPDAwMKF9l0oyWf83NzVy8eJGEhASCg4OHtK+urmZwcHBI+3PnztHS0sKsWbO0Ra+M24kTJzhw4AD79u0bFrPb7dTV1REYGOietqbclPHo6+tj48aN/P7778TExGC1WkcsiL29b3s7zs5kKnKmWWpqKkajkZKSEo4dO+Y+/ttvv1FaWorRaGTlypXT2EPxZX5+fpjNZgA+/vhjzp8/746dOXOGrVu3ArjfyP3YY48RHh5OVVUVhw4dcrc9e/Ys27dvx8/Pj8zMzCn8BvJfYjKZiI2Npa6ujsrKSvfxixcvunN1zZo17uNRUVEsWrSI1tZWiouL3cddO14NDAwoX2VCpKenA/DVV1/R1NTkPt7d3c27775LV1cXaWlp7ik+yk0Zj+LiYo4ePUpkZCQ7d+4kMjJyxLbe3re9HWdnMj+Hw/Hv2SbBR1VUVFBUVERgYCALFy7E6XTS0NDAwMAAb7/9NsuWLZvuLooPu3LlChs2bKCpqYmgoCASEhIAsNls9Pb2kpmZycaNG93tDx48yKZNmxgcHMRkMhEUFER9fT1Xrlxh3bp17oJI5Hrl5eXR2NiIxWIhMTFxSOzXX39l/fr1dHd3c//99xMREUFjYyOdnZ2YzWbeeOONIe3Pnj1Lbm4uFy5cIC4ujujoaJqbm+no6CA5OZmPPvqIwEBtNCrXZrTc/OSTTygrK8Pf35/4+HhCQ0M5cuQIDoeDxMREPv300yGLtZWbcj0uXbpEamoqPT093Hvvvdx1110jtn3nnXcA7+/b3o6zM5WKnBmiurqa0tJSjh8/jsFg4O677yYnJ4ekpKTp7pr8B/T19VFWVsaePXv466+/MBgMzJs3j4yMDPcLxf5fc3MzVquVo0eP4nQ6iYmJITMzkyeeeGIaei++ZrRfJOHqOgaLxUJDQwN9fX3MmTOHp59+mrS0NAICAoa1b2tro7i4mJqaGrq6upg9ezbLly/n2WefHfHdESKejJWb+/bt45tvvqGlpYWBgQHmzJnDsmXLWL16tceCRbkp3qqtreWVV165praHDx92/9nb+7a34+xMpCJHRERERER8itbkiIiIiIiIT1GRIyIiIiIiPkVFjoiIiIiI+BQVOSIiIiIi4lNU5IiIiIiIiE9RkSMiIiIiIj5FRY6IiPwrOJ1644GIiFwbvUpXRESmzMmTJ/niiy+w2Ww4HA5uueUWEhISWLNmDfHx8e52hYWF1NfXU1VVBUBTUxNWq5XPPvts3H0Y6yXLKSkpvPXWWwCkpaWRkJDgfnO4p8/Kyclh3bp1AFgsFqxWKzU1NXpbvYjINNIILCIiU+KPP/4gNzeXe+65h/z8fMLDw7Hb7Xz77be89NJLFBUVsXjxYgBycnJYtWqV+9zKykpOnTo1YX1Zvnw5ZrPZYyw8PHzCriMiItNDRY6IiEyJsrIygoOD2b59OwaDwX388ccfJysrix07driLnDvvvHNS+xIZGUliYuKkXkNERKaP1uSIiMiUsNvtwPC1NQaDgfz8/CFPVgoLC0lNTQUgLy+PH374gfb2dpKSkrDZbAB0dnby4YcfsnTpUh5++GGys7M5dOjQFH0bERGZyVTkiIjIlHjkkUdob2/nhRdeoKKigtOnT7tjycnJZGRkeDzvtddeIzk5mbCwMCwWC/PmzaO3t5f169ezf/9+nn/+ebZs2UJUVBQFBQVUV1eP2Ren00l/f7/HHxER+ffTdDUREZkS6enpXLhwgZKSEoqKigAIDQ1l4cKFpKen89BDD3k8b+7cuYSFhWEwGNxTzCorKzl+/Dg7d+7EZDIBsHjxYjZs2MC2bdvc095Gsnv3bnbv3u0x9vXXXxMXF3ed31JERGYCFTkiIjJlcnNzWb16NXV1dTQ0NGCz2di7dy979+7lueeeIz8//5o+p6GhgdDQUOLj44c8fXn00UfZunUrf//9N7NmzRrx/CeffJIVK1Z4jN1xxx1efSc/Pz+v2ouIyORTkSMiIlMqODiYJUuWsGTJEgBaW1t57733+PLLL0lJSbmmpygOhwOHw0FycrLH+Pnz50ctciIiIpg/f/6Y17nxxhvp7e31GHMdv+mmm8b8HBERmVoqckREZNK1tbWRnZ3Niy++yMqVK4fEoqOjefXVV1m7di0nT568piLn5ptvJioqivfff99jPDo6ekL6HRERQUdHh8dYW1sbALfddtuEXEtERCaONh4QEZFJFxERgdFopLy8nO7u7mFx1ztwRipw/P2H3q4WLFhAe3s7t956K/Pnz3f//PLLL1it1mHtr5fJZOLYsWOcOXNmWGz//v34+/vz4IMPTsi1RERk4uhJjoiITLqAgAA2bdrE66+/TlZWFqtWrSI2Npa+vj5sNhvl5eWsWLGC2NhYj+eHhITgcDiorq7mgQceIDU1lYqKCl5++WXWrl3L7NmzsdlslJSUkJKSMuYUsra2No4cOeIxZjAYuO+++wB45pln+P7778nLyyMrK4vY2Fh6eno4fPgw5eXlZGRkEBUVNb5/HBERmXB+DofDOXYzERGR8WtpaaG0tJSmpibsdjuBgYHExcVhNptJTU11L+IvLCykvr6eqqoq4Oq6nYKCAs6dO8ebb77J0qVLcTgc7Nixg4MHD3L58mUiIyNJSUkhOzubwMCR/w8vKSlp1D6Gh4ezZ88e99/tdju7du2ipqaGjo4ObrjhBqKjozGbzTz11FNDzrVYLFitVmpqakbtg4iITC4VOSIiIiIi4lO0JkdERERERHyKihwREREREfEpKnJERERERMSnqMgRERERERGfoiJHRERERER8ioocERERERHxKSpyRERERETEp6jIERERERERn6IiR0REREREfMr/AMjya8LmA0SrAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_data = data[['Weather Normalized Site EUI (kBtu/ft²)','Site EUI (kBtu/ft²)']].dropna()\n", + "\n", + "plt.plot(plot_data['Site EUI (kBtu/ft²)'],plot_data['Weather Normalized Site EUI (kBtu/ft²)'],'bo')\n", + "\n", + "plt.xlabel('Site EUI'); \n", + "plt.ylabel('Weather Norm EUI')\n", + "plt.title('Weather Norm EUI vs Site EUI, R = %0.4f' % np.corrcoef(data[['Weather Normalized Site EUI (kBtu/ft²)',\n", + " 'Site EUI (kBtu/ft²)']].dropna(), rowvar=False)[0][1]);" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "def remove_collinear_features(x, threshold):\n", + " '''\n", + " Objective:\n", + " 删除数据帧中相关系数大于阈值的共线特征。 删除共线特征可以帮助模型泛化并提高模型的可解释性。\n", + " \n", + " Inputs: \n", + " 阈值:删除任何相关性大于此值的特征\n", + " \n", + " Output: \n", + " 仅包含非高共线特征的数据帧\n", + " '''\n", + " \n", + " # 不要删除能源之星得分之间的相关性\n", + " y = x['score']\n", + " x = x.drop(columns = ['score'])\n", + " \n", + " # 计算相关性矩阵\n", + " corr_matrix = x.corr()\n", + " iters = range(len(corr_matrix.columns) - 1)\n", + " drop_cols = []\n", + "\n", + " # 迭代相关性矩阵并比较相关性\n", + " for i in iters:\n", + " for j in range(i):\n", + " item = corr_matrix.iloc[j:(j+1), (i+1):(i+2)]\n", + " col = item.columns\n", + " row = item.index\n", + " val = abs(item.values)\n", + " \n", + " # 如果相关性超过阈值\n", + " if val >= threshold:\n", + " # 打印有相关性的特征和相关值\n", + " # print(col.values[0], \"|\", row.values[0], \"|\", round(val[0][0], 2))\n", + " drop_cols.append(col.values[0])\n", + "\n", + " # 删除每对相关列中的一个\n", + " drops = set(drop_cols)\n", + " x = x.drop(columns = drops)\n", + " x = x.drop(columns = ['Weather Normalized Site EUI (kBtu/ft²)', \n", + " 'Water Use (All Water Sources) (kgal)',\n", + " 'log_Water Use (All Water Sources) (kgal)',\n", + " 'Largest Property Use Type - Gross Floor Area (ft²)'])\n", + " \n", + " # 将得分添加回数据\n", + " x['score'] = y\n", + " \n", + " return x" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:31: RuntimeWarning: invalid value encountered in greater_equal\n" + ] + } + ], + "source": [ + "# 删除大于指定相关系数的共线特征\n", + "features = remove_collinear_features(features, 0.6);" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(11319, 65)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 删除所有 na 值的列\n", + "features = features.dropna(axis=1, how = 'all')\n", + "features.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 数据集划分" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1858, 65)\n", + "(9461, 65)\n" + ] + } + ], + "source": [ + "# 提取没有得分的建筑物和带有得分的建筑物\n", + "no_score = features[features['score'].isna()]\n", + "score = features[features['score'].notnull()]\n", + "\n", + "print(no_score.shape)\n", + "print(score.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(6622, 64)\n", + "(2839, 64)\n", + "(6622, 1)\n", + "(2839, 1)\n" + ] + } + ], + "source": [ + "# 将特征和目标分离开\n", + "features = score.drop(columns = 'score')\n", + "targets = pd.DataFrame(score['score'])\n", + "\n", + "# 用 nan 替换 inf and -inf (required for later imputation)\n", + "features = features.replace({np.inf: np.nan, -np.inf: np.nan})\n", + "\n", + "# 按照 7:3 的比例划分训练集和测试集\n", + "\n", + "X, X_test, y, y_test = train_test_split(features, targets, test_size = 0.3, random_state = 42)\n", + "\n", + "print(X.shape)\n", + "print(X_test.shape)\n", + "print(y.shape)\n", + "print(y_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 建立一个Baseline\n", + "\n", + "### 衡量标准:平均绝对误差 - Mean Absolute Error(MAE)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "def mae(y_true, y_pred):\n", + " return np.mean(abs(y_true - y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The baseline guess is a score of 66.00\n", + "Baseline Performance on the test set: MAE = 24.5164\n" + ] + } + ], + "source": [ + "baseline_guess = np.median(y)\n", + "\n", + "print('The baseline guess is a score of %0.2f' % baseline_guess)\n", + "print(\"Baseline Performance on the test set: MAE = %0.4f\" % mae(y_test, baseline_guess))" + ] + }, { "cell_type": "code", "execution_count": null,