官网首页 › 研究观点 › 观点正文

带你迈出机器学习实践的第一步

发布于 2021-06-08

<section data-role="outer" label="Powered by 135editor.com"><section style="margin: 5px 8px;color: rgb(0, 0, 0);font-size: 14px;letter-spacing: 1px;background-color: rgb(255, 255, 255);max-width: 100%;box-sizing: border-box;text-align: center;justify-content: flex-end;line-height: 1.5em;text-indent: 0em;font-family: Optima-Regular, PingFangTC-light;overflow-wrap: break-word !important;"><section style="box-sizing: border-box;max-width: 100%;display: inline-block;vertical-align: top;width: 100%;align-self: flex-start;height: auto;overflow-wrap: break-word !important;"><section style="margin-top: 10px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;font-size: 18px;letter-spacing: -1px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><p><img data-backh="121" data-backw="370" data-ratio="0.32741935483870965" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIzYkyCR8gqlt6ZJJynwTEe8yvZhs0Y0c3ONSbKVq0FJAjCrXBatmXu7gXnIktjEYfjW70wDKtgLjw/640?wx_fmt=png" data-type="png" data-w="620" style="box-sizing: border-box;height: 118px;caret-color: rgb(255, 0, 0);text-indent: 36px;width: 359px;" /><br /></p></section></section></section></section></section><section style="margin: 5px 8px;max-width: 100%;box-sizing: border-box;color: rgb(0, 0, 0);font-size: 14px;letter-spacing: 1px;background-color: rgb(255, 255, 255);text-align: right;justify-content: flex-end;line-height: 1.5em;overflow-wrap: break-word !important;"><section style="box-sizing: border-box;max-width: 100%;display: inline-block;width: 100%;vertical-align: top;height: auto;border-width: 0px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;text-align: justify;font-family: Optima-Regular, PingFangTC-light;overflow-wrap: break-word !important;"><p style="text-align:center;margin: 5px 15px;max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;font-size: 18px;caret-color: rgb(255, 0, 0);letter-spacing: 2px;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p><section style="max-width: 100%;max-inline-size: 100%;letter-spacing: -1px;text-align: right;caret-color: rgb(255, 0, 0);font-size: 16px;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="margin-top: -20px;max-width: 100%;max-inline-size: 100%;border-width: 0px;border-style: none;border-color: initial;z-index: 0;text-align: center;justify-content: center;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;width: 270.797px;vertical-align: top;height: auto;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="max-width: 100%;max-inline-size: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;width: 89.3594px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="margin-top: 10px;max-width: 100%;max-inline-size: 100%;justify-content: center;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;overflow: hidden;height: 20px;width: 20px;background-color: rgb(160, 160, 160);border-width: 3px;border-radius: 100%;border-style: none;border-color: rgb(227, 125, 106);box-shadow: rgb(247, 212, 114) 0px 0px 0px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="max-width: 100%;max-inline-size: 100%;text-align: justify;font-size: 30px;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section></section><section style="max-width: 100%;max-inline-size: 100%;text-align: justify;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;width: 89.3594px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="margin-top: 10px;max-width: 100%;max-inline-size: 100%;justify-content: center;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;overflow: hidden;height: 20px;width: 20px;background-color: rgb(62, 62, 62);border-width: 3px;border-radius: 100%;border-style: none;border-color: rgb(227, 125, 106);box-shadow: rgb(247, 212, 114) 0px 0px 0px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="max-width: 100%;max-inline-size: 100%;text-align: justify;font-size: 30px;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section></section><section style="max-width: 100%;max-inline-size: 100%;text-align: justify;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;width: 89.3594px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="margin-top: 10px;max-width: 100%;max-inline-size: 100%;justify-content: center;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="box-sizing: border-box;max-width: 100%;max-inline-size: 100%;display: inline-block;vertical-align: top;overflow: hidden;height: 20px;width: 20px;background-color: rgb(160, 160, 160);border-width: 3px;border-radius: 100%;border-style: none;border-color: rgb(227, 125, 106);box-shadow: rgb(247, 212, 114) 0px 0px 0px;overflow-wrap: break-word !important;outline: none 0px !important;"><section style="max-width: 100%;max-inline-size: 100%;text-align: justify;font-size: 30px;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section></section></section></section></section></section></section><p style="text-align:right;max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;font-size: 18px;letter-spacing: -1px;caret-color: rgb(255, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p><p style="text-align:right;max-width: 100%;min-height: 1em;max-inline-size: 100%;cursor: text;font-size: 18px;letter-spacing: -1px;caret-color: rgb(255, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><br /></p></section></section></section><section style="margin-bottom: 5px;padding-right: 2em;padding-left: 2em;max-width: 100%;background-color: rgb(255, 255, 255);text-align: center;min-height: 1em;font-size: 16px;letter-spacing: 0.5px;font-family: Futura-Medium;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin: 5px 8px;max-width: 100%;letter-spacing: 2px;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 17px;background-color: rgb(56, 55, 54);font-family: PingFangSC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><em style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">&nbsp;+干货!&nbsp;</em></span></strong></span></section></section><section style="max-width: 100%;background-color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.5px;text-align: center;font-family: Optima-Regular, PingFangTC-light;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin: 5px 8px;max-width: 100%;letter-spacing: 2px;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(73, 73, 73);font-size: 14px;font-family: PingFangSC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">「 带你迈出学习实践的第一步」</span></section></section><section style="margin: 5px 8px;max-width: 100%;min-height: 1em;letter-spacing: 0.544px;line-height: 1.5em;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section><section data-role="outer" style="max-width: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;text-align: center;letter-spacing: 0.544px;font-size: 16px;font-family: Optima-Regular, PingFangTC-light;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;letter-spacing: 0.544px;overflow-wrap: break-word !important;"><section style="margin: 5px 8px;max-width: 100%;box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);letter-spacing: 1px;line-height: 1.5em;overflow-wrap: break-word !important;"><section style="box-sizing: border-box;max-width: 100%;display: inline-block;width: 100%;vertical-align: top;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;transform: translate3d(-25px, 0px, 0px);overflow-wrap: break-word !important;"><section style="box-sizing: border-box;max-width: 100%;display: inline-block;vertical-align: top;width: 273px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><p style="text-align:right;max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;"><br /></p></section></section></section></section></section></section></section></section></section></section><section data-role="outer" style="max-width: 100%;max-inline-size: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><section data-role="paragraph" style="max-width: 100%;max-inline-size: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><p style="max-width: 100%;min-height: 1em;text-align: center;max-inline-size: 100%;cursor: text;box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;"><span style="max-width: 100%;max-inline-size: 100%;cursor: text;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;outline: none 0px !important;">///</span></p></section></section><p style="margin-bottom: 20px;max-width: 100%;box-sizing: border-box;min-height: 1em;text-align: center;overflow-wrap: break-word !important;"><br /></p><p style="margin-bottom: 20px;max-width: 100%;box-sizing: border-box;min-height: 1em;text-align: center;overflow-wrap: break-word !important;"><img data-ratio="0.6611111111111111" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMdSiaRMgmjQDGZAeicfAic6Rt5ib5cTrkibTPiccLYfib27tTuBzicSyE1FicqyQ/640?wx_fmt=png" data-type="png" data-w="1080" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="01背景head.png" /></p><section data-tool="markdown编辑器" data-website="https://markdown.com.cn/editor" style="padding: 25px 30px;overflow-wrap: break-word;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &quot;PingFang SC&quot;, Cambria, Cochin, Georgia, Times, &quot;Times New Roman&quot;, serif;margin-top: -10px;line-height: 1.6;letter-spacing: 0.034em;color: rgb(63, 63, 63);font-size: 16px;"><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"></figure><section style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;margin-left: 0px;margin-right: 0px;"><span style="font-size: 14px;">今天我们来分享一次机器学习的体验,我们没有涉及过多的复杂模型,数据集也是特征数量不多的一份经典数据。但是如果你是刚刚入门的新手小白,这一套组合拳打下来你肯定会有不一样的体验,并且会加深你对这几个简单模型的理解。</span></section><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">准备工作</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">为了开始这次分析之旅,我们首先要做的是一些准备工作:</span></p><ol data-tool="markdown.com.cn编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;color: black;" class="list-paddingleft-2"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><span style="color: rgb(255, 255, 255);font-size: 14px;background-color: rgb(64, 118, 0);">下载数据</span><span style="font-size: 14px;"><br />我们可以直接从</span><span style="font-size: 14px;">kaggle</span><span style="font-size: 14px;"> &nbsp;获取这份数据集——华盛顿金县的售房数据</span></section></li></ol><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.48833333333333334" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMMM2xORswWdEGV0BRia1juQ9hElhTuBnhal7IJak4jcfUmNrXrYPFia3w/640?wx_fmt=jpeg" data-type="jpeg" data-w="1200" style="max-inline-size: 100%;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="02kaggle界面.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">kaggle界面</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">关于这个数据集我们可以做一个简单的字段介绍,</span></p><blockquote data-tool="markdown.com.cn编辑器" style="font-size: 0.9em;overflow: auto;background: rgb(251, 249, 253);color: rgb(106, 115, 125);margin-bottom: 20px;margin-top: 20px;padding: 15px 20px;line-height: 27px;border-left-color: rgb(53, 179, 120);"><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">id - Unique ID</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">date - Date of the home sale</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">price - 房屋价格</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">bedrooms - Number of bedrooms</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">bathrooms - Number of bathrooms, 其中0.5是一个带厕所但没有淋浴的房间</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_living - 居住面积</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_lot - 土地面积</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">floors - 楼层数</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">waterfront - 判断公寓是否能俯瞰海滨</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">view - 一个从0到4的指数,表示该物业的视野有多好</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">condition - 公寓的状况指数从1到5</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">grade - 指标1-13,1-3属于建筑施工设计水平,7属于施工设计水平平均,11-13属于施工设计质量水平较高。</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_above - 除去地下室面积的居住面积</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_basement - 地下室面积</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">yr_built - 房屋建筑年份</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">yr_renovated - 房屋最新翻新年份</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">zipcode - 邮编</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">lat - Lattitude</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">long - Longitude</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_living15 - 最近15个邻居的房屋居住面积</span></p><p style="line-height: 26px;font-size: 15px;color: rgb(89, 89, 89);"><span style="font-size: 14px;">sqft_lot15 - 最近15个邻居的房屋土地占用面积</span></p></blockquote><ol start="2" data-tool="markdown.com.cn编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;color: black;" class="list-paddingleft-2"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><p style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="color: rgb(255, 255, 255);font-size: 14px;background-color: rgb(64, 118, 0);">创建工作空间</span><span style="font-size: 14px;"><br />这是一个优秀的习惯,每次开始一个新项目,都新建</span><span style="letter-spacing: 0.034em;text-align: justify;font-size: 14px;">一个工作目录吧。这个时候还需要一些 Python 模块:Jupyter、NumPy、Pandas、Matplotlib 和 Scikit-Learn等。你可以使用系统的包管理系统(比如 Ubuntu 上的</span><code style="letter-spacing: 0.034em;text-align: justify;font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: &quot;Operator Mono&quot;, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(40, 202, 113);">apt-get</code><span style="letter-spacing: 0.034em;text-align: justify;font-size: 14px;">,或 macOS 上的 MacPorts 或 HomeBrew),安装一个 Python 科学计算环境比如 Anaconda,使用 Anaconda 的包管理系统,或者使用 Python 自己的包管理器</span><code style="letter-spacing: 0.034em;text-align: justify;font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: &quot;Operator Mono&quot;, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(40, 202, 113);">pip</code><span style="letter-spacing: 0.034em;text-align: justify;font-size: 14px;">,它是 Python 安装包自带的(如果在Windows环境要使用命令行工具最好要手动添加下环境变量,当然你完全可以使用anaconda 自带的命令行工具)。如果你希望在独立的环境中运行该项目可以使用virtualenv……,可以有效的避免包与包之间的版本冲突</span></p></section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><p style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="color: rgb(255, 255, 255);font-size: 14px;background-color: rgb(64, 118, 0);">导入模块以及读取数据</span><span style="font-size: 14px;">。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> numpy <span class="code-snippet__keyword">as</span> np</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> pandas <span class="code-snippet__keyword">as</span> pd </span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn.model_selection <span class="code-snippet__keyword">import</span> train_test_split</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn <span class="code-snippet__keyword">import</span> linear_model</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn.neighbors <span class="code-snippet__keyword">import</span> KNeighborsRegressor</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn.preprocessing <span class="code-snippet__keyword">import</span> PolynomialFeatures</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn <span class="code-snippet__keyword">import</span> metrics</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> sklearn.model_selection <span class="code-snippet__keyword">import</span> cross_val_score</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> matplotlib.pyplot <span class="code-snippet__keyword">as</span> plt</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> seaborn <span class="code-snippet__keyword">as</span> sns</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> mpl_toolkits.mplot3d <span class="code-snippet__keyword">import</span> Axes3D</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> folium</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> folium.plugins <span class="code-snippet__keyword">import</span> HeatMap</span></code><code><span class="code-snippet_outer">%matplotlib inline</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> warnings</span></code><code><span class="code-snippet_outer">warnings.filterwarnings(<span class="code-snippet__string">'ignore'</span>)</span></code><code style="white-space:pre-wrap;overflow-wrap: break-word;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);word-break: break-all;color: rgb(40, 202, 113);display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;overflow-wrap: break-word;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);word-break: break-all;color: rgb(40, 202, 113);display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">evaluation = pd.DataFrame({<span class="code-snippet__string">'Model'</span>: [],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'Details'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'Root Mean Squared Error (RMSE)'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'R-squared (training)'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'Adjusted R-squared (training)'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'R-squared (test)'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'Adjusted R-squared (test)'</span>:[],</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__string">'5-Fold Cross Validation'</span>:[]})</span></code><code style="white-space:pre-wrap;overflow-wrap: break-word;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);word-break: break-all;color: rgb(40, 202, 113);display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">df = pd.read_csv(<span class="code-snippet__string">r"kc_house_data.csv"</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">#df.describe()</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">#df.info()</span></span></code><code><span class="code-snippet_outer">df.head()</span></code></pre></section><figure style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.22151394422310758" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMgbSTnTfEAz9nv93jEYqRGWESBwRfBpwplJSFxmqv7bYyFFsdvOfIAg/640?wx_fmt=png" data-type="png" data-w="1255" style="max-inline-size: 100%;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="03table-1.jpg" /><br /></figcaption></figure></section><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><figure style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">table-1</figcaption></figure><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;overflow-wrap: break-word;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);word-break: break-all;color: rgb(40, 202, 113);display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df.columns</span></code></pre></section><figure style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.14868421052631578" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMAKBsKVE3ZM6TvZiabwcVKYsT9lxiazuev1jfPkp3INTQbFY9vQ3FISbw/640?wx_fmt=png" data-type="png" data-w="760" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="04字段名.jpg" /><br /></figcaption></figure></section><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><figure style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">字段名</figcaption></figure></section></li></ol><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">定义一个评估 Adjusted <span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -833.9 1162.6 854.9" aria-hidden="true" style="vertical-align: -0.048ex;width: 2.63ex;height: 1.934ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 363) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></g></svg></span>的函数</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">当特征数量增加时,<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -833.9 1162.6 854.9" aria-hidden="true" style="vertical-align: -0.048ex;width: 2.63ex;height: 1.934ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 363) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></g></svg></span>增加。因此,有时我们会使用更强大的评估指标来比较不同模型之间的性能。该评估指标称为adjusted <span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -833.9 1162.6 854.9" aria-hidden="true" style="vertical-align: -0.048ex;width: 2.63ex;height: 1.934ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 363) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></g></svg></span>,并且只有在变量的增加降低了MSE的情况下,它才增加。adjusted <span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -833.9 1162.6 854.9" aria-hidden="true" style="vertical-align: -0.048ex;width: 2.63ex;height: 1.934ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 363) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></g></svg></span>的定义如下:</span></p><span style="cursor: pointer;font-size: 14px;"><section role="presentation" data-formula="\bar{R^{2}}=R^{2}-\frac{k-1}{n-k}(1-R^{2})

" data-formula-type="block-equation" style="text-align: center;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -1370 11327.5 2138" aria-hidden="true" style="-webkit-overflow-scrolling: touch;vertical-align: -1.738ex;width: 25.628ex;height: 4.837ex;max-width: 300% !important;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mover"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 413) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><g data-mml-node="mo" transform="translate(414.6, 399.9)"><path data-c="AF" d="M69 544V590H430V544H69Z"></path></g></g></g><g data-mml-node="mo" transform="translate(1440.3, 0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="msup" transform="translate(2496.1, 0)"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 413) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><g data-mml-node="mo" transform="translate(3880.9, 0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mfrac" transform="translate(4881.1, 0)"><g data-mml-node="mrow" transform="translate(270, 676)"><g data-mml-node="mi"><path data-c="6B" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mo" transform="translate(743.2, 0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(1743.4, 0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g><g data-mml-node="mrow" transform="translate(220, -686)"><g data-mml-node="mi"><path data-c="6E" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(822.2, 0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mi" transform="translate(1822.4, 0)"><path data-c="6B" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g></g><rect width="2543.4" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(7664.6, 0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mn" transform="translate(8053.6, 0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mo" transform="translate(8775.8, 0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="msup" transform="translate(9776, 0)"><g data-mml-node="mi"><path data-c="52" d="M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"></path></g><g data-mml-node="TeXAtom" transform="translate(759, 413) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><g data-mml-node="mo" transform="translate(10938.5, 0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g></g></g></svg></section></span><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">其中<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -442 600 453" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.357ex;height: 1.025ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="6E" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></span>是观察数,<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -694 521 705" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.179ex;height: 1.595ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="6B" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g></g></g></svg></span>是参数。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">def adjustedR2(r2,n,k):</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> return r2-(k-1)/(n-k)*(1-r2)</span></code></pre></section><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">一个简单的线性回归模型</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">当我们对目标变量和<strong style="line-height: 1.75em;">一个</strong>解释变量之间的线性关系进行建模时,这称为“简单线性回归”。我想预测房价,然后我们的目标变量是价格。但是,对于简单模型,我们还需要选择一个功能。当我查看数据集的列时,居住面积(sqft)似乎是最重要的功能。当我们检查</span><span style="font-size: 14px;">相关矩阵</span><span style="font-size: 14px;">时,我们可能会发现价格与&nbsp;居住面积(sqft)具有最高的相关系数,这也支持了我的观点。因此,我决定使用<strong style="line-height: 1.75em;">居住面积(sqft)</strong> 作为特征,但如果您要检查价格与其他特征之间的关系,则可能会使用该特征。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">#%%capture</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">train_data,test_data = train_test_split(df,train_size = 0.8,random_state=3)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">lr = linear_model.LinearRegression()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_train = np.array(train_data['sqft_living'], dtype=pd.Series).reshape(-1,1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">y_train = np.array(train_data['price'], dtype=pd.Series)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">lr.fit(X_train,y_train)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_test = np.array(test_data['sqft_living'], dtype=pd.Series).reshape(-1,1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">y_test = np.array(test_data['price'], dtype=pd.Series)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = lr.predict(X_test)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsesm = float(format(np.sqrt(metrics.mean_squared_error(y_test,pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrsm = float(format(lr.score(X_train, y_train),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtesm = float(format(lr.score(X_test, y_test),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv = float(format(cross_val_score(lr,df[['sqft_living']],df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print ("Average Price for Test Data: {:.3f}".format(y_test.mean()))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Intercept: {}'.format(lr.intercept_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Coefficient: {}'.format(lr.coef_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Simple Linear Regression','-',rmsesm,rtrsm,'-',rtesm,'-',cv]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.17194928684627575" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMeycE9XRwwC7EUWz5pKXXegfqjnVqicjLJTmhvl6NE1DNicN3Gw2BaWIA/640?wx_fmt=png" data-type="png" data-w="1262" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="05简单线性回归指标.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">简单线性回归指标</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">我还打印了简单线性回归的截距(intercept)和相关系数(Coefficient)。通过使用这些值和下面的定义,我们可以手动估计房价。我们用于估计的方程称为假设函数,定义为:</span></p><span style="cursor:pointer;" data-tool="markdown.com.cn编辑器"><section role="presentation" data-formula="h_{\theta}(X)=\theta_{0}+\theta_{1}x

" data-formula-type="block-equation" style="text-align: center;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -750 7460.7 1000" aria-hidden="true" style="-webkit-overflow-scrolling: touch;vertical-align: -0.566ex;width: 16.88ex;height: 2.262ex;max-width: 300% !important;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="68" d="M137 683Q138 683 209 688T282 694Q294 694 294 685Q294 674 258 534Q220 386 220 383Q220 381 227 388Q288 442 357 442Q411 442 444 415T478 336Q478 285 440 178T402 50Q403 36 407 31T422 26Q450 26 474 56T513 138Q516 149 519 151T535 153Q555 153 555 145Q555 144 551 130Q535 71 500 33Q466 -10 419 -10H414Q367 -10 346 17T325 74Q325 90 361 192T398 345Q398 404 354 404H349Q266 404 205 306L198 293L164 158Q132 28 127 16Q114 -11 83 -11Q69 -11 59 -2T48 16Q48 30 121 320L195 616Q195 629 188 632T149 637H128Q122 643 122 645T124 664Q129 683 137 683Z"></path></g><g data-mml-node="TeXAtom" transform="translate(576, -150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="3B8" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g></g></g><g data-mml-node="mo" transform="translate(957.6, 0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mi" transform="translate(1346.6, 0)"><path data-c="58" d="M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z"></path></g><g data-mml-node="mo" transform="translate(2198.6, 0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g><g data-mml-node="mo" transform="translate(2865.4, 0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="msub" transform="translate(3921.2, 0)"><g data-mml-node="mi"><path data-c="3B8" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g><g data-mml-node="TeXAtom" transform="translate(469, -150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></g></g></g><g data-mml-node="mo" transform="translate(5016, 0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="msub" transform="translate(6016.2, 0)"><g data-mml-node="mi"><path data-c="3B8" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g><g data-mml-node="TeXAtom" transform="translate(469, -150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g></g><g data-mml-node="mi" transform="translate(6888.7, 0)"><path data-c="78" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g></g></g></svg></section></span><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">预测结果</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">因为在简单线性回归中我们只用<strong style="line-height: 1.75em;">两个</strong>维度——房价和居住面积,所以很容易可视化。下图就是简单回归的可视化结果。它看起来并不像一个完美的拟合,但当我们处理真实世界的数据集时,得到一个完美的数据拟合并不是很容易。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.set(style="white", font_scale=1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.figure(figsize=(6.5,6.5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.scatter(X_test,y_test,color='darkgreen',label="Data", alpha=.1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.plot(X_test,lr.predict(X_test),color="#32c9a3",label="Predicted Regression Line")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.xlabel("Living Space (sqft)", fontsize=15)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.ylabel("Price ($)", fontsize=15)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.xticks(fontsize=13)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.yticks(fontsize=13)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.legend()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.gca().spines['right'].set_visible(False)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.gca().spines['top'].set_visible(False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="1.0145631067961165" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMEgtCT9h37fBYlr57SOHvOvrFibzCn1FvyJTd0xfaicNSeSKHqmjl0vFg/640?wx_fmt=png" data-type="png" data-w="412" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="06简单线性回归拟合结果.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">简单线性回归拟合结果</figcaption></figure><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">EDA</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">这个数据不是很大,我们也没有太多的特征。因此,我们可以绘制它们中的大多数特征,并得到一些有用的分析结果。在应用模型之前画图并检查数据是一个非常好的习惯,因为我们可能会发现一些可能的异常值,决定是否进行归一化操作。这不是必须要做的工作,但了解你的数据总是好的。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">首先我们来检查一下数据集有没有缺失值。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df.isnull().sum(axis=1).sort_values(ascending=False).head(10)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.3267605633802817" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMapx8xRYsd75JErXLd3mHAbGDqWJK0HHQzcsS1nPzUsT05gcRSj0S9g/640?wx_fmt=png" data-type="png" data-w="710" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="07缺失值检测结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">缺失值检测结果</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">perfect!没有一个缺失值!</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">由于维度过多,先从直观感觉对数据进行可视化,可以看到众多字段中,和房价有强关联的字段肯定带有sqft的字段,为什么呢,因为这个sqft是平方英尺的单位,所以我们直接用seaborn的pairplot方法将多数的字段散点化,看看究竟哪些字段同price有较强的相关性。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.set()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cols = ['price', 'sqft_living', 'sqft_lot', 'condition', 'sqft_basement',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'yr_built', 'yr_renovated', 'sqft_above', 'sqft_living15', 'sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.pairplot(df[cols], size=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.show()</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="1" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMBXF198FjVlEOjOnIERHIgS7EzgWxdicv45kPwL8LwttIfeOvnia2ict7A/640?wx_fmt=png" data-type="png" data-w="1413" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="08多变量pairplot.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多变量pairplot</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">此时我们可以看出sqft_living和sqft_above两个特征对price字段的正向相关性很强,所以我们现在可以再来细看这两个特征的分布,可以看出sqft_living的分布呈现出较为明显正向分布,并且数据样本很紧凑,而sqft_above的分布更为松散,离群点较前者稍微多一点,可以合理的推测这两个特征是有相关性的。</span></p><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.10411311053984576" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMbR5yAFoUMCtoonHoAmAYuLuWTibFLoA1U5OEbsnsuATJic6iahsDFn8WA/640?wx_fmt=png" data-type="png" data-w="1556" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="09price局部分析plot.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">price局部分析plot</figcaption></figure><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">fig=plt.figure(figsize=(15,6))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.subplot2grid((1,2),(0,0))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.scatter(df.sqft_living,df.price,alpha=0.4,marker='o')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.xlabel('sqft_living')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.ylabel('price')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.subplot2grid((1,2),(0,1))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.scatter(df.sqft_above,df.price,alpha=0.4,marker='o')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.xlabel('sqft_above')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.ylabel('price')</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.43473325766174803" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMWYOetYmzUuNxjbb7yqJUEjL7CwKVxRxv7bMFWiatic5SU9XiafuHUSuzw/640?wx_fmt=png" data-type="png" data-w="881" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="10双变量具体分布.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">双变量具体分布</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">为了更好的表现出卧室、楼层或浴室/卧室同价格字段之间是否有联系,我更喜欢<strong style="line-height: 1.75em;">箱线图</strong>这种图表形式</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">从下面的图表中可以看到,很少有房子的些特征出现像33间卧室或价格在700万左右。然而,我们要确定它们负面影响是很难的,在真实的数据集中,总是会存在一些异常值,比如这个数据集中的一些豪宅价格。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.set(style="whitegrid", font_scale=1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, axes = plt.subplots(1, 2,figsize=(15,5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['bedrooms'],y=df['price'], ax=axes[0])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['floors'],y=df['price'], ax=axes[1])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.despine(left=True, bottom=True)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].set(xlabel='Bedrooms', ylabel='Price')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].yaxis.tick_left()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.set_label_position("right")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.tick_right()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].set(xlabel='Floors', ylabel='Price')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, axe = plt.subplots(1, 1,figsize=(12.18,5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.despine(left=True, bottom=True)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['bathrooms'],y=df['price'], ax=axe)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axe.yaxis.tick_left()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axe.set(xlabel='Bathrooms / Bedrooms', ylabel='Price');</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.3626373626373626" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMTZNWyeB6opZasT11Gqe1BTglSuJo95S9LIoobSaXR94ZNZM52ljleA/640?wx_fmt=png" data-type="png" data-w="910" style="max-inline-size: 100%;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="11两种特征的箱型图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.45643153526970953" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMqDZKGWTJfxcwIUT5q2ib7akmsXZDffeu7pv2cKu28WgnRCtLmmRvibYA/640?wx_fmt=png" data-type="png" data-w="723" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="12一种特征的箱型图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">三种特征的箱型图</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">我画了价格和一些特征的图,但是发现价格和这些特征之间似乎没有一个完美(直白)的线性关系。另一方面,他们之间的关系是怎样的?为了显示这一点,还有一种途径是画3D图。另外,我用浅绿色作为点色。深绿色部分表示密度高,许多浅绿色点重叠,颜色变深。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">下面的图表显示,当sqrt_living增加时,sqrt_lot和卧室或浴室/卧室增加。然而,地板、卧室和浴室/卧室或sqrt_living没有类似的关系。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">fig=plt.figure(figsize=(19,12.5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax=fig.add_subplot(2,2,1, projection="3d")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.scatter(df['floors'],df['bedrooms'],df['bathrooms'],c="darkgreen",alpha=.5)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(xlabel='\nFloors',ylabel='\nBedrooms',zlabel='\nBathrooms / Bedrooms')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(ylim=[0,12])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax=fig.add_subplot(2,2,2, projection="3d")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.scatter(df['floors'],df['bedrooms'],df['sqft_living'],c="darkgreen",alpha=.5)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(xlabel='\nFloors',ylabel='\nBedrooms',zlabel='\nsqft Living')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(ylim=[0,12])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax=fig.add_subplot(2,2,3, projection="3d")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.scatter(df['sqft_living'],df['sqft_lot'],df['bathrooms'],c="darkgreen",alpha=.5)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(xlabel='\n sqft Living',ylabel='\nsqft Lot',zlabel='\nBathrooms / Bedrooms')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(ylim=[0,250000])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax=fig.add_subplot(2,2,4, projection="3d")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.scatter(df['sqft_living'],df['sqft_lot'],df['bedrooms'],c="darkgreen",alpha=.5)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(xlabel='\n sqft Living',ylabel='\nsqft Lot',zlabel='Bedrooms')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(ylim=[0,250000]);</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.7467948717948718" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMM4nE8cGveHoqBjLmCkpsMDOiaibBoF0VywVgjH23Fvfl60VafwBIgO9w/640?wx_fmt=png" data-type="png" data-w="936" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="13四个指标的3D散点图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">四个指标的3D散点图</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">让我们可视化出来更多的特征。当我们看下面的箱形图时,等级和滨水系数的影响显而易见。另一方面,视野系数似乎影响较小,但它也对价格有影响。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, axes = plt.subplots(1, 2,figsize=(15,5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['waterfront'],y=df['price'], ax=axes[0])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['view'],y=df['price'], ax=axes[1])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.despine(left=True, bottom=True)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].set(xlabel='Waterfront', ylabel='Price')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].yaxis.tick_left()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.set_label_position("right")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.tick_right()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].set(xlabel='View', ylabel='Price')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, axe = plt.subplots(1, 1,figsize=(12.18,5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.boxplot(x=df['grade'],y=df['price'], ax=axe)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.despine(left=True, bottom=True)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axe.yaxis.tick_left()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axe.set(xlabel='Grade', ylabel='Price');</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.3626373626373626" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMbFgGhSAMvSNGyRdQp2h2sPZiaEHicqCf3UkkwSnia9YNgm8jsfoSG9WRg/640?wx_fmt=png" data-type="png" data-w="910" style="max-inline-size: 100%;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="14两个指标的箱型图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">两个指标的箱型图</figcaption></figure><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.45643153526970953" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMd3nAl6v7ZwJTkZibetMb4ypmJ3v3gBer4ItQia4ibicH2US0o2c3Eg1oRA/640?wx_fmt=png" data-type="png" data-w="723" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="15一个指标的箱型图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">一个指标的箱型图</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">进一步,我绘制了3D图来确定视野系数、施工质量等级和建造年份之间的关系。下面的图表显示,较新的房子有更好的等级,但关于视图的变化没有什么明显的关系。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">fig=plt.figure(figsize=(9.5,6.25))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax=fig.add_subplot(1,1,1, projection="3d")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.scatter(train_data['view'],train_data['grade'],train_data['yr_built'],c="darkgreen",alpha=.5)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">ax.set(xlabel='\nView',ylabel='\nGrade',zlabel='\nYear Built');</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.917312661498708" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMgGewf5FvQyzCfbthw5Mhzu94Nwpu4BsuuMo6licH4M6WmcS65O2prXg/640?wx_fmt=png" data-type="png" data-w="387" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="16三个指标的关系3D图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">三个指标的关系3D图</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">在这个数据集中,我们有房屋的纬度和经度信息。通过使用纬度和经度,我们能能够运行出下面的热力图,这对于那些初次了解西雅图的人非常有用。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># find the row of the house which has the highest price</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">maxpr=df.loc[df['price'].idxmax()]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># define a function to draw a basemap easily</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">def generateBaseMap(default_location=[47.5112, -122.257], default_zoom_start=9.4):</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> base_map = folium.Map(location=default_location, control_scale=True, zoom_start=default_zoom_start)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> return base_map</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_copy = df.copy()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># select a zipcode for the heatmap</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># set(df['zipcode'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># df_copy = df[df['zipcode']==98001].copy()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_copy['count'] = 1</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">basemap = generateBaseMap()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># add carton position map</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">folium.TileLayer('cartodbpositron').add_to(basemap)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">s=folium.FeatureGroup(name='icon').add_to(basemap)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># add a marker for the house which has the highest price</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">folium.Marker([maxpr['lat'], maxpr['long']],popup='Highest Price: $'+str(format(maxpr['price'],'.0f')),</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> icon=folium.Icon(color='green')).add_to(s)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># add heatmap</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">HeatMap(data=df_copy[['lat','long','count']].groupby(['lat','long']).sum().reset_index().values.tolist(),</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> radius=8,max_zoom=13,name='Heat Map').add_to(basemap)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">folium.LayerControl(collapsed=False).add_to(basemap)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">basemap</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.6033333333333334" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMbr6Vrics5wCsOJt9XpI4h7tBhRjfj3mKffvNfhANhVITeCU2hOlUOdQ/640?wx_fmt=jpeg" data-type="jpeg" data-w="1200" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="17basemap.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">basemap</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;text-align: justify;"><span style="font-size: 14px;">在一个模型中有太多的特征并不总是一件好事,因为当我们想要预测一个新数据集的值时,它可能会导致过拟合和更糟糕的结果。因此,如果一个特征不是很重要,那么干脆删掉它。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;text-align: justify;"><span style="font-size: 14px;">另一个重要的因素是相关性。如果两个特征之间的相关性非常高,那么保留它们都不是一个好主意,因为大多数情况下会导致过拟合。例如,如果存在过拟合,我们可以删除sqft_above或sqft_living,因为它们高度相关。当我们查看数据集中的定义时,可以估计出这种关系,但为了确保万一,我们还是要手动检查一下相关矩阵。然而,这并不意味着您必须删除高度相关的特性之一。例如:浴室和sqrt_living。它们是高度相关的,但是我认为它们之间的关系并不像sqft_living和sqft_above之间的关系一样。对于存在相关性的特征,我们要针对个别情况个别分析。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['price','bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'view','condition','grade','sqft_above','sqft_basement','yr_built','yr_renovated',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># 使用np.triu_indices_from构建一个上三角矩阵,当掩膜数据</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">mask = np.zeros_like(df[features].corr(), dtype=np.bool) </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">mask[np.triu_indices_from(mask)] = True </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, ax = plt.subplots(figsize=(16, 12))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">plt.title('Pearson Correlation Matrix',fontsize=25)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.heatmap(df[features].corr(),linewidths=0.25,vmax=0.7,square=True,cmap="BuGn", #"BuGn_r" to reverse </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> linecolor='w',annot=True,annot_kws={"size":8},mask=mask,cbar_kws={"shrink": .9});</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.9038686987104337" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMwbxqLAa3et5ANI9NtIv1KvunfSq18ssPvLrzk2WJriaVYYhoX7PY9GQ/640?wx_fmt=png" data-type="png" data-w="853" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="18相关系数表.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">相关系数表</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">接下来我们可以看到一些有意思的数据</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer">plt.figure(figsize=(16,10))</span></code><code><span class="code-snippet_outer">sns.boxplot(x='yr_built', y='price', data=df)</span></code><code><span class="code-snippet_outer">plt.xticks(rotation=90)</span></code><code><span class="code-snippet_outer">plt.title('建筑年份和售价')</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.6606189967982924" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibh5iafuLQd7PZMjdr8icrnI5hbNsr5wTQeXmXkTd745ViaqM8dAUc6cSw/640?wx_fmt=png" data-type="png" data-w="937" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="19年份箱型图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">年份箱型图</figcaption></figure><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">可以看到1933年,1943年,1984年,2009年的房价有些异常,从查阅到的资料了解到:而1929年至1941年左右是美国大萧条,市场处于混乱状态。1941年至1945年美国处于战时管理的阶段,市场活力收到冲击,资源配置也收到影响。1981年颁布了《经济复苏税收法》,促使房价节节攀升。2008年美国次贷危机,房地产泡沫再次崩溃。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">好了,以上做的所有工作都是为了接下来要做的事情做准备。</span></p><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">数据处理</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">对数据进行预处理可以提高模型的精度,使模型更加可靠。它并不一定会改进我们的结果,但当我们意识到某些特征的重要性并用以适合的输入时,我们可能更容易得到一些结果。我们可以选择各种数据挖掘技术,如转换或标准化,在这里我们使用了装箱,并创建一个新的dataframe并命名为<em><strong>df_dm</strong></em>。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm=df.copy()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm.describe()</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.2610410094637224" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMQr4eT7vuRMjzF3vsPrGGjtKCbhXmic40E7rnI3NuKCNZaCl2Pfl4nng/640?wx_fmt=png" data-type="png" data-w="1268" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="20处理结果图.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">处理结果图</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">装箱</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">数据装箱,也称数据分箱,是一种用于减少微小观测误差的影响的预处理技术。这种技术可以应用于此数据集的某些字段。在下面,我对<em style="color: black;">yr_built</em>和<em style="color: black;">yr_restored</em>使用了装箱。我添加了房屋出售时的年代和翻新年代。此外,我将这些列划分为间隔,你可以在下面的<strong style="line-height: 1.75em;">直方图中</strong>看到这一点。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># just take the year from the date column</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['sales_yr']=df_dm['date'].astype(str).str[:4]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># add the age of the buildings when the houses were sold as a new column</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age']=df_dm['sales_yr'].astype(int)-df_dm['yr_built']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># add the age of the renovation when the houses were sold as a new column</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age_rnv']=0</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age_rnv']=df_dm['sales_yr'][df_dm['yr_renovated']!=0].astype(int)-df_dm['yr_renovated'][df_dm['yr_renovated']!=0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age_rnv'][df_dm['age_rnv'].isnull()]=0</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># partition the age into bins</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">bins = [-2,0,5,10,25,50,75,100,100000]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">labels = ['&lt;1','1-5','6-10','11-25','26-50','51-75','76-100','&gt;100']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age_binned'] = pd.cut(df_dm['age'], bins=bins, labels=labels)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># partition the age_rnv into bins</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">bins = [-2,0,5,10,25,50,75,100000]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">labels = ['&lt;1','1-5','6-10','11-25','26-50','51-75','&gt;75']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm['age_rnv_binned'] = pd.cut(df_dm['age_rnv'], bins=bins, labels=labels)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># histograms for the binned columns</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">f, axes = plt.subplots(1, 2,figsize=(15,5))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">p1=sns.countplot(df_dm['age_binned'],ax=axes[0])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">for p in p1.patches:</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> height = p.get_height()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> p1.text(p.get_x()+p.get_width()/2,height + 50,height,ha="center") </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">p2=sns.countplot(df_dm['age_rnv_binned'],ax=axes[1])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">sns.despine(left=True, bottom=True)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">for p in p2.patches:</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> height = p.get_height()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> p2.text(p.get_x()+p.get_width()/2,height + 200,height,ha="center")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].set(xlabel='Age')</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[0].yaxis.tick_left()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.set_label_position("right")</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].yaxis.tick_right()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">axes[1].set(xlabel='Renovation Age');</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"># transform the factor values to be able to use in the model</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">df_dm = pd.get_dummies(df_dm, columns=['age_binned','age_rnv_binned'])</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.5079702444208289" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMEbRKmMsq9wLSoTGJ76iasibBySPxe7IjkxFRwjVwmSLTpEqnLCFmBhzw/640?wx_fmt=png" data-type="png" data-w="941" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="21装箱结果直方图.png" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">装箱结果直方图</figcaption></figure><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">多元回归</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">我使用了一个</span><span style="font-size: 14px;">简单线性回归</span><span style="font-size: 14px;">,发现还是略微欠拟合。为了改进这个模型,我们可以计划添加更多的特征。当我们在一个简单线性回归中有<strong style="line-height: 1.75em;">多个</strong>特征时,它就变成了<strong style="line-height: 1.75em;">多变量回归</strong>。接下来,我们该搞一些复杂的模型了。</span></p><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">1.多元回归-1</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">通过看到上文中数据的第一感觉我们可以确定下来一些<em><strong>特征</strong></em>,并使用在第一个多元线性回归。在简单回归中,我打印了模型用于预测的系数。但是,如果我们想要手动计算的话,那么你就得认识下面的线性回归模型。</span></p><span style="cursor:pointer;" data-tool="markdown.com.cn编辑器"><section role="presentation" data-formula="h_{\theta}(X)=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+...+\theta_{n}x_{n}

" data-formula-type="block-equation" style="text-align: center;"><embed style="vertical-align: -0.566ex;width: 35.779ex;height: auto;max-width: 300% !important;" src="https://mmbiz.qlogo.cn/mmbiz_svg/5cJ329xUeTxpriaRh4WdC2KBnbAic8FKYjGje8hVyppicRqBOxo4RPKCPzkySIRxXhprSQCsqojOOyhmR7Orf60XIUv5INs5v6T/0?wx_fmt=svg" data-type="svg+xml"></embed></section></span><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">train_data_dm,test_data_dm = train_test_split(df_dm,train_size = 0.8,random_state=3)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','zipcode']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_1 = linear_model.LinearRegression()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_1.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Intercept: {}'.format(complex_model_1.intercept_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Coefficients: {}'.format(complex_model_1.coef_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = complex_model_1.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm = float(format(complex_model_1.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm = float(format(adjustedR2(complex_model_1.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm = float(format(complex_model_1.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm = float(format(adjustedR2(complex_model_1.score(test_data_dm[features],test_data['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv = float(format(cross_val_score(complex_model_1,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Multiple Regression-1','selected features',rmsecm,rtrcm,artrcm,rtecm,artecm,cv]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.39738562091503266" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMvVIBXBC9lgFPRkLKiaZppS8ynJW7VGIjR5dwRCZqUG4ia4URZeBlNicmg/640?wx_fmt=png" data-type="png" data-w="765" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="22多元回归-1结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多元回归-1结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">2.多元回归-2</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">相比上面的第一个多变量回归模型,这次我在<em><strong>特征</strong></em>列表中添加了更多的特征。这次,不仅可以从打印出来的指标,还是查看评估指标表时,它都有了显著的改进。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront','view',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'grade','age_binned_&lt;1', 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_26-50', 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_2 = linear_model.LinearRegression()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_2.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Intercept: {}'.format(complex_model_2.intercept_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Coefficients: {}'.format(complex_model_2.coef_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = complex_model_2.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm = float(format(complex_model_2.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm = float(format(adjustedR2(complex_model_2.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm = float(format(complex_model_2.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm = float(format(adjustedR2(complex_model_2.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv = float(format(cross_val_score(complex_model_2,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Multiple Regression-2','selected features',rmsecm,rtrcm,artrcm,rtecm,artecm,cv]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.6976439790575916" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMjPRBnibvBm1bWAmHAGAdMGt5YTR0M3ZZeoPZZk97pSBZzLPtgzEr4FQ/640?wx_fmt=png" data-type="png" data-w="764" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="23多元回归-2结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多元回归-2结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">3.多元回归 - 3</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">为了更直观的观察到模型之间的差异,第三个模型在没有任何数据预处理的前提下,我们选择了所有的特征。这个时候评估指标又有了显著性的提高。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront','view',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'condition','grade','sqft_above','sqft_basement','yr_built','yr_renovated',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_3 = linear_model.LinearRegression()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_3.fit(train_data[features],train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Intercept: {}'.format(complex_model_3.intercept_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Coefficients: {}'.format(complex_model_3.coef_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = complex_model_3.predict(test_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm = float(format(np.sqrt(metrics.mean_squared_error(test_data['price'],pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm = float(format(complex_model_3.score(train_data[features],train_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm = float(format(adjustedR2(complex_model_3.score(train_data[features],train_data['price']),train_data.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm = float(format(complex_model_3.score(test_data[features],test_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm = float(format(adjustedR2(complex_model_3.score(test_data[features],test_data['price']),test_data.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv = float(format(cross_val_score(complex_model_3,df[features],df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Multiple Regression-3','all features, no preprocessing',rmsecm,rtrcm,artrcm,rtecm,artecm,cv]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.6459948320413437" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMEunxRFfutbSp3Vpkl9mWjaYkZ6MV1NTjvd4tkb4Am7BrRI0JCAxwyA/640?wx_fmt=png" data-type="png" data-w="774" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="24多元回归-3结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多元回归-3结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">4.多元回归 - 4</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">这一次我们就直接使用全部特征,并且加以数据预处理。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'view','condition','grade','sqft_above','sqft_basement','age_binned_&lt;1', </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', 'age_binned_26-50',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100','age_rnv_binned_&lt;1',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_1-5', 'age_rnv_binned_6-10', 'age_rnv_binned_11-25',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_26-50', 'age_rnv_binned_51-75', 'age_rnv_binned_&gt;75',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_4 = linear_model.LinearRegression()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_4.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Intercept: {}'.format(complex_model_4.intercept_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">print('Coefficients: {}'.format(complex_model_4.coef_))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = complex_model_4.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm = float(format(complex_model_4.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm = float(format(adjustedR2(complex_model_4.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm = float(format(complex_model_4.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm = float(format(adjustedR2(complex_model_4.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv = float(format(cross_val_score(complex_model_4,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Multiple Regression-4','all features',rmsecm,rtrcm,artrcm,rtecm,artecm,cv]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.5421974522292994" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMpb4ocbxI4qK4vEKHibzQJMLKADI7ic0OZaC0t1wxKLazTqW43G4gjE7g/640?wx_fmt=png" data-type="png" data-w="1256" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="25多元回归-4结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多元回归-4结果</figcaption></figure><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">正则化操作</span></h1><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;"><strong style="line-height: 1.75em;">正则化</strong>是用来解决过拟合和欠拟合问题的。<strong style="line-height: 1.75em;">过拟合</strong>意味着高方差,通常是由一个复杂的函数造成的,它会产生很多不必要的曲线和角度,而这些曲线和角度与数据无关。这个函数能很好地匹配训练数据,但可能会导致测试集的结果不理想。另一方面,<strong style="line-height: 1.75em;">欠拟合</strong>意味着低方差和一个非常简单的模型,这也意味它面对测试集(新数据)的适合泛化能力相当差。<strong style="line-height: 1.75em;">我们可以采取的补救措施</strong>是手动调整特征或者使用一些模型选择算法,当然这会带来额外的工作量。相反,当我们应用正则化时,所有的特征都被保留,模型调整<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -705 810.3 999.2" aria-hidden="true" style="vertical-align: -0.666ex;width: 1.833ex;height: 2.261ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="3B8" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g><g data-mml-node="TeXAtom" transform="translate(469, -150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="6A" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g></g></g></svg></span>。当我们有很多稍微有点用的特征时,这种方法尤其有效。有两种广泛使用的正则化的线性模型(Ridge和Lasso regression),接下来我们一一尝试。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;"><strong style="line-height: 1.75em;">我们什么时候应该选择这两种模型呢:</strong></span></p><ul data-tool="markdown.com.cn编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;color: black;" class="list-paddingleft-2"><li style="font-size: 14px;"><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><span style="font-size: 14px;">大量分布中等重要性特征: &nbsp;<em style="color: black;">ridge</em>.</span></section></li><li style="font-size: 14px;"><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;color: rgb(1, 1, 1);"><span style="font-size: 14px;">只有少量的变量但是却比较重要: &nbsp;<em style="color: black;">lasso</em>.</span></section></li></ul><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">1.Ridge Regression</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">岭回归又被称为L2正则化,通过添加一个惩罚,我们得到以下方程</span></p><span style="cursor: pointer;font-size: 14px;"><section role="presentation" data-formula="RSS_{RIDGE} = \sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^{2} + \alpha \sum_{j=1}^{n}\theta^{2}_{j}

" data-formula-type="block-equation" style="text-align: center;"><embed style="vertical-align: -3.014ex;width: 40.093ex;height: auto;max-width: 300% !important;" src="https://mmbiz.qlogo.cn/mmbiz_svg/5cJ329xUeTxpriaRh4WdC2KBnbAic8FKYjtOZOx4iaH70TdfORrU5ZcwDFBqxu2IPWa1Rf3LJXwS4ArbZjN9ibhxibiawBgslcB5sl/0?wx_fmt=svg" data-type="svg+xml"></embed></section></span><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">通过改变<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -442 640 453" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.448ex;height: 1.025ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="3B1" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></span>值,我们可以控制正则化的强度。在这里我做一个简单的说明,超参数α决定了你想正则化这个模型的强度。如果α = 0那此时的岭回归便变为了线性回归。如果α非常的大,所有的权重最后都接近于零,最后结果将是一条穿过数据平均值的水平直线。当我们增加<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -442 640 453" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.448ex;height: 1.025ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="3B1" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></span>时,正则化的强度也会增加,反之亦然。因此,我选择了不同的<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -442 640 453" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.448ex;height: 1.025ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="3B1" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></span>值,并使用线性回归而不是正则化,以方便观察差异。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code><span class="code-snippet_outer"> 'view','condition','grade','sqft_above','sqft_basement','age_binned_&lt;1', </span></code><code><span class="code-snippet_outer"> 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', 'age_binned_26-50',</span></code><code><span class="code-snippet_outer"> 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100','age_rnv_binned_&lt;1',</span></code><code><span class="code-snippet_outer"> 'age_rnv_binned_1-5', 'age_rnv_binned_6-10', 'age_rnv_binned_11-25',</span></code><code><span class="code-snippet_outer"> 'age_rnv_binned_26-50', 'age_rnv_binned_51-75', 'age_rnv_binned_&gt;75',</span></code><code><span class="code-snippet_outer"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code><span class="code-snippet_outer">complex_model_R = linear_model.Ridge(alpha=1)</span></code><code><span class="code-snippet_outer">complex_model_R.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">pred1 = complex_model_R.predict(test_data_dm[features])</span></code><code><span class="code-snippet_outer">rmsecm1 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred1)),'.3f'))</span></code><code><span class="code-snippet_outer">rtrcm1 = float(format(complex_model_R.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artrcm1 = float(format(adjustedR2(complex_model_R.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">rtecm1 = float(format(complex_model_R.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artecm1 = float(format(adjustedR2(complex_model_R.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">cv1 = float(format(cross_val_score(complex_model_R,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">complex_model_R = linear_model.Ridge(alpha=100)</span></code><code><span class="code-snippet_outer">complex_model_R.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">pred2 = complex_model_R.predict(test_data_dm[features])</span></code><code><span class="code-snippet_outer">rmsecm2 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred2)),'.3f'))</span></code><code><span class="code-snippet_outer">rtrcm2 = float(format(complex_model_R.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artrcm2 = float(format(adjustedR2(complex_model_R.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">rtecm2 = float(format(complex_model_R.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artecm2 = float(format(adjustedR2(complex_model_R.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">cv2 = float(format(cross_val_score(complex_model_R,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">complex_model_R = linear_model.Ridge(alpha=1000)</span></code><code><span class="code-snippet_outer">complex_model_R.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">pred3 = complex_model_R.predict(test_data_dm[features])</span></code><code><span class="code-snippet_outer">rmsecm3 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred3)),'.3f'))</span></code><code><span class="code-snippet_outer">rtrcm3 = float(format(complex_model_R.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artrcm3 = float(format(adjustedR2(complex_model_R.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">rtecm3 = float(format(complex_model_R.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code><span class="code-snippet_outer">artecm3 = float(format(adjustedR2(complex_model_R.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code><span class="code-snippet_outer">cv3 = float(format(cross_val_score(complex_model_R,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code><span class="code-snippet_outer">r = evaluation.shape[0]</span></code><code><span class="code-snippet_outer">evaluation.loc[r] = ['Ridge Regression','alpha=1, all features',rmsecm1,rtrcm1,artrcm1,rtecm1,artecm1,cv1]</span></code><code><span class="code-snippet_outer">evaluation.loc[r+1] = ['Ridge Regression','alpha=100, all features',rmsecm2,rtrcm2,artrcm2,rtecm2,artecm2,cv2]</span></code><code><span class="code-snippet_outer">evaluation.loc[r+2] = ['Ridge Regression','alpha=1000, all features',rmsecm3,rtrcm3,artrcm3,rtecm3,artecm3,cv3]</span></code><code><span class="code-snippet_outer">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.7414698162729659" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMJLAKf5wbTV6cX76P7IWqUBB6iazKPCrE3icumeibepsYiaDStja2GnCD3A/640?wx_fmt=png" data-type="png" data-w="762" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="26岭回归结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">岭回归结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">2.Lasso Regression</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">lasso回归又被称为 <strong style="line-height: 1.75em;">L1正则化</strong>,它的假设函数如下:</span></p><span style="cursor: pointer;font-size: 14px;"><section role="presentation" data-formula="RSS_{LASSO} = \sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^{2} + \alpha \sum_{j=1}^{n}|\theta_{j}|

" data-formula-type="block-equation" style="text-align: center;"><embed style="vertical-align: -3.014ex;width: 40.959ex;height: auto;max-width: 300% !important;" src="https://mmbiz.qlogo.cn/mmbiz_svg/5cJ329xUeTxpriaRh4WdC2KBnbAic8FKYjR7Jf9BLcgP33LWbZB9Pw2I0Te4r5boVZzVR0eGB9tDC8mHyjZdGfgeWdSDMN6gZY/0?wx_fmt=svg" data-type="svg+xml"></embed></section></span><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">其实岭回归和lasso回归的主要区别就是惩罚项的不同,lasso是直接使用的是权重向量的L1范数,但是超参数<span style="cursor: pointer;"><svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewbox="0 -442 640 453" aria-hidden="true" style="vertical-align: -0.025ex;width: 1.448ex;height: 1.025ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="3B1" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></span>的使用方式完全一致。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'view','condition','grade','sqft_above','sqft_basement','age_binned_&lt;1', </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', 'age_binned_26-50',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100','age_rnv_binned_&lt;1',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_1-5', 'age_rnv_binned_6-10', 'age_rnv_binned_11-25',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_26-50', 'age_rnv_binned_51-75', 'age_rnv_binned_&gt;75',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L = linear_model.Lasso(alpha=1)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred1 = complex_model_L.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm1 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred1)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm1 = float(format(complex_model_L.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm1 = float(format(adjustedR2(complex_model_L.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm1 = float(format(complex_model_L.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm1 = float(format(adjustedR2(complex_model_L.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv1 = float(format(cross_val_score(complex_model_L,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L = linear_model.Lasso(alpha=100)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred2 = complex_model_L.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm2 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred2)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm2 = float(format(complex_model_L.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm2 = float(format(adjustedR2(complex_model_L.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm2 = float(format(complex_model_L.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm2 = float(format(adjustedR2(complex_model_L.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv2 = float(format(cross_val_score(complex_model_L,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L = linear_model.Lasso(alpha=1000)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">complex_model_L.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred3 = complex_model_L.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsecm3 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred3)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrcm3 = float(format(complex_model_L.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrcm3 = float(format(adjustedR2(complex_model_L.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtecm3 = float(format(complex_model_L.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artecm3 = float(format(adjustedR2(complex_model_L.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv3 = float(format(cross_val_score(complex_model_L,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['Lasso Regression','alpha=1, all features',rmsecm1,rtrcm1,artrcm1,rtecm1,artecm1,cv1]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r+1] = ['Lasso Regression','alpha=100, all features',rmsecm2,rtrcm2,artrcm2,rtecm2,artecm2,cv2]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r+2] = ['Lasso Regression','alpha=1000, all features',rmsecm3,rtrcm3,artrcm3,rtecm3,artecm3,cv3]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.4505229283990346" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMicaL2Xg5lZebaS2YvKSSYQpHMz0vTZpL6icyWibX7Ucfkwky8fuRjQfCg/640?wx_fmt=png" data-type="png" data-w="1243" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="27lasso回归结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">lasso回归结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">3.Polynomial Regression</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">对于线性模型,我们的主要的思路就是在数据中拟合一条直线。但是如果数据是二次分布,此时选择二次函数并应用多项式变换可能会给我们更好的结果。这个时候多项式回归的假设函数就是:</span></p><span style="cursor: pointer;font-size: 14px;"><section role="presentation" data-formula="h_{\theta}(X)=\theta_{0}+\theta_{1}x+\theta_{2}x^{2}+...+\theta_{n}x^{n}

" data-formula-type="block-equation" style="text-align: center;"><embed style="vertical-align: -0.566ex;width: 34.866ex;height: auto;max-width: 300% !important;" src="https://mmbiz.qlogo.cn/mmbiz_svg/5cJ329xUeTxpriaRh4WdC2KBnbAic8FKYjoDWUFibtmsf8hnibyia63ZKkic9cTqLHMkvoeXpGGbMeAFd6HQzdyBpNUDHMepicibDO18/0?wx_fmt=svg" data-type="svg+xml"></embed></section></span><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">由于多项式回归有很多变化,所以我干脆用一个新的表格来显示结果,从下表可以看出,多项式变换改进了模型拟合很多。但同时,在使用多项式变换和决定度的时候,我们应该非常小心,因为它<strong style="line-height: 1.75em;">可能导致过拟合</strong>。我们可以明显看出,下表中有些模型存在过拟合。这些模型的5折交叉验证度量是负的或低的,尽管它们对训练集有非常高的R²值。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly = pd.DataFrame({'Model': [],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'Details':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'Root Mean Squared Error (RMSE)':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'R-squared (training)':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'Adjusted R-squared (training)':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'R-squared (test)':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'Adjusted R-squared (test)':[],</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> '5-Fold Cross Validation':[]})</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront','view',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'grade','yr_built','zipcode']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.LinearRegression().fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred1 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly1 = float(format(np.sqrt(metrics.mean_squared_error(test_data['price'],pred1)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly1 = float(format(poly.score(X_trainpoly,train_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly1 = float(format(poly.score(X_testpoly,test_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv1 = float(format(cross_val_score(linear_model.LinearRegression(),X_allpoly,df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=3)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.LinearRegression().fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred2 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly2 = float(format(np.sqrt(metrics.mean_squared_error(test_data['price'],pred2)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly2 = float(format(poly.score(X_trainpoly,train_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly2 = float(format(poly.score(X_testpoly,test_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv2 = float(format(cross_val_score(linear_model.LinearRegression(),X_allpoly,df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront','view',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'condition','grade','sqft_above','sqft_basement','yr_built','yr_renovated',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.LinearRegression().fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred3 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly3 = float(format(np.sqrt(metrics.mean_squared_error(test_data['price'],pred3)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly3 = float(format(poly.score(X_trainpoly,train_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly3 = float(format(poly.score(X_testpoly,test_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv3 = float(format(cross_val_score(linear_model.LinearRegression(),X_allpoly,df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=3)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.LinearRegression().fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred4 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly4 = float(format(np.sqrt(metrics.mean_squared_error(test_data['price'],pred4)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly4 = float(format(poly.score(X_trainpoly,train_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly4 = float(format(poly.score(X_testpoly,test_data['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv4 = float(format(cross_val_score(linear_model.LinearRegression(),X_allpoly,df['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'view','condition','grade','sqft_above','sqft_basement','age_binned_&lt;1', </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', 'age_binned_26-50',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100','age_rnv_binned_&lt;1',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_1-5', 'age_rnv_binned_6-10', 'age_rnv_binned_11-25',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_26-50', 'age_rnv_binned_51-75', 'age_rnv_binned_&gt;75',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.LinearRegression().fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred5 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly5 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred5)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly5 = float(format(poly.score(X_trainpoly,train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly5 = float(format(poly.score(X_testpoly,test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv5 = float(format(cross_val_score(linear_model.LinearRegression(),X_allpoly,df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.Ridge(alpha=1).fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred6 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly6 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred6)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly6 = float(format(poly.score(X_trainpoly,train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly6 = float(format(poly.score(X_testpoly,test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv6 = float(format(cross_val_score(linear_model.Ridge(alpha=1),X_allpoly,df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.Ridge(alpha=50000).fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred7 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly7 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred7)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly7 = float(format(poly.score(X_trainpoly,train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly7 = float(format(poly.score(X_testpoly,test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv7 = float(format(cross_val_score(linear_model.Ridge(alpha=50000),X_allpoly,df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.Lasso(alpha=1).fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred8 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly8 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred8)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly8 = float(format(poly.score(X_trainpoly,train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly8 = float(format(poly.score(X_testpoly,test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv8 = float(format(cross_val_score(linear_model.Lasso(alpha=1),X_allpoly,df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">polyfeat = PolynomialFeatures(degree=2)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_allpoly = polyfeat.fit_transform(df_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_trainpoly = polyfeat.fit_transform(train_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">X_testpoly = polyfeat.fit_transform(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">poly = linear_model.Lasso(alpha=50000).fit(X_trainpoly, train_data['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred9 = poly.predict(X_testpoly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmsepoly9 = float(format(np.sqrt(metrics.mean_squared_error(test_data_dm['price'],pred9)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrpoly9 = float(format(poly.score(X_trainpoly,train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtepoly9 = float(format(poly.score(X_testpoly,test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv9 = float(format(cross_val_score(linear_model.Lasso(alpha=50000),X_allpoly,df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation_poly.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r] = ['Polynomial Regression','degree=2, selected features, no preprocessing',rmsepoly1,rtrpoly1,'-',rtepoly1,'-',cv1]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+1] = ['Polynomial Regression','degree=3, selected features, no preprocessing',rmsepoly2,rtrpoly2,'-',rtepoly2,'-',cv2]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+2] = ['Polynomial Regression','degree=2, all features, no preprocessing',rmsepoly3,rtrpoly3,'-',rtepoly3,'-',cv3]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+3] = ['Polynomial Regression','degree=3, all features, no preprocessing',rmsepoly4,rtrpoly4,'-',rtepoly4,'-',cv4]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+4] = ['Polynomial Regression','degree=2, all features',rmsepoly5,rtrpoly5,'-',rtepoly5,'-',cv5]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+5] = ['Polynomial Ridge Regression','alpha=1, degree=2, all features',rmsepoly6,rtrpoly6,'-',rtepoly6,'-',cv6]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+6] = ['Polynomial Ridge Regression','alpha=50000, degree=2, all features',rmsepoly7,rtrpoly7,'-',rtepoly7,'-',cv7]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+7] = ['Polynomial Lasso Regression','alpha=1, degree=2, all features',rmsepoly8,rtrpoly8,'-',rtepoly8,'-',cv8]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly.loc[r+8] = ['Polynomial Lasso Regression','alpha=50000, degree=2, all features',rmsepoly9,rtrpoly9,'-',rtepoly9,'-',cv9]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly_temp = evaluation_poly[['Model','Details','Root Mean Squared Error (RMSE)','R-squared (training)','R-squared (test)','5-Fold Cross Validation']]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_poly_temp.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.35938759065269943" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeM4s59kicLaib1C4YicZ4vLcpMnuOuX2L1sFt8U9hEpk2RwsrDF4ibIw9eqQ/640?wx_fmt=png" data-type="png" data-w="1241" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="28多项式回归结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">多项式回归结果</figcaption></figure><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibKibNHyy5BNMWCfcBIxN44HgmiaM8MPklpib2M1fJlRRr2hkwMv5FWcDg/640?wx_fmt=png&quot;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 50px;margin-top: 1em;margin-bottom: 10px;"><span style="display: inline-block;height: 38px;line-height: 42px;color: rgb(72, 179, 120);background-position: left center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;background-size: 63px;margin-top: 38px;font-size: 18px;margin-bottom: 10px;">4.k-NN Regression</span></h2><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">在最后的时刻也摸了一把了k-NN回归,但实际上我并不期待得到一个好的结果。实际上,k-NN算法也没有给我们一个surprise。总而言之,这是一个非常简单的方法,算法背后的思想类似于k-NN分类。简单地说,它使用加权均值、中位数或任何你想要的k-nearest实例的其他统计量。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-bottom: 8px;padding-top: 1em;color: rgb(74, 74, 74);line-height: 1.75em;"><span style="font-size: 14px;">下表给出了训练、测试集和不同k值的评价指标。看得出来,k-NN并没有surprise。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','waterfront',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'view','condition','grade','sqft_above','sqft_basement','age_binned_&lt;1', </span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_1-5', 'age_binned_6-10','age_binned_11-25', 'age_binned_26-50',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_binned_51-75','age_binned_76-100', 'age_binned_&gt;100','age_rnv_binned_&lt;1',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_1-5', 'age_rnv_binned_6-10', 'age_rnv_binned_11-25',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'age_rnv_binned_26-50', 'age_rnv_binned_51-75', 'age_rnv_binned_&gt;75',</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;"> 'zipcode','lat','long','sqft_living15','sqft_lot15']</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg = KNeighborsRegressor(n_neighbors=15)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = knnreg.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmseknn1 = float(format(np.sqrt(metrics.mean_squared_error(y_test,pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrknn1 = float(format(knnreg.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrknn1 = float(format(adjustedR2(knnreg.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rteknn1 = float(format(knnreg.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">arteknn1 = float(format(adjustedR2(knnreg.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv1 = float(format(cross_val_score(knnreg,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg = KNeighborsRegressor(n_neighbors=25)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = knnreg.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmseknn2 = float(format(np.sqrt(metrics.mean_squared_error(y_test,pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrknn2 = float(format(knnreg.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrknn2 = float(format(adjustedR2(knnreg.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rteknn2 = float(format(knnreg.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">arteknn2 = float(format(adjustedR2(knnreg.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv2 = float(format(cross_val_score(knnreg,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg = KNeighborsRegressor(n_neighbors=27)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">knnreg.fit(train_data_dm[features],train_data_dm['price'])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">pred = knnreg.predict(test_data_dm[features])</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rmseknn3 = float(format(np.sqrt(metrics.mean_squared_error(y_test,pred)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rtrknn3 = float(format(knnreg.score(train_data_dm[features],train_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">artrknn3 = float(format(adjustedR2(knnreg.score(train_data_dm[features],train_data_dm['price']),train_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">rteknn3 = float(format(knnreg.score(test_data_dm[features],test_data_dm['price']),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">arteknn3 = float(format(adjustedR2(knnreg.score(test_data_dm[features],test_data_dm['price']),test_data_dm.shape[0],len(features)),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">cv3 = float(format(cross_val_score(knnreg,df_dm[features],df_dm['price'],cv=5).mean(),'.3f'))</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer"><br /></span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">r = evaluation.shape[0]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r] = ['KNN Regression','k=15, all features',rmseknn1,rtrknn1,artrknn1,rteknn1,arteknn1,cv1]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r+1] = ['KNN Regression','k=25, all features',rmseknn2,rtrknn2,artrknn2,rteknn2,arteknn2,cv2]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.loc[r+2] = ['KNN Regression','k=27, all features',rmseknn3,rtrknn3,artrknn3,rteknn3,arteknn3,cv3]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.5339185953711093" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMEBbIdaSP7unqTnNw8Qf7TicGbfia4Hdm4whIiaicKeYvefMhPwn8W81JRQ/640?wx_fmt=png" data-type="png" data-w="1253" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="29knn回归结果.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">knn回归结果</figcaption></figure><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">Evaluation Table</span></h1><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_temp=evaluation.append(evaluation_poly)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_temp1=evaluation_temp.sort_values(by = '5-Fold Cross Validation', ascending=False)</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_temp2=evaluation_temp1.reset_index()</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_f=evaluation_temp2.iloc[:,1:]</span></code><code style="white-space:pre-wrap;border-radius: 0px;text-align: left;display: flex;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;"><span class="code-snippet_outer" style="line-height: 26px;">evaluation_f</span></code></pre></section><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.6474820143884892" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMQkR468BRQmfGSb6URxOwLhre8sCQDpOrr581dmDGpUpQ21JQB1rN3g/640?wx_fmt=png" data-type="png" data-w="1251" style="max-inline-size: 100%;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="30最终表-1.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">最终表-1</figcaption></figure><figure data-tool="markdown.com.cn编辑器" style="margin-top: 10px;margin-bottom: 10px;"><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;"><img data-ratio="0.1688" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMn6f8DZh3zeaBertBBKzwqdFtSoKg6H1TJggx6K1sCRicpc7LKc5IHyw/640?wx_fmt=png" data-type="png" data-w="1250" style="max-inline-size: 100%;color: rgb(0, 0, 0);font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;white-space: normal;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);box-sizing: border-box !important;outline: none 0px !important;" title="31最终表-2.jpg" /></figcaption><figcaption style="margin-top: 5px;text-align: center;color: rgb(136, 136, 136);font-size: 12px;font-family: PingFangSC-Light;">最终表-2</figcaption></figure><h1 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 24px;text-align: center;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMibkIjbibG7wiaynCNZCxvG4LVSzhLibZsxeo9wy5BVUFo2elehoSg0ticaA/640?wx_fmt=png&quot;);background-position: center top;background-repeat: no-repeat;background-size: 75px;line-height: 95px;margin-top: 38px;margin-bottom: 10px;"><span style="font-size: 20px;color: #48b378;border-bottom: 2px solid #2e7950;">Conclusion</span></h1><section style="box-sizing: border-box;margin: 15px 0px;color: rgb(80, 97, 109);font-family: Helvetica, Arial, sans-serif;font-size: 15px;text-align: start;white-space: normal;"><span style="font-size: 14px;">当我们看评估表时,2次多项式(所有特征,没有预处理)是最好的。然而,我怀疑它的可靠性。我更喜欢多项式岭回归(alpha=50000,degree=2,所有特征),但其他模型可能取决于情况也是有用的。</span></section><section style="box-sizing: border-box;margin: 15px 0px;color: rgb(80, 97, 109);font-family: Helvetica, Arial, sans-serif;font-size: 15px;text-align: start;white-space: normal;"><span style="font-size: 14px;">以上都是简单入门的模型,并没有期望达到很高的性能,因为预期并没有要建立一个很强很复杂的模型。在此基础上,以上的模型都有很大的改善空间,比如正则化的线性模型可以直接使用弹性网络ElasticNet模型来替代,弹性网络介于 Ridge 回归和 Lasso 回归之间。它的正则项是 Ridge 回归和 Lasso 回归正则项的简单混合,同时你可以控制它们的混合率r,当r = 0时,弹性网络就是 Ridge 回归,当r = 1时,其就是 Lasso 回归,所以一般的情况,以简单的线性回归出发,我们要使用带一点正则项的模型,于是我们选择了 Ridge 回归,但是如果数据中只有少数特征的权重特别大的时候我们就看向了lasso 回归和弹性网络,因为这两种模型会将那些无用的特征的权重统统降为0。同时,一般我们认为弹性网络会优于lasso回归,因为在一些特殊的情况下lasso表现的不太规律。<br />或者你想要更高水平的精度,甚至可以选择诸如pasting、boosting、stacking的集成方法,建立强大的集成方法,这通常是许多算法大赛的优胜的制胜法宝。</span></section></section><section data-role="paragraph" style="white-space: normal;box-sizing: border-box;"><section style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;">///</span></p><p style="text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></span></p><p style="text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></span></p><section style="font-size: 14px;box-sizing: border-box;"><section powered-by="xiumi.us" style="display: inline-block;width: 100%;vertical-align: top;border-width: 3px;border-style: none;border-color: rgb(29, 29, 29);background-position: 0% 0%;background-repeat: repeat;background-size: 99.6914%;background-attachment: scroll;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyaqFD3wmb53s7FhLO3mibeMOhLmZPPibBngvDjSL1kbFPGQYBlVXdDJey81ffYgEkh9ibpMe1pVm6Ow/640?wx_fmt=png&quot;);box-sizing: border-box;"><section style="text-align: center;box-sizing: border-box;" powered-by="xiumi.us"><section style="display: inline-block;width: 100%;vertical-align: top;border-width: 3px;border-style: solid;border-color: rgb(29, 29, 29);padding-right: 25px;padding-left: 25px;background-color: rgb(255, 255, 255);box-sizing: border-box;"><section style="text-align: right;margin: 5px 0% 10px;transform: translate3d(20px, 0px, 0px);-webkit-transform: translate3d(20px, 0px, 0px);-moz-transform: translate3d(20px, 0px, 0px);-o-transform: translate3d(20px, 0px, 0px);box-sizing: border-box;" powered-by="xiumi.us"><section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 20%;box-sizing: border-box;"><img data-ratio="0.2366667" data-src="https://mmbiz.qpic.cn/mmbiz_svg/5cJ329xUeTxpriaRh4WdC2KBnbAic8FKYjCLAd40GIILtcDtsQdMPicaFa4Qcg7UuKemYglRblGNsjjMaianNCiawe8jyyVXJlMtY/640?wx_fmt=svg" data-type="svg" data-w="300" style="vertical-align: middle;width: 100%;height: 100%;box-sizing: border-box;" /></section></section><section style="text-align: justify;line-height: 1.8;font-size: 13px;box-sizing: border-box;" powered-by="xiumi.us"><p style="text-align: center;white-space: normal;box-sizing: border-box;"><span style="font-size: 14px;"><strong style="box-sizing: border-box;">小编吐槽</strong></span></p><section style="white-space: normal;box-sizing: border-box;margin-left: 8px;margin-right: 8px;">收到这篇Markdown的文章,小编的内心很是崩溃。<span style="font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;font-size: 13px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);">作为一个完全不懂MD的新手小白,</span>对“如何轻松地把 Markdown文章搬到微信公众号并完美呈现代码内容”等问题,真的很头疼。</section><section style="white-space: normal;box-sizing: border-box;margin-left: 8px;margin-right: 8px;">本文作者九点五十七相当专业!但由于小编水平有限,文章可能会有一些细节上的问题,希望各位读者见谅。</section></section><section style="text-align: justify;box-sizing: border-box;" powered-by="xiumi.us"><p style="white-space: normal;box-sizing: border-box;"><br style="box-sizing: border-box;" /></p></section></section></section></section></section><p style="margin: 5px 10px;max-width: 100%;min-height: 1em;text-align: center;text-indent: 0em;line-height: 1.75em;letter-spacing: 1.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></p><p style="margin: 5px 10px;max-width: 100%;min-height: 1em;text-align: center;text-indent: 0em;line-height: 1.75em;letter-spacing: 1.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;letter-spacing: 0.544px;font-size: 16px;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><p style="max-width: 100%;min-height: 1em;text-align: center;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><img data-ratio="0.4166666666666667" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIwBXeobibkwsIUUpeGv4ux4tvDyxpAwynqhBa7wEHtuboBjSnnfm2NKpemdDyfOJ5Az1tvTbYyWFnA/640?wx_fmt=png" data-type="png" data-w="108" style="margin-top: -4px;box-sizing: border-box;overflow-wrap: break-word !important;visibility: visible !important;width: 65px !important;" /></p><p style="max-width: 100%;min-height: 1em;text-align: center;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p><p style="max-width: 100%;min-height: 1em;text-align: center;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p><section style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="margin-bottom: 10px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;display: inline-block;width: 677px;vertical-align: top;background-color: rgb(243, 243, 243);overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="margin-top: 22px;margin-bottom: 10px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;text-align: center;color: rgb(255, 255, 255);font-size: 12px;font-family: Optima-Regular, PingFangTC-light;line-height: 2;overflow-wrap: break-word !important;"><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;"><span style="max-width: 100%;box-sizing: border-box;background-color: rgb(129, 129, 129);overflow-wrap: break-word !important;">拓展阅读</span></p></section></section><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;text-align: center;justify-content: center;display: flex;flex-flow: row nowrap;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;display: inline-block;width: auto;vertical-align: top;min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;line-height: 0;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;height: 1px;background-color: rgb(83, 83, 83);overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section powered-by="xiumi.us" style="padding-right: 23px;padding-left: 23px;max-width: 100%;box-sizing: border-box;font-size: 17px;line-height: 2.5;font-family: Optima-Regular, PingFangTC-light;letter-spacing: 4px;color: rgb(129, 129, 129);overflow-wrap: break-word !important;"><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">#禾略一分钟#</strong></p><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;">想知道全国城市住宅市场</p><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;">全力面积需求趋势吗?<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></p></section><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;height: 1px;background-color: rgb(83, 83, 83);overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 20px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;text-align: center;color: rgba(50, 21, 9, 0.22);font-size: 12px;font-family: Optima-Regular, PingFangTC-light;line-height: 2;overflow-wrap: break-word !important;"><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;overflow-wrap: break-word !important;">↓↓戳下方视频查看答案↓↓</p></section></section><section class="channels_iframe_wrp"><mpvideosnap class="js_uneditable custom_select_card channels_iframe" data-pluginname="videosnap" data-id="export/UzFfAgtgekIEAQAAAAAADVo2YrjGkQAAAAstQy6ubaLX4KHWvLEZgBPEs4NMVHN4KZb_zNPgMItUZ4ptZYonUAI6hL5RQvWg" data-url="https://findermp.video.qq.com/251/20304/stodownload?encfilekey=RBfjicXSHKCOONJnTbRmmlD8cOQPXE48ibdibxGpX1F1HRwXcqTAe0nExqFRwht3RvtaILRGKWiagNMvvCR8fzhibc6Me6Utj2WYyZcXN85TLIOCztD54vzzmDBQ9z5TLlvRjXG2iaP2piaURE8Via3JpUqFlUSCCvjOCqJFictPuyIEcgB0&amp;adaptivelytrans=0&amp;bizid=1023&amp;dotrans=0&amp;hy=SH&amp;idx=1&amp;m=19266a930fb01d7b87d8a3d82173afcb&amp;token=cztXnd9GyrH5K7HJTl5SejNKyjXgIvfR4W7cjoEfow7johPqhQ5QMf1W4o96Uyuq" data-headimgurl="http://wx.qlogo.cn/finderhead/WAibKjHvK5nH8vQfZJqhgU8iaf6rKibyr5AaK8a0uDtYWDlGuhQ8LIhPg/0" data-username="v2_060000231003b20faec8c4e18d10cbd6c80dee34b07736396e416723fd5650a5715e7448b841@finder" data-nickname="禾略" data-desc="#禾略一分钟 简析全国城市住宅市场主力面积需求趋势" data-nonceid="4687916042186861313" data-type="video"></mpvideosnap></section><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section></section></section></section></section></section><p style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="color: rgb(123, 127, 131);font-size: 12px;letter-spacing: 0.544px;"></span><br /></p></section></section><p style="font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;">///</span></p><p style="font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 12px;color: rgb(123, 127, 131);box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></span></p><p><br /></p><p style="text-align: center;"><span style="color: rgb(127, 127, 127);font-family: PingFangTC-Light;letter-spacing: 0.544px;caret-color: red;font-size: 12px;">-&nbsp;小程序-</span></p></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;box-sizing: border-box !important;overflow-wrap: break-word !important;">&nbsp;·<span style="max-width: 100%;font-size: 12px;color: rgb(127, 127, 127);font-family: PingFangTC-Light;letter-spacing: 0.544px;text-align: center;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);">「HotTina」</span>·</span></section></section><section data-role="paragraph" style="white-space: normal;"><section style="text-align: center;margin-left: 8px;margin-right: 8px;"><a class="weapp_image_link js_weapp_entry" data-miniprogram-appid="wxdcdd1e610d71ae74" data-miniprogram-path="pages/serch/serch" data-miniprogram-nickname="HotTina" href="" data-miniprogram-type="image" data-miniprogram-servicetype="" href=""><img class="rich_pages" data-backh="120" data-backw="389" data-ratio="0.30973451327433627" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxBKiaQNH3yAajSVKNDghYCq5gnROOAWjmdwIqhP9gBLpU9iaicBb19EGQVKpTzeP0lOXYyF5icG1y74Q/640?wx_fmt=png" data-type="png" data-w="791" style="width: 100%;height: auto;" /></a></section><p><br /></p><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">▷往期文章彩蛋:不要戳开!!!</span></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500345&amp;idx=1&amp;sn=93797fca0ea11825bcc9e5e1c0109c52&amp;chksm=9756b81da021310ba7a377bdce7ef2877fb30eb246731c626bffd343008b77703527595ad2ed&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugLLibwPxIshPkhYb8rUpx6OiaokEiaiaoQAs4pBYvOk4KlGWhp5OagMyWaw/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500355&amp;idx=2&amp;sn=2c6ce758ab3881befb2fbba0ba3603f1&amp;chksm=9756b867a021317120bad43bc938ebb4cdb2953af8c54167618f6a0d2e10e4a0c0dbbeb90f65&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xug2z2ZNw3efskOCCTiaR2MZIrkVnqNUUySzc8kPhT5aLfLE1SvHGhoJUw/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500384&amp;idx=1&amp;sn=ce96c211a2ed19ee560b34d30d321292&amp;chksm=9756b844a0213152bb36ae4ebc877ea634416495af8892942074d23f0d1b5581b32b705c0835&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugNEZT4DD88icwcAl08ZuziaiadYt82wzZG5n14t7224xWjyeK8SNXNIp8A/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500776&amp;idx=1&amp;sn=6f4fcd10bc90a8f72744416eda3995a4&amp;chksm=9756b9cca02130da9094518319d318ca4fd11413c1213d18be9cc9d8302528b34816fdd34394&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugA8lpBib3AWM95x6tIIxu56bryKOYOVyRWzd6jsYRjicIiaF1hohgrpN1w/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500347&amp;idx=1&amp;sn=dffbd70a87a2f5610cf728e4970ec869&amp;chksm=9756b81fa0213109c740e135c93ac90c20e029871a10bf1ad6d116f9d663d7a26b7d8a673bbe&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugMQjVx8C1LeClYXAgR1lKe771SGnJj9TxohSmoF4W79ORTDc52UmmNQ/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;" /></span></a></section></section></section><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin: 5px 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="letter-spacing: 0.544px;"></span><br /></section></section></section><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;letter-spacing: 0.544px;font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(136, 136, 136);letter-spacing: 0.544px;font-size: 13px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">2021 | 真好野</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section></section></section><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;min-height: 1em;text-align: center;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="93717" data-width="95%" style="margin-right: auto;margin-left: auto;max-width: 100%;box-sizing: border-box;width: 627.938px;flex: 0 0 95%;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/7QRTvkK2qC6tIGvc3ozCHcBonywI7fDV4Ksmoy5hWQHibq7TQpAQ5tricOQ7dnLg81iapxGeoUkic5Ob8vHOSI24xQ/640?wx_fmt=png&quot;);background-size: 100%;overflow-wrap: break-word !important;"><section style="padding: 1em;max-width: 100%;box-sizing: border-box;line-height: 1.75em;letter-spacing: 1px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 13px;caret-color: red;color: rgb(255, 255, 255);background-color: rgb(0, 0, 0);font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;"><img data-ratio="1.4151260504201681" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugicDNgxJwtUNwSbyTwoKMeKhpicXuMUPzremXkHSdoKAkunXaicYu2AOtw/640?wx_fmt=png" data-type="png" data-w="595" style="height: 555px;box-sizing: border-box;color: rgb(51, 51, 51);font-size: 17px;letter-spacing: 0.544px;z-index: -1;cursor: pointer;font-family: -apple-system-font, system-ui, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;width: 392px;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" title="好.png"></span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(255, 255, 255);background-color: rgb(0, 0, 0);font-family: PingFangTC-Light;font-size: 12px;box-sizing: border-box !important;overflow-wrap: break-word !important;">&nbsp;「 www.urasr.com」&nbsp;</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(127, 127, 127);caret-color: red;font-family: PingFangTC-Light;font-size: 10px;box-sizing: border-box !important;overflow-wrap: break-word !important;">#BE TRUE&nbsp; #BE WELL&nbsp; #BE WILD</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><br /></section></section></section></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;color: rgb(163, 163, 163);letter-spacing: 1.5px;font-family: 微软雅黑, Arial, sans-serif;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section></section></section></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="letter-spacing: 0.544px;font-size: 0px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;"></span><span style="letter-spacing: 0.544px;color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;caret-color: red;background-color: rgb(255, 255, 255);">*</span><br /></section></section><section data-role="outer" label="Powered by 135editor.com"><section data-role="outer" label="Powered by 135editor.com"><section data-role="paragraph" style="max-width: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;min-height: 1em;text-align: center;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">关注分享</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(127, 127, 127);font-size: 12px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">FOLLOW US &amp; SHARE ON MOMENTS</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section></section></section></section></section><section data-role="outer" style="max-width: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="98910"><section data-role="layout" style="flex-flow: row nowrap;display: flex;word-break: break-all;"><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">官网</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">微博</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">视频号</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">知乎</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">b站</span></p></section></section></section></section></section><p style="max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p></section><section data-tools="135编辑器" data-id="98910"><section data-role="layout" style="flex-flow: row nowrap;display: flex;word-break: break-all;"><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-backh="13" data-backw="13" data-cropselx1="0" data-cropselx2="50" data-cropsely1="0" data-cropsely2="50" data-ratio="1" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIycoMZjGF8RrRlGEzqzackrSSVqK5SzNApiaN9vmWpNcEuzuMInkGCcu5SiaAn2iba30oI1cPAeJVnqw/640?wx_fmt=png" data-type="png" data-w="300" data-width="50px" style="box-sizing: border-box;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;height: 50px;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-cropselx1="1" data-cropselx2="103" data-cropsely1="0" data-cropsely2="104" data-s="300,640" data-type="png" data-width="50px" width="50px" data-backw="18" data-backh="18" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIy3kArrxGazyPIK26bO7zZfQibibfZGIkjRNwTHwQ4KNp3zu2sgMcS5VLib1OHNDwOibjnPpUoribI5IcQ/640?wx_fmt=png" data-ratio="1" data-w="300" style="box-sizing: border-box;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img data-ratio="1.0044247787610618" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIzdKK1pWxDY25IjWC6hzyuZPClD30iaLtAVGt7UszT4kJMlymjsJz0yLneTFRIJS1jvpr56X0OGLrQ/640?wx_fmt=png" data-type="png" data-w="226" data-width="50px" height="71" style="box-sizing: border-box;width: 50px;" width="50px"></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-s="300,640" data-type="png" data-width="50px" width="50px" data-backw="47" data-backh="47" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIy3kArrxGazyPIK26bO7zZficyibw72OWmSMvgNNjSWoDHlf7aSgplp7dtCDAEFtJKHBnC8qaLHSIeQ/640?wx_fmt=png" data-ratio="1" data-w="300" style="box-sizing: border-box;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-backh="13" data-backw="13" data-cropselx1="0" data-cropselx2="69" data-cropsely1="0" data-cropsely2="69" data-s="300,640" data-type="png" data-width="50px" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIwaUyIuHQngl5c5PD5uQEXrh3UfLLLmbNNIYHsl0uM1fFRJCOicUgwgiaAoBNbUmeBiahGEFZBm9uXAw/640?wx_fmt=png" data-ratio="1" data-w="300" width="50px" style="box-sizing: border-box;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section></section></section></section></section></section><section data-role="paragraph" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><br /></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">感谢你的每一个分享 | 点赞 | 在看</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">SPECIAL THANKS</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">▼▼▼</span></section></section>

← 返回观点全库