{"id":3130,"date":"2019-03-15T20:42:00","date_gmt":"2019-03-15T12:42:00","guid":{"rendered":"https:\/\/shanlin.info\/?p=3130"},"modified":"2021-04-25T20:44:00","modified_gmt":"2021-04-25T12:44:00","slug":"%e4%bd%bf%e7%94%a8sklearn%e7%9a%84%e5%9b%9e%e5%bd%92%e6%a8%a1%e5%9e%8b%e8%bf%9b%e8%a1%8c%e4%ba%8c%e6%89%8b%e6%88%bf%e4%bc%b0%e5%80%bc%e5%b7%a5%e7%a8%8b%e5%8c%96%e8%bf%87%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/shanlin.info\/?p=3130","title":{"rendered":"\u4f7f\u7528sklearn\u7684\u56de\u5f52\u6a21\u578b\u8fdb\u884c\u4e8c\u624b\u623f\u4f30\u503c(\u5de5\u7a0b\u5316\u8fc7\u7a0b)"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote\"><p><strong>\u672c\u6587\u4e3b\u8981\u5185\u5bb9<\/strong><\/p><\/blockquote>\n\n\n\n<p><em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u80cc\u666f\u90e8\u5206\uff1a\u6570\u636e\u80cc\u666f\u548c\u9700\u6c42\n\u7b2c\u4e00\u90e8\u5206\uff1a\u5efa\u6a21\u8fc7\u7a0b\u548c\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\n\u7b2c\u4e8c\u90e8\u5206\uff1a\u6570\u636e\u9884\u5904\u7406\uff0c\u89e3\u51b3\u8bad\u7ec3\u548c\u63d0\u4ea4\u4f30\u503c\u6570\u636e\u7684\u9884\u5904\u7406\n\u7b2c\u4e09\u90e8\u5206\uff1a\u6a21\u578b\u8bad\u7ec3\u548c\u6301\u4e45\u5316\n\u7b2c\u56db\u90e8\u5206\uff1a\u4f7f\u7528\u8bad\u7ec3\u597d\u7684\u6a21\u578b\u8fdb\u884c\u4f30\u503c\n\u7b2c\u4e94\u90e8\u5206\uff1a\u63d0\u4f9b\u6570\u636e\u63a5\u53e3\uff08\u6b64\u90e8\u5206\u5f85\u5b8c\u5584\uff09\n<\/code><\/pre>\n\n\n\n<p>\u5f00\u7bc7\u4e4b\u524d\uff0c\u8fd9\u91cc\u6709\u4e00\u7bc7\u4ece\u5165\u95e8\u5230\u7cbe\u901a\u505a\u4e8c\u624b\u623f\u4f30\u503c\u6a21\u578b\u7684\u6587\u7ae0\uff1a<a href=\"https:\/\/blog.csdn.net\/weixin_43111448\/article\/details\/83507527\" target=\"_blank\" rel=\"noreferrer noopener\">\u7528\u673a\u5668\u5b66\u4e60\u81ea\u5236\u4e8c\u624b\u623f\u4f30\u4ef7\u6a21\u578b<\/a>\u3002\u53ef\u4ee5\u4e86\u89e3\u4e00\u4e0b\u6570\u636e\u83b7\u53d6\u7684\u65b9\u5f0f\uff0c\u7ebf\u6027\u56de\u5f52\u7684\u57fa\u672c\u6982\u5ff5\u7b49\u3002<br>\u8fd9\u7bc7\u6587\u7ae0\u6d41\u7a0b\u867d\u5b8c\u6574\uff0c\u4f46\u5b9e\u9645\u4e0a\u8fd8\u662f\u6ca1\u6709\u5b8c\u6210\u5de5\u7a0b\u5316\uff08\u8bad\u7ec3\u6570\u636e\u548c\u9884\u6d4b\u6570\u636e\u540c\u65f6\u9884\u5904\u7406\uff0c\u6ca1\u6709\u8003\u8651\u65b0\u6570\u636e\u4f20\u6765\u7684\u60c5\u51b5\uff09\uff0c\u672c\u6587\u5c06\u5b8c\u5584\u6b64\u8fc7\u7a0b\u3002<br>\u8fd9\u91cc\u722c\u866b\u90e8\u5206\u5c31\u4e0d\u518d\u4ecb\u7ecd\uff0c\u540c\u65f6\u4e3a\u4e86\u65b9\u4fbf\uff0c\u4e5f\u4e0d\u518d\u722c\u53d6\u5730\u7406\u4f4d\u7f6e\u5bf9\u5e94\u7684\u5730\u94c1\u7ad9\u3001\u5b66\u6821\u3001\u533b\u9662\u6570\u91cf\u7b49\u3002\u63d0\u53d6\u4e86\u90e8\u5206\u7528\u4e8e\u5efa\u6a21\u7684\u5b57\u6bb5\u5982\u4e0b\uff08\u4e0d\u8981\u5728\u610f\u5b57\u6bb5\u547d\u540d\uff09\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upload-images.jianshu.io\/upload_images\/434653-9c09d6029dd0e8e3.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/1200\/format\/webp\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u4e8c\u624b\u623f\u6570\u636e<\/p>\n\n\n\n<p>\u6587\u6863\u94fe\u63a5\uff1a[\u91cd\u5e86\u4e8c\u624b\u623f\u6570\u636e](<a href=\"https:\/\/pan.baidu.com\/s\/1gHPyoJhYSFxb3dcspiz0aQ\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/pan.baidu.com\/s\/1gHPyoJhYSFxb3dcspiz0aQ<\/a>&nbsp;\u63d0\u53d6\u7801: 5ib9 )<br>\u6587\u6863\u4e2d\u6709list_price(\u6302\u724c\u4ef7)\u3001city(\u57ce\u5e02)\u3001building(\u5c0f\u533a)\u7b49\u6570\u636e\uff0c\u6682\u4e0d\u7eb3\u5165\u6a21\u578b\u7684\u53d8\u91cf\uff08\u6302\u724c\u4ef7\u5bf9\u4e8e\u65b0\u6570\u636e\u5176\u5b9e\u662f\u4e0d\u5b58\u5728\u7684\uff1bcity\u76ee\u524d\u53ea\u6709\u91cd\u5e86\uff1bbuilding\u592a\u591a\uff0c\u9700\u8981\u7528\u5230\u5361\u65b9\u5206\u7bb1\u7684\u65b9\u6cd5\u5904\u7406\uff0c\u6682\u65f6\u5220\u9664\uff09\uff0c\u56e0\u6b64\u76f4\u63a5\u5220\u9664\u3002\u5176\u4f59\u5b57\u6bb5\u89e3\u91ca\u5982\u4e0b\uff1a<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deal_price\uff1a\u6210\u4ea4\u4ef7\uff08\u4e07\u5143\uff09\ndeal_date\uff1a\u6210\u4ea4\u65e5\u671f\ndistrict\uff1a\u533a\nsub_district\uff1a\u533a\u5757\nroom_type\uff1a\u623f\u5c4b\u7c7b\u578b\uff08\u9ad8\u5c42\u3001\u522b\u5885\u3001\u6d0b\u623f\u3001\u8f66\u4f4d\uff09\nhouse_rooms\uff1a\u51e0\u5ba4\nhouse_halls\uff1a\u51e0\u5385\nhouse_kitchen\uff1a\u51e0\u53a8\nhouse_toilets\uff1a\u51e0\u536b\nsize\uff1a\u5efa\u7b51\u9762\u79ef\u33a1\nhouse_stru\uff1a\u5ba4\u5185\u7ed3\u6784\uff08\u8dc3\u5c42\u3001\u5e73\u5c42\u7b49\uff09\nbuild_year\uff1a\u5efa\u7b51\u5e74\u4efd\nfixture\uff1a\u88c5\u4fee\u60c5\u51b5\nbuild_stru\uff1a\u5efa\u7b51\u7ed3\u6784\nlift_family\uff1a\u68af\u6237\u6bd4\nproperty_year\uff1a\u4ea7\u6743\u5e74\u9650\nlift\uff1a\u662f\u5426\u6709\u7535\u68af\nhouse_type\uff1a\u4ea7\u6743\u5c5e\u6027(\u5546\u54c1\u623f\u3001\u7ecf\u6d4e\u9002\u7528\u623f\u7b49)\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>\u7b2c\u4e00\u90e8\u5206\uff1a\u5efa\u6a21\u8fc7\u7a0b\u548c\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898<\/strong><\/p><\/blockquote>\n\n\n\n<p><strong>1.1 \u6570\u636e\u9884\u5904\u7406<\/strong>\uff1a\u5c06\u6570\u636e\u5904\u7406\u6210\u9002\u5408\u5efa\u6a21\u7684\u6570\u636e<\/p>\n\n\n\n<ul><li>\u53d8\u91cf\u7b5b\u9009<\/li><li>\u7f3a\u5931\u503c\u586b\u5145<\/li><li>\u865a\u62df\u53d8\u91cf\u6784\u5efa<\/li><li>\u5f02\u5e38\u503c\u5904\u7406<\/li><li><strong>\u76f8\u5173\u6027\u548c\u591a\u91cd\u5171\u7ebf\u6027\u68c0\u67e5<\/strong><\/li><li><strong>\u9644\uff1a\u9700\u8981\u8003\u8651\u5982\u4f55\u5bf9\u9700\u8981\u9884\u6d4b\u6570\u636e\u7684\u9884\u5904\u7406<\/strong><\/li><\/ul>\n\n\n\n<p><strong>1.2 \u6a21\u578b\u8bad\u7ec3\u3001\u8c03\u53c2\u548c\u53ef\u89c6\u5316<\/strong>\uff1a\u9009\u5b9a\u5efa\u6a21\u65b9\u6cd5\u8fdb\u884c\u6a21\u578b\u8bad\u7ec3<br>\u7531\u4e8e\u6211\u4eec\u9700\u8981\u9884\u6d4b\u7684\u6210\u4ea4\u4ef7\u662f\u4e00\u4e2a\u8fde\u7eed\u578b\u53d8\u91cf\uff0c\u56e0\u6b64\u6a21\u578b\u9700\u8981\u9009\u62e9\u56de\u5f52\u7c7b\u7684\u6a21\u578b\u8fdb\u884c\u8bad\u7ec3\u3002\u56de\u5f52\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u7c7b\uff1a<br>\uff081\uff09\u7ebf\u6027\u56de\u5f52\uff08Linear Regression\uff09<br>\uff082\uff09\u903b\u8f91\u56de\u5f52\uff08Logistic Regression\uff09<br>\uff083\uff09\u591a\u9879\u5f0f\u56de\u5f52\uff08Polynomial Regression\uff09<br>\uff084\uff09\u9010\u6b65\u56de\u5f52\uff08Stepwise Regression\uff09<br>\uff085\uff09\u5cad\u56de\u5f52\uff08Ridge Regression\uff09<br>\uff086\uff09\u5957\u7d22\u56de\u5f52\uff08Lasso Regression\uff09<br>\uff087\uff09\u5f39\u6027\u56de\u5f52\uff08ElasticNet Regression\uff09<br>\u8be6\u7ec6\u4ecb\u7ecd\u56de\u5f52\u5206\u6790\u7684\u6587\u7ae0\uff1a<a href=\"https:\/\/blog.csdn.net\/red_stone1\/article\/details\/81122926\" target=\"_blank\" rel=\"noreferrer noopener\">\u4f60\u5e94\u8be5\u638c\u63e1\u7684 7 \u79cd\u56de\u5f52\u6a21\u578b\uff01<\/a><\/p>\n\n\n\n<p><strong>1.3 \u6a21\u578b\u6548\u679c\u8bc4\u4f30<\/strong>\uff1a\u8bc4\u4f30\u6a21\u578b\u7684\u6548\u679c<br>\u5728sklearn\u4e2d\u5305\u542b\u56db\u79cd\u8bc4\u4ef7\u5c3a\u5ea6\uff0c\u5206\u522b\u4e3amean_squared_error\u3001mean_absolute_error\u3001explained_variance_score \u548c r2_score\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>y:\u5373\u76ee\u6807\u503c\ny_:\u5373\u9884\u6d4b\u503c\ny-:\u5373\u76ee\u6807\u503c\u7684\u5747\u503c\nm:\u6837\u672c\u91cf\n\n(1) \u5747\u65b9\u8bef\u5dee\uff08mean-squared-error\uff09\n    MSE\uff1a\u03a3(y-y_)^2\/m\n    RMSE\uff1asqrt(MSE)\n(2) \u5e73\u5747\u7edd\u5bf9\u503c\u8bef\u5dee\uff08mean_absolute_error\uff09\n    MAE\uff1a\u03a3|y-y_|\/m\n(3) \u53ef\u91ca\u65b9\u5dee\u5f97\u5206\uff08explained_variance_score\uff09 \n    EVS\uff1a1-var{y-y_}\/var{y}\n(4) \u4e2d\u503c\u7edd\u5bf9\u8bef\u5dee\uff08Median absolute error\uff09\n    MedAE=meadian(|y1,y_1|,...,|yn-y_n|)\n(5) R2 \u51b3\u5b9a\u7cfb\u6570\uff08\u62df\u5408\u4f18\u5ea6\uff09:\u6a21\u578b\u8d8a\u597d\uff1ar2\u21921,\u6a21\u578b\u8d8a\u5dee\uff1ar2\u21920\n    RSS=\u03a3(y-y_)^2\n    ESS=\u03a3(y-y-)^2\n    R2=1-RSS\/TSS\n<\/code><\/pre>\n\n\n\n<p><strong>1.4 \u6a21\u578b\u6301\u4e45\u5316\u548c\u9884\u6d4b<\/strong>\uff1a\u5982\u4f55\u5c06\u8bad\u7ec3\u7684\u6a21\u578b\u5e94\u7528\u4e8e\u65b0\u7684\u6570\u636e\u8bc4\u4f30\uff1f<\/p>\n\n\n\n<ul><li>\u53ef\u4ee5\u4f7f\u7528sklearn\u7684\u6301\u4e45\u5316\u5de5\u5177joblib.dump\u548cjoblib.load\u8fdb\u884c\u8bad\u7ec3\u6a21\u578b\u7684\u5b58\u50a8\u548c\u8bfb\u53d6\uff0c\u7528\u4ee5\u65b0\u6570\u636e\u7684\u9884\u6d4b\u3002<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>\u7b2c\u4e8c\u90e8\u5206\uff1a\u6570\u636e\u9884\u5904\u7406\uff0c\u89e3\u51b3\u8bad\u7ec3\u548c\u63d0\u4ea4\u4f30\u503c\u6570\u636e\u7684\u9884\u5904\u7406<\/strong><\/p><\/blockquote>\n\n\n\n<p><strong>2.1 \u5b57\u6bb5\u5206\u6790<\/strong><br>\u56de\u5230\u6570\u636e\u4e2d\uff0c\u6211\u4eec\u5bf9\u6570\u636e\u5b57\u6bb5\u8fdb\u884c\u4ee5\u4e0b\u5206\u7c7b\uff1a<br>\u76ee\u6807\u5b57\u6bb5\uff1adeal_price<br>\u6570\u503c\u578b\u5b57\u6bb5\uff1ahouse_rooms\u3001house_halls\u3001house_kitchen\u3001house_toilets\u3001size<br>\u9700\u8981\u8f6c\u5316\u4e3a\u6570\u503c\u578b\u7684\u5b57\u6bb5\uff1alift_family<br>\u65e5\u671f\u578b\u6570\u636e\uff1adeal_date\uff0cbuild_year<br>\u5b57\u7b26\u578b\u5b57\u6bb5\uff1a\u9664\u4e0a\u8ff0\u5b57\u6bb5\u5916\u7684\u5176\u4ed6\u5b57\u6bb5\u3002<\/p>\n\n\n\n<p><strong>\u5b57\u6bb5\u9884\u5904\u7406\u65b9\u6cd5\u5982\u4e0b\uff1a<\/strong><br>\uff081\uff09\u5bf9\u4e8e\u68af\u6237\u6bd4\uff08lift_family\uff09\uff0c\u8981\u8bfb\u53d6\u6587\u672c\u4e2d\u7684\u7535\u68af\u6570\u548c\u6237\u6570\uff0c\u4ece\u800c\u8ba1\u7b97\u68af\u6237\u6bd4\uff08\u7535\u68af\u6570\/\u6237\u6570\uff09\uff0c\u6ca1\u6709\u6570\u636e\u7684\uff0c\u5219\u8fd4\u56de0\u3002<br>\uff082\uff09\u5bf9\u4e8e\u6570\u503c\u578b\u5b57\u6bb5\uff1a\u586b\u5145\u7f3a\u5931\u503c\u4e3a0\uff08\u6b64\u65b9\u6cd5\u8fc7\u4e8e\u7c97\u66b4\uff0c\u9700\u8981\u5728\u540e\u7eed\u53c2\u6570\u8c03\u6574\u8fc7\u7a0b\u8fdb\u884c\u4f18\u5316\uff09<br>\uff083\uff09\u5bf9\u65e5\u671f\u578b\u5b57\u6bb5\uff1a\u9700\u8981\u5904\u7406\u6210\u65e5\u671f\u5230\u5f53\u524d\u65f6\u95f4\u7684\u65f6\u95f4\u5dee<br>\uff084\uff09\u5bf9\u4e8e\u5b57\u7b26\u578b\u5b57\u6bb5\uff1a\u901a\u5e38\u91c7\u7528onehot\u7f16\u7801\u8fdb\u884c\u5904\u7406\u3002\u7f3a\u5931\u503c\u5f52\u4e3a\u4e00\u7c7b\uff0c\u586b\u5145\u4e3a\u201cmiss\u201d\u3002<br>\u901a\u8fc7\u4ee5\u4e0a\u7684\u7b80\u5355\u5904\u7406\uff0c\u5c31\u5f97\u5230\u4e86\u6211\u4eec\u51c6\u5907\u597d\u7684\u53ef\u4f9b\u8bad\u7ec3\u6216\u8005\u9884\u6d4b\u7684\u6570\u636e\u3002<\/p>\n\n\n\n<p><strong>\u6570\u636e\u9884\u5904\u7406\u7a0b\u5e8f\u6784\u5efa\u601d\u8def<\/strong><br>\uff081\uff09\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2apre_process\u7c7b\uff0c\u5c06\u4e0a\u8ff0\u56db\u79cd\u7c7b\u578b\u7684\u6570\u636e\u9884\u5904\u7406\u65b9\u6cd5\u5c01\u88c5\u5230\u8be5\u7c7b\u4e2d\u3002<br>\uff082\uff09\u7531\u4e8e\u68af\u6237\u6bd4\u5904\u7406\u65b9\u6cd5\u662f\u72ec\u7acb\u751f\u6210\u4e2d\u6587-\u6570\u5b57\u5bf9\u7167\u8868\uff0c\u56e0\u6b64\u53ef\u4ee5\u5c06\u8be5\u51fd\u6570\u72ec\u7acb\u4e8epre_process\u7c7b\uff0c\u7136\u540e\u5728pre_process\u4e2d\u5f15\u7528\u8be5\u65b9\u6cd5\u5904\u7406\u7684\u7ed3\u679c\u8fdb\u884c\u8f6c\u6362\u3002<br>\u6570\u636e\u9884\u5904\u7406\u6587\u4ef6DataProcess.py\u6574\u4f53\u7ed3\u6784\u5982\u4e0b\uff1a<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DataProcess.py\n# \u751f\u62101000\u4ee5\u5185\u7684\u6c49\u5b57\u548c\u6570\u5b57\u5bf9\u5e94\u8868\ndef chnum_to_num(output=0):\n      ...\n# \u6570\u636e\u9884\u5904\u7406\u7c7b\nclass pre_process():\n    # \u5b9a\u4e49\u521d\u59cb\u5316\u51fd\u6570\uff0c\u7528\u4e8e\u8fa8\u522b\u7c7b\u88ab\u7528\u4e8e\u8bad\u7ec3\u8fd8\u662f\u9884\u6d4b\n    def __init__(self,method='train'):\n        self.method=method\n    # \u5904\u7406\u68af\u6237\u6bd4\n    def lift_proecess(self,data):\n        ...\n    # \u5904\u7406\u65e5\u671f\n    def date_proecess(self,data):\n        ...\n    # \u5904\u7406\u5b57\u7b26\u578b\uff1aonehot\u5904\u7406\n    def onehot(self,data):\n        ...\n<\/code><\/pre>\n\n\n\n<p><strong>2.2 \u5b9a\u4e49\u68af\u6237\u6bd4\u5904\u7406\u51fd\u6570<\/strong><br>\u68af\u6237\u6bd4\u6570\u636e\uff1a\u201c\u4e24\u68af\u516b\u6237\u201d\u3002\u8fd9\u91cc\u7684\u68af\u548c\u6237\u90fd\u662f\u4e2d\u6587\uff0c\u9700\u8981\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\u8fdb\u884c\u8f6c\u6362\u3002\u597d\u5728\u6570\u636e\u6574\u4f53\u6bd4\u8f83\u89c4\u8303\uff0c\u9664\u4e86\u96f6\u5230\u5341\u7684\u6c49\u5b57\u5916\uff0c\u53ea\u6709\u4e00\u4e2a\u7279\u4f8b\uff1a\u4e24\uff08\u548c\u4e8c\u76f8\u540c\uff09\u3002\u4ece\u5e38\u8bc6\u4e0a\u5224\u65ad\uff0c\u6211\u4eec\u53ea\u9700\u751f\u62101-999\u8303\u56f4\u5185\u7684\u4e2d\u6587-\u6570\u5b57\u5bf9\u7167\u8868\u5c31\u53ef\u4ee5\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u751f\u62101000\u4ee5\u5185\u7684\u6c49\u5b57\u548c\u6570\u5b57\u5bf9\u5e94\u8868\ndef chnum_to_num(output=0):\n    ch_num=&#91;'\u96f6','\u4e00','\u4e8c','\u4e09','\u56db','\u4e94','\u516d','\u4e03','\u516b','\u4e5d']\n    for hundred in range(10):\n        # \u5982\u679c\u767e\u4f4d\u662f0\uff0c\u5219\u767e\u4f4d\u4e3a\u7a7a\uff0c\u5426\u5219\u8fd4\u56de\u767e\u4f4d\u6570\n        if hundred==0:\n            hundred_ch=\"\"\n        else:\n            hundred_ch=ch_num&#91;hundred]+\"\u767e\"\n        # \u5faa\u73af\u5341\u4f4d\n        for ten in range(10):\n            # \u5982\u679c\u767e\u4f4d\u548c\u5341\u4f4d\u90fd\u662f0\uff0c\u5219\u76f4\u63a5\u8df3\u8fc7\uff0c\u5217\u8868\u4e2d\u5df2\u5305\u542b\u6570\u636e\n            if hundred==0 and ten==0:\n                continue\n            # \u767e\u4f4d\u4e3a0\uff0c\u5341\u4f4d\u4e3a1\u7684\u60c5\u51b5\n            elif hundred==0 and ten==1:\n                ten_ch='\u5341'\n            # \u767e\u4f4d\u4e3a\u4e0d\u4e3a\u96f6\uff0c\u5341\u4f4d\u4e3a\u96f6\u7684\u60c5\u51b5\n            elif ten==0:\n                ten_ch=\"\u96f6\"\n            else:\n                ten_ch=ch_num&#91;ten]+\"\u5341\"\n            # \u5faa\u73af\u4e2a\u4f4d\n            for one in range(10):\n                # \u6574\u767e\u7684\u60c5\u51b5\n                if hundred&gt;0 and ten==0 and one==0:\n                    ch_num.append(\"\".join(&#91;hundred_ch]))\n                # \u4e2a\u4f4d\u662f0\n                elif one==0:\n                    ch_num.append(\"\".join(&#91;hundred_ch,ten_ch]))\n                else:\n                    one_ch=ch_num&#91;one]\n                    ch_num.append(\"\".join(&#91;hundred_ch,ten_ch,one_ch]))\n    num=list(range(0,1000))\n    num_dict=dict(zip(ch_num,num))\n    # \u6dfb\u52a0\u201c\u4e24\u201d\n    num_dict&#91;'\u4e24']=2\n    # \u4f7f\u7528joblib\u5b58\u50a8\u6587\u4ef6\n    if output==0:\n        joblib.dump(num_dict,path+'templet\/chnum_to_num.pkl')\n    else:\n        return num_dict\n<\/code><\/pre>\n\n\n\n<p><strong>2.3 pre_process\u7c7b\u4e2d\u7684\u68af\u6237\u6bd4\u5904\u7406\u51fd\u6570<\/strong><br>\u901a\u8fc7chnum_to_num\u4ea7\u751f\u7684\u4e2d\u6587\u548c\u6570\u5b57\u5bf9\u7167\u6587\u4ef6chnum_to_num.pkl\uff0c\u5c06lift_family\u5217\u8f6c\u6362\u4e3a\u68af\u6237\u6bd4\u6570\u503c\u6570\u636e\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    # \u5904\u7406\u68af\u6237\u6bd4(\u5c06\u68af\u6237\u6570\u8f6c\u5316\u4e3a\u68af\u6237\u6bd4\u6570\u636e)\n    def lift_proecess(self,data):\n        num_dict=joblib.load(path+'templet\/chnum_to_num.pkl')\n        # \u83b7\u53d6\u68af\u548c\u6237\u7684\u6c49\u5b57\n        data&#91;'ti_ch']=data&#91;'lift_family'].map(lambda x: re.findall('(.*)\u68af',x)&#91;0] if len(re.findall('(.*)\u68af',x))&gt;0 else None)\n        data&#91;'hu_ch']=data&#91;'lift_family'].map(lambda x: re.findall('\u68af(.*)\u6237',x)&#91;0] if len(re.findall('\u68af(.*)\u6237',x))&gt;0 else None)\n        data&#91;'ti']=data&#91;'ti_ch'].map(lambda x: num_dict&#91;x] if x is not None else None)\n        data&#91;'hu']=data&#91;'hu_ch'].map(lambda x: num_dict&#91;x] if x is not None else None)\n        data&#91;'tihu_rate']=data&#91;'ti']\/data&#91;'hu']\n        # \u586b\u5145\u7f3a\u5931\u503c\u4e3a0\n        data&#91;'tihu_rate'].fillna(0,inplace=True)\n        # \u5220\u9664\u591a\u4f59\u5b57\u6bb5\n        data.drop(&#91;'lift_family','hu_ch','ti_ch','ti','hu'],axis=1,inplace=True)\n        return data\n<\/code><\/pre>\n\n\n\n<p><strong>2.4 pre_process\u7c7b\u4e2d\u7684\u65e5\u671f\u6570\u636e\u5904\u7406<\/strong><br>\u6570\u636e\u4e2d\u5305\u542b\u4e24\u4e2a\u65e5\u671f\u76f8\u5173\u7684\u5b57\u6bb5\u3002<br>deal_date\uff1a\u5373\u6210\u4ea4\u65e5\u671f\u3002\u623f\u4ea7\u7684\u4ef7\u683c\u5b9e\u9645\u4e0a\u662f\u548c\u65f6\u95f4\u9ad8\u5ea6\u76f8\u5173\u7684\u3002\u8fd9\u91cc\u8ba1\u7b97\u6210\u4ea4\u65e5\u671f\u548c\u5f53\u524d\u65e5\u671f\u4e4b\u95f4\u7684\u6708\u4efd\u6570\uff0c\u7528\u4ee5\u53cd\u6620\u65f6\u95f4\u53d8\u91cf\u3002\u8981\u9884\u6d4b\u6570\u636e\u65f6\uff0c\u9ed8\u8ba4\u4e3a\u8981\u9884\u6d4b\u5f53\u5929\u7684\u6570\u636e\uff0c\u4e5f\u53ef\u4ee5\u8f93\u5165\u4e00\u4e2a\u5386\u53f2\u65e5\u671f\uff0c\u6765\u9884\u6d4b\u5386\u53f2\u4e0a\u8fd9\u6837\u7684\u623f\u4ea7\u552e\u4ef7\u4f1a\u662f\u591a\u5c11\u3002<br>build_year\uff1a\u5efa\u7b51\u7684\u5e74\u4efd\uff0c\u901a\u5e38\u5e74\u4efd\u8d8a\u4e45\u8fdc\u623f\u4ea7\u4f30\u503c\u4f1a\u66f4\u4f4e\u3002\u6240\u4ee5\uff0c\u8ba1\u7b97\u5efa\u7b51\u5e74\u4efd\u548c\u5f53\u524d\u5e74\u4efd\u7684\u5e74\u6570\u5dee\u5f02\u3002\u5bf9\u7f3a\u5931\u6570\u636e\u901a\u8fc7\u540c\u5c0f\u533a\u7684\u5efa\u7b51\u5e74\u5ea6\u5747\u503c\u586b\u5145\uff0c\u6ca1\u6709\u540c\u5c0f\u533a\u6570\u636e\u5219\u4f7f\u7528\u5168\u90e8\u6570\u636e\u7684\u5747\u503c\u586b\u5145\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    # \u5c06\u65e5\u671f\u6570\u636e\u8f6c\u5316\u6210\u4e3a\u8ddd\u79bb\u5f53\u524d\u65e5\u671f\u7684\u65f6\u95f4\u6bb5\n    def date_proecess(self,data):\n        ###### \u6210\u4ea4\u65e5\u671f\/\u6216\u9700\u8981\u9884\u6d4b\u7684\u65e5\u671f\u8ddd\u79bb\u5f53\u524d\u65e5\u671f\u7684\u6708\u4efd\n        data&#91;'deal_delta']=datetime.now()-data&#91;'deal_date']\n        data&#91;'deal_month']=data&#91;'deal_delta'].apply(lambda x: x.days\/30)\n        ###### \u5efa\u7b51\u5e74\u4efd,\u8ba1\u7b97\u5efa\u7b51\u8ddd\u79bb\u73b0\u5728\u6709\u591a\u5c11\u5e74\n        data&#91;'build_year']=date.today().year-data&#91;'build_year']\n        # \u586b\u5145\u7f3a\u5931\u503c\n        # \u65b9\u6cd5\uff1a\u6309\u5c0f\u533a\u8ba1\u7b97\u5e73\u5747\u5efa\u7b51\u5e74\u4ee3\uff0c\u5982\u679c\u7f3a\u5931\u6570\u636e\u6ca1\u6709\u6570\u636e\uff0c\u5219\u7528\u5168\u90e8\u6570\u636e\u7684\u5747\u503c\n        build_avg_year=data.groupby('building')&#91;'build_year'].mean()\n        avg_year=data&#91;'build_year'].mean()\n        build_avg_year.fillna(avg_year,inplace=True)\n        build_avg_year=pd.DataFrame(build_avg_year)\n         # \u751f\u6210\u8f85\u52a9\u5217\n        year_data=pd.merge(data&#91;&#91;'building','build_year']],build_avg_year,how='left',left_on='building',right_index=True)\n        # \u5c06\u586b\u5145\u7f3a\u5931\u503c\n        data&#91;'build_year'].fillna(year_data&#91;'build_year_y'],inplace=True)\n        # \u5220\u9664\u751f\u6210\u7684\u8fc7\u7a0b\u6570\u636e\n        data.drop(&#91;'deal_date','deal_delta'],axis=1,inplace=True)\n        return data\n<\/code><\/pre>\n\n\n\n<p><strong>2.5 pre_process\u7c7b\u4e2d\u7684\u5b57\u7b26\u578b\u6570\u636e\u5904\u7406<\/strong><br>\u4e3a\u7b80\u4fbf\u8d77\u89c1\uff0c\u6211\u4eec\u5bf9\u5269\u4f59\u7684\u5b57\u7b26\u578b\u6570\u636e\u7684\u7f3a\u5931\u503c\uff0c\u4f7f\u7528\u4e00\u4e2a\u5355\u72ec\u7c7b\u201cmiss\u201d\u8fdb\u884c\u586b\u5145\u3002<br>\u5982\u679c\u662f\u8bad\u7ec3\u8fc7\u7a0b\uff0c\u5219\u9700\u8981\u5206\u522b\u5b58\u50a8\u6240\u6709\u5b57\u6bb5\u7684\u6240\u6709\u503c\u4fe1\u606f\u3002<br>\u63a5\u4e0b\u6765\u7684onehot\u7f16\u7801\u8fc7\u7a0b\u5c31\u9700\u8981\u8bfb\u53d6\u4e0a\u8ff0\u5b58\u50a8\u7684\u6570\u636e\uff0c\u5bf9\u6bcf\u4e2a\u5b57\u6bb5\u8fdb\u884c\u7f16\u7801\u3002\u8fd9\u91cc\u4e0d\u91c7\u7528pandas\u81ea\u5e26\u7684onehot\u7f16\u7801\u51fd\u6570pd.get_dummies\u7684\u539f\u56e0\u662f\u8fd9\u6837\u5904\u7406\u662f\u4e00\u6b21\u6027\u7684\uff0c\u4e0d\u65b9\u4fbf\u540e\u671f\u65b0\u6570\u636e\u7684\u5904\u7406\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    # onehot\u5904\u7406\n    def onehot(self,data):\n        data.drop(&#91;'building'],axis=1,inplace=True)\n        var_list=&#91;'district','sub_district','room_type','house_stru','fixture','build_stru','property_year','lift','house_type']\n        # \u586b\u5145\u7f3a\u5931\u503c\u4e3a\u201cmiss\u201d\uff0c\u4f5c\u4e3a\u5355\u72ec\u4e00\u7c7b\n        for var in var_list:\n            data&#91;var].fillna('miss',inplace=True)\n        # \u5982\u679c\u662f\u8bad\u7ec3\u6570\u636e\uff0c\u5219\u5148\u8981\u8bb2\u6240\u6709onehot\u7684\u5b57\u5178\u5b58\u50a8\u4e0b\u6765\uff08\u5b58\u50a8\u540e\u518d\u8c03\u7528\u6765\u8fdb\u884conehot\u7f16\u7801\uff09\uff0c\u5982\u679c\u4e0d\u662f\u5219\u76f4\u63a5\u8c03\u7528\u8bad\u7ec3\u65f6\u6240\u5b58\u50a8\u7684\u6570\u636e\u8fdb\u884c\u7f16\u7801\n        if self.method=='train':\n            for var in var_list:\n                var_values=list(set(data&#91;var]))\n                joblib.dump(var_values,path+'templet\/{}.pkl'.format(var))\n                # \u53e6\u4e00\u79cd\u65b9\u6cd5\uff0cle_class.classes_\n                # le_class = preprocessing.LabelEncoder()\n                # le_class.fit(data&#91;var])\n        # \u8bfb\u53d6\u6bcf\u4e00\u4e2a\u7f16\u7801\uff0c\u8fdb\u884conehot\u5904\u7406\n        for var in var_list:\n            print(\"    ...\u8fdb\u884conehot\u7f16\u7801,\u5f53\u524d\u53d8\u91cf\uff1a{}\".format(var))\n            var_values=joblib.load(path+'templet\/{}.pkl'.format(var))\n            var_cols=&#91;var+\"_\"+str(j) for j in range(len(var_values))]\n            # \u751f\u6210\u6837\u672c\u91cf*\u53d8\u91cf\u503c\u6570\u91cf\u7684\u51680\u77e9\u9635\n            temp_data=pd.DataFrame(data=np.zeros((len(data),len(var_values))),columns=var_cols)\n            # \u5b8c\u6210onehot\u5904\u7406\uff0c\u5728\u5408\u9002\u7684\u4f4d\u7f6e\u586b\u51451\n            for i in temp_data.index:\n                temp_data.iloc&#91;i,var_values.index(data&#91;var]&#91;i])]=1\n            # \u5c06\u5b8c\u6210\u4e86onehot\u7f16\u7801\u7684\u6570\u636e\u5408\u5e76\u5230DATA\u4e2d\n            data=pd.merge(data,temp_data,left_index=True,right_index=True)\n        # \u5220\u9664\u5df2\u7ecf\u5b8c\u6210\u4e86onehot\u7f16\u7801\u7684\u6570\u636e\n        data.drop(&#91;'district','sub_district','room_type','house_stru','fixture','build_stru','property_year','lift','house_type'],axis=1,inplace=True)\n        return data\n<\/code><\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u8fc7\u7a0b\u5c31\u57fa\u672c\u5b8c\u6210\u4e86\u6570\u636e\u7684\u9884\u5904\u7406\u51fd\u6570\u7684\u5b9a\u4e49\uff0c\u53ef\u4ee5\u901a\u8fc7\u4f9d\u6b21\u8c03\u7528\u4e0a\u8ff0\u51fd\u6570\uff0c\u5b8c\u6210\u6574\u4f53\u7684\u6570\u636e\u9884\u5904\u7406\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>\u7b2c\u4e09\u90e8\u5206\uff1a\u6a21\u578b\u8bad\u7ec3\u548c\u6301\u4e45\u5316<\/strong><\/p><\/blockquote>\n\n\n\n<p>\u8fd9\u4e00\u5206\u90e8\u5c06\u751f\u6210\u4e00\u4e2atrain.py\uff0c\u8fd9\u4e2a\u6587\u4ef6\u4e3b\u8981\u5b8c\u6210\u6a21\u578b\u8bad\u7ec3\u548c\u6a21\u578b\u6301\u4e45\u5316\u3002<\/p>\n\n\n\n<p><strong>3.1 \u4f7f\u7528\u7b2c\u4e8c\u90e8\u5206\u5b9a\u4e49\u7684\u51fd\u6570\u8fdb\u884c\u6570\u636e\u9884\u5904\u7406<\/strong><br>\u9996\u5148\u6211\u4eecimport\u4e0a\u9762\u5199\u597d\u7684\u6587\u4ef6\uff1a<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import fuction_tools.DataProcess as dp\n<\/code><\/pre>\n\n\n\n<p>\u6211\u4eec\u518d\u5b9a\u4e49\u4e00\u4e2adata_preprcess\u51fd\u6570\uff0c\u96c6\u6210\u6240\u6709\u6570\u636e\u9884\u5904\u7406\u51fd\u6570\u8fdb\u884c\u6570\u636e\u9884\u5904\u7406\u3002\u8fd9\u91cc\uff0c\u9664\u4e86\u7b2c\u4e8c\u90e8\u5206\u8981\u505a\u7684\u5904\u7406\u5916\uff0c\u6211\u4eec\u8fd8\u6709\u4e00\u4e9b\u5367\u5ba4\u3001\u5ba2\u5385\u6570\u91cf\u7b49\u6570\u503c\u578b\u6570\u636e\uff0c\u9700\u8981\u586b\u5145\u7f3a\u5931\u503c\uff0c\u7f3a\u5931\u503c\u5747\u586b\u5145\u4e3a0\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def data_preprcess(data,method='train'):\n    '''\n    data: \u9700\u8981\u8fdb\u884c\u6570\u636e\u9884\u5904\u7406\u7684\u6570\u636e\uff0cpd.DataFrame\u683c\u5f0f\n    method: \u5982\u679c\u662ftrain\uff0c\u5219\u8868\u793a\u662f\u8bad\u7ec3\u8fc7\u7a0b\uff0conehot\u6b65\u9aa4\u4f1a\u5b58\u50a8onehot\u7f16\u7801\u7801\u8868\n    retrun: \u8fd4\u56de\u9884\u5904\u7406\u5b8c\u6210\u540e\u7684\u6570\u636e\n    '''\n    # \u6570\u636e\u9884\u5904\u7406\u90e8\u5206\n    print(\"\u6b63\u5728\u8fdb\u884c\u8bad\u7ec3\u6a21\u578b\u7684\u9884\u5904\u7406\uff1a\")\n    pre_p=dp.pre_process(method=method)\n    # \u5904\u7406\u68af\u6237\u6bd4\n    print(\"  \u8bad\u7ec3\u6a21\u578b\u9884\u5904\u7406\uff1a\u5904\u7406\u68af\u6237\u6bd4\u6570\u636e\")\n    data=pre_p.lift_proecess(data)\n    # \u5904\u7406\u65e5\u671f\n    print(\"  \u8bad\u7ec3\u6a21\u578b\u9884\u5904\u7406\uff1a\u5904\u7406\u65e5\u671f\u6570\u636e\")\n    data=pre_p.date_proecess(data)\n    # \u8fdb\u884conhot\u7f16\u7801\n    print(\"  \u8bad\u7ec3\u6a21\u578b\u9884\u5904\u7406\uff1aonhot\u7f16\u7801\")\n    data=pre_p.onehot(data)\n    # \u586b\u5145\u5ba4\u5385\u536b\u53a8\u7684\u7f3a\u5931\u503c\u4e3a0\n    print(\"  \u8bad\u7ec3\u6a21\u578b\u9884\u5904\u7406\uff1a\u586b\u5145\u5ba4\u5385\u536b\u53a8\u7684\u7f3a\u5931\u503c\u4e3a0\")\n    varlist=&#91;'house_rooms','house_halls','house_kitchen','house_toilets']\n    for var in varlist:\n        data&#91;var].fillna(0,inplace=True)\n    # data.to_csv('abc.csv',encoding='gb2312')\n    return data\n<\/code><\/pre>\n\n\n\n<p>\u901a\u8fc7data_preprcess\u51fd\u6570\uff0c\u5373\u53ef\u4ee5\u5c06\u6211\u4eec\u8f93\u5165\u7684\u6570\u636e\u8f6c\u6362\u6210\u4e3a\u53ef\u4ee5\u7528\u4e8e\u6a21\u578b\u8bad\u7ec3\u7684\u6210\u54c1\u6570\u636e\u3002<\/p>\n\n\n\n<p><strong>3.2 \u4f7f\u7528\u968f\u673a\u68ee\u6797\u56de\u5f52\u8fdb\u884c\u8bad\u7ec3<\/strong><br>\u8fd9\u91cc\u53c2\u8003\u4e86\u5f00\u7bc7\u63d0\u53ca\u7684\u6587\u7ae0\u4e2d\u6240\u4f7f\u7528\u7684\u65b9\u6cd5\u3002\u4f7f\u7528joblib.dump\u4fdd\u5b58\u8bad\u7ec3\u7ed3\u679c\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \uff081\uff09\u4f7f\u7528\u968f\u673a\u68ee\u6797\u56de\u5f52\u6cd5\uff0c\u8fdb\u884c\u6a21\u578b\u8bad\u7ec3\u5e76\u4fdd\u5b58\u8bad\u7ec3\u7ed3\u679c\ndef rdf_train_data(data):\n    # start_time=datetime.now()\n    # \u6253\u4e71\u6570\u636e\u987a\u5e8f\n    data=data.reindex(np.random.permutation(data.index))\n    Y_train=data&#91;'deal_price']\n    X_train=data.drop(&#91;'deal_price'],axis=1)\n    \n    # \u8c03\u7528scikit-learn\u7684\u7f51\u683c\u641c\u7d22\uff0c\u4f20\u5165\u53c2\u6570\u9009\u62e9\u8303\u56f4\uff0c\u5e76\u4e14\u5236\u5b9a\u968f\u673a\u68ee\u6797\u56de\u5f52\u7b97\u6cd5\uff0ccv = 5\u8868\u793a5\u6298\u4ea4\u53c9\u9a8c\u8bc1\n    param_grid = {\"n_estimators\":&#91;5,10,50,100,200,500],\"max_depth\":&#91;5,10,50,100,200,500]}\n    grid_search = GridSearchCV(RandomForestRegressor(),param_grid,cv = 5)\n    \n    # \u8ba9\u6a21\u578b\u5bf9\u8bad\u7ec3\u96c6\u548c\u7ed3\u679c\u8fdb\u884c\u62df\u5408\n    grid_search.fit(X_train,Y_train)\n    print(\"\u968f\u673a\u68ee\u6797\u56de\u5f52\u6a21\u578b\u7684\u62df\u5408\u4f18\u5ea6R^2\u4e3a\uff1a\"+str(np.around(grid_search.best_score_,4)))\n    # \u5b58\u50a8\u8bad\u7ec3\u7684\u6a21\u578b\n    joblib.dump(grid_search,path+'models\/grid_search.pkl')\n    # end_time=datetime.now()\n    # user_minte=round((end_time-start_time).seconds\/60,1)\n    # print(\"\u5171\u7528\u65f6\uff1a\"+str(user_minte)+\"\u5206\u949f\")\n<\/code><\/pre>\n\n\n\n<p><strong>3.3 \u4f7f\u7528\u7ebf\u6027\u56de\u5f52\u3001\u5cad\u56de\u5f52\u7b49\u6a21\u578b\u8fdb\u884c\u8bad\u7ec3<\/strong><br>\u5b9a\u4e49\u4e09\u79cd\u6a21\u578b\u65b9\u6cd5\uff0c\u6309\u7167\u7528\u6237\u7684\u8f93\u5165\uff0c\u8fdb\u884c\u8bad\u7ec3\u5e76\u8f93\u51fa\u6a21\u578b\u7ed3\u679c\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \uff082\uff09\u4f7f\u7528\u7ebf\u6027\u56de\u5f52\u3001\u5cad\u56de\u5f52\u7b49\u6a21\u578b\u8fdb\u884c\u8bad\u7ec3\ndef linear_train_data(data,t_method='Ridge'):\n    '''\n    data: \u8981\u8bad\u7ec3\u7684\u6570\u636e\uff0c\u6765\u6e90\u4e8edata_preprcess\n    method: {Ridge,Lasso,LinearRession},\u4e09\u79cd\u8bad\u7ec3\u6a21\u578b\uff0c\u9ed8\u8ba4\u4e3aRidge\u5cad\u56de\u5f52\n    '''\n    # \u5b9a\u4e49\u8bad\u7ec3\u65b9\u6cd5\n    methods={'LinearRession':linear_model.LinearRegression(fit_intercept=True),\n             'Lasso':linear_model.Lasso(),\n             'Ridge':linear_model.Ridge()}\n    linear=methods&#91;t_method]\n    # \u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\n    Y=data&#91;'deal_price']\n    X=data.drop(&#91;'deal_price'],axis=1)\n    # X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.1,random_state=100)\n    linear.fit(X,Y)\n    joblib.dump(linear,path+'models\/{}.pkl'.format(t_method))\n    # \u4f7f\u7528\u6a21\u578b\u8fdb\u884c\u9884\u6d4b\n    print(t_method+\"\u6a21\u578b\u7684\u62df\u5408\u4f18\u5ea6R^2\u4e3a\uff1a\"+str(np.around(linear.score(X,Y),4)))\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8ff0\u8fc7\u7a0b\u5b9a\u4e49\u4e864\u79cd\u6a21\u578b\u8fdb\u884c\u8bad\u7ec3\uff0c\u5e76\u4fdd\u5b58\u4e86\u6a21\u578b\u7ed3\u679c\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>\u7b2c\u56db\u90e8\u5206\uff1a\u4f7f\u7528\u8bad\u7ec3\u597d\u7684\u6a21\u578b\u8fdb\u884c\u4f30\u503c<\/strong><\/p><\/blockquote>\n\n\n\n<p><strong>4.1 \u5b9a\u4e49\u4e00\u4e2a\u7edf\u4e00\u7684\u9884\u6d4b\u63a5\u53e3\uff0c\u65b9\u4fbf\u8c03\u7528\u5404\u79cd\u65b9\u6cd5\u8fdb\u884c\u9884\u6d4b<\/strong><br>\u901a\u8fc7\u5b9a\u4e49sh_predict\u51fd\u6570\uff0c\u540e\u671f\u6570\u636e\u9884\u6d4b\u8c03\u7528\u8be5\u51fd\u6570\u5c31\u53ef\u4ee5\u5bf9\u65b0\u6570\u636e\u8fdb\u884c\u9884\u6d4b\uff0c\u5e76\u8f93\u51fa\u9884\u6d4b\u7ed3\u679c\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5b9a\u4e49\u9884\u6d4b\u65b9\u6cd5\u51fd\u6570\ndef sh_predict(data,p_predict='grid_search'):\n    '''\n    data:\u8981\u9884\u6d4b\u7684\u6570\u636e(\u5df2\u5b8c\u6210\u6570\u636e\u9884\u5904\u7406)\uff0c\u9700\u8981\u548c\u8bad\u7ec3\u6a21\u578b\u7684\u57fa\u672c\u6570\u636e\u5b57\u6bb5\u76f8\u540c\uff0c\u53ef\u4ee5\u53c2\u8003dataprocess.py\uff0c\u6709\u76f8\u5173\u4ecb\u7ecd\n    p_predict\uff1a{grid_search,Ridge,Lasso,LinearRession},\u56db\u79cd\u8bad\u7ec3\u6a21\u578b\uff0c\u9ed8\u8ba4\u4e3agrid_search\u968f\u673a\u68ee\u6797\u56de\u5f52\n    '''\n    linear=joblib.load(path+'models\/{}.pkl'.format(p_predict))\n    predict_y=linear.predict(data)\n    return predict_y\n<\/code><\/pre>\n\n\n\n<p><strong>4.2 \u8fdb\u884c\u9884\u6d4b\u548c\u8f93\u51fa\u5404\u79cd\u6a21\u578b\u7684\u9884\u6d4b\u7ed3\u679c<\/strong><br>\u4e0a\u9762\u5b9a\u4e49\u597d\u4e86\u5404\u79cd\u51fd\u6570\uff0c\u8fd9\u91cc\u8bfb\u53d6\u6570\u636e\uff0c\u8c03\u7528\u51fd\u6570\u8fdb\u884c\u9884\u5904\u7406\uff0c\u8c03\u7528\u51fd\u6570\u8fdb\u884c\u9884\u6d4b\uff0c\u5b58\u50a8\u7ed3\u679c\u6570\u636e\u5c31\u53ef\u4ee5\u3002<em><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    path='F:\/second_hs\/'\n    # \u8bfb\u53d6\u6570\u636e\n    print(\"\u8bfb\u53d6\u6570\u636e...\")\n    p_data=pd.read_excel(path+\"predict_house.xlsx\",\n                           parse_dates=&#91;'deal_date'])\n    r_data=p_data.copy()\n    # \u8fdb\u884c\u6570\u636e\u9884\u5904\u7406\n    pp_data=data_preprcess(p_data,method='predict')\n    pp_data.drop('deal_price',inplace=True,axis=1)\n    # \u8fdb\u884c\u9884\u6d4b\n    for mthd in &#91;'Ridge','Lasso','LinearRession','grid_search']:\n        print(\"\u4f7f\u7528\uff1a{}\u65b9\u6cd5\u8fdb\u884c\u9884\u6d4b\u3002\".format(mthd))\n        predict_y=sh_predict(pp_data,p_predict=mthd)\n        r_data&#91;mthd]=predict_y\n    # \u5bfc\u51fa\u6570\u636e\n    r_data.to_csv(path+'predict_result.csv',index=False)\n    print(\"\u9884\u6d4b\u5b8c\u6210\uff0c\u8bf7\u67e5\u770b\u6587\u4ef6\u3002\")\n<\/code><\/pre>\n\n\n\n<p>\u7ed3\u679c\u8bc4\u4f30\u65b9\u9762\u5c31\u6682\u65f6\u4e0d\u5c55\u793a\u4e86\u3002\u7531\u4e8e\u8fd9\u91cc\u7684\u6570\u636e\u9884\u5904\u7406\u8fc7\u7a0b\u6bd4\u8f83\u7c97\u7565\uff0c\u540c\u65f6\u5bf9\u6570\u636e\u7684\u76f8\u5173\u6027\u3001\u591a\u91cd\u5171\u7ebf\u6027\u7b49\u672a\u4f5c\u5904\u7406\uff0c\u6a21\u578b\u6548\u679c\u5b9e\u9645\u4e0a\u5e76\u4e0d\u662f\u5f88\u7406\u60f3\u3002\u8fd9\u4e9b\u90fd\u662f\u8981\u5728\u540e\u671f\u6a21\u578b\u4f18\u5316\u9700\u8981\u505a\u7684\u5de5\u4f5c\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>\u7b2c\u4e94\u90e8\u5206\uff1a\u63d0\u4f9b\u6570\u636e\u63a5\u53e3\uff08\u6b64\u90e8\u5206\u5f85\u5b8c\u5584\uff09<\/strong><\/p><\/blockquote>\n\n\n\n<p>\u8fd9\u90e8\u5206\u5c31\u6682\u65f6\u4e0d\u5199\u4e86\uff0c\u4e3b\u8981\u662f\u63d0\u4f9b\u7f51\u9875\u63a5\u53e3\uff0c\u63d0\u4f9b\u9762\u5411\u7528\u6237\u7684\u4e8c\u624b\u623f\u4f30\u503c\u529f\u80fd\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\uff0c\u7531\u4e8e\u6c34\u5e73\u6709\u9650\uff0c\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u95ee\u9898\u3002\u6b22\u8fce\u8ba8\u8bba\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4e3b\u8981\u5185\u5bb9 \u5f00\u7bc7\u4e4b\u524d\uff0c\u8fd9\u91cc\u6709\u4e00\u7bc7\u4ece\u5165\u95e8\u5230\u7cbe\u901a\u505a\u4e8c\u624b\u623f\u4f30\u503c\u6a21\u578b\u7684\u6587\u7ae0\uff1a\u7528\u673a\u5668\u5b66\u4e60\u81ea\u5236\u4e8c\u624b\u623f\u4f30\u4ef7\u6a21\u578b\u3002\u53ef\u4ee5\u4e86\u89e3\u4e00<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/shanlin.info\/?p=3130\" class=\"home-blog-btn\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,12],"tags":[],"_links":{"self":[{"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/posts\/3130"}],"collection":[{"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shanlin.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3130"}],"version-history":[{"count":1,"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/posts\/3130\/revisions"}],"predecessor-version":[{"id":3131,"href":"https:\/\/shanlin.info\/index.php?rest_route=\/wp\/v2\/posts\/3130\/revisions\/3131"}],"wp:attachment":[{"href":"https:\/\/shanlin.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shanlin.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shanlin.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}