├── data ├── README.md ├── dataset.csv ├── 主成分分析.xlsx ├── 政府工作报告2019.txt └── data_banknote_authentication.txt ├── air.jpg ├── 第1章 Python简要介绍.pdf ├── README.md ├── 第1章-导言.ipynb ├── 第4章-关联分析.ipynb ├── 第4章-关联规则挖掘-补充.ipynb ├── 第5章-分类.ipynb └── 第6章-数值预测.ipynb /data/README.md: -------------------------------------------------------------------------------- 1 | 此文件夹用于存放代码中所需要的相关数据。 2 | -------------------------------------------------------------------------------- /data/dataset.csv: -------------------------------------------------------------------------------- 1 | A, C, D 2 | B, C, E 3 | A, B, C, E 4 | B, E -------------------------------------------------------------------------------- /air.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fan-Meng/DM-Python-MOOC/HEAD/air.jpg -------------------------------------------------------------------------------- /data/主成分分析.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fan-Meng/DM-Python-MOOC/HEAD/data/主成分分析.xlsx -------------------------------------------------------------------------------- /第1章 Python简要介绍.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fan-Meng/DM-Python-MOOC/HEAD/第1章 Python简要介绍.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DM-Python-MOOC 2 | 此项目提供在中国大学慕课网站《[数据挖掘与python实践](https://www.icourse163.org/course/CUFE-1207262801)》在线课程的代码及相关资料。代码及一般文件在根目录下,数据文件在data文件夹下,请同学们自行下载。 3 | 4 | 在代码运行过程中如遇到任何问题,请在课程讨论区进行提问讨论,或发邮件直接联系(mengfan@pku.edu.cn),祝大家学习顺利,学有所成! 5 | 6 | 2024-09-09 7 | -------------------------------------------------------------------------------- /第1章-导言.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "hello python\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "print(\"hello python\")" 18 | ] 19 | }, 20 | { 21 | "cell_type": "code", 22 | "execution_count": null, 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [] 26 | } 27 | ], 28 | "metadata": { 29 | "kernelspec": { 30 | "display_name": "Python 3", 31 | "language": "python", 32 | "name": "python3" 33 | }, 34 | "language_info": { 35 | "codemirror_mode": { 36 | "name": "ipython", 37 | "version": 3 38 | }, 39 | "file_extension": ".py", 40 | "mimetype": "text/x-python", 41 | "name": "python", 42 | "nbconvert_exporter": "python", 43 | "pygments_lexer": "ipython3", 44 | "version": "3.6.5" 45 | } 46 | }, 47 | "nbformat": 4, 48 | "nbformat_minor": 2 49 | } 50 | -------------------------------------------------------------------------------- /第4章-关联分析.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "collapsed": true 7 | }, 8 | "source": [ 9 | "# 1. 安装工具包\n", 10 | "在命令提示行输入:\n", 11 | "> pip install efficient-apriori" 12 | ] 13 | }, 14 | { 15 | "cell_type": "markdown", 16 | "metadata": {}, 17 | "source": [ 18 | "# 2. 测试" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 1, 24 | "metadata": {}, 25 | "outputs": [], 26 | "source": [ 27 | "from efficient_apriori import apriori" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [], 35 | "source": [ 36 | "transactions = [('eggs', 'bacon', 'soup'),\n", 37 | " ('eggs', 'bacon', 'apple'),\n", 38 | " ('soup', 'bacon', 'banana')]" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 3, 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1)" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 4, 53 | "metadata": {}, 54 | "outputs": [ 55 | { 56 | "name": "stdout", 57 | "output_type": "stream", 58 | "text": [ 59 | "[{eggs} -> {bacon}, {soup} -> {bacon}]\n" 60 | ] 61 | } 62 | ], 63 | "source": [ 64 | "print(rules) # [{eggs} -> {bacon}, {soup} -> {bacon}]" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 5, 70 | "metadata": {}, 71 | "outputs": [], 72 | "source": [ 73 | "rules_rhs = filter(lambda rule: len(rule.lhs) == 2 and len(rule.rhs) == 1, rules)" 74 | ] 75 | }, 76 | { 77 | "cell_type": "markdown", 78 | "metadata": {}, 79 | "source": [ 80 | "# 3. 课中例子" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 6, 86 | "metadata": {}, 87 | "outputs": [], 88 | "source": [ 89 | "from efficient_apriori import apriori\n", 90 | "transactions = [('A', 'C', 'D'),\n", 91 | " ('B', 'C', 'E'),\n", 92 | " ('A', 'B', 'C', 'E'),\n", 93 | " ('B', 'E')]" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 7, 99 | "metadata": {}, 100 | "outputs": [], 101 | "source": [ 102 | "itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1)" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": 8, 108 | "metadata": {}, 109 | "outputs": [ 110 | { 111 | "data": { 112 | "text/plain": [ 113 | "{1: {('A',): 2, ('B',): 3, ('C',): 3, ('E',): 3},\n", 114 | " 2: {('A', 'C'): 2, ('B', 'C'): 2, ('B', 'E'): 3, ('C', 'E'): 2},\n", 115 | " 3: {('B', 'C', 'E'): 2}}" 116 | ] 117 | }, 118 | "execution_count": 8, 119 | "metadata": {}, 120 | "output_type": "execute_result" 121 | } 122 | ], 123 | "source": [ 124 | "itemsets" 125 | ] 126 | }, 127 | { 128 | "cell_type": "code", 129 | "execution_count": 9, 130 | "metadata": {}, 131 | "outputs": [ 132 | { 133 | "data": { 134 | "text/plain": [ 135 | "[{A} -> {C}, {E} -> {B}, {B} -> {E}, {C, E} -> {B}, {B, C} -> {E}]" 136 | ] 137 | }, 138 | "execution_count": 9, 139 | "metadata": {}, 140 | "output_type": "execute_result" 141 | } 142 | ], 143 | "source": [ 144 | "rules" 145 | ] 146 | }, 147 | { 148 | "cell_type": "code", 149 | "execution_count": null, 150 | "metadata": {}, 151 | "outputs": [], 152 | "source": [] 153 | } 154 | ], 155 | "metadata": { 156 | "kernelspec": { 157 | "display_name": "Python 3", 158 | "language": "python", 159 | "name": "python3" 160 | }, 161 | "language_info": { 162 | "codemirror_mode": { 163 | "name": "ipython", 164 | "version": 3 165 | }, 166 | "file_extension": ".py", 167 | "mimetype": "text/x-python", 168 | "name": "python", 169 | "nbconvert_exporter": "python", 170 | "pygments_lexer": "ipython3", 171 | "version": "3.7.0" 172 | } 173 | }, 174 | "nbformat": 4, 175 | "nbformat_minor": 2 176 | } 177 | -------------------------------------------------------------------------------- /第4章-关联规则挖掘-补充.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "collapsed": true 7 | }, 8 | "source": [ 9 | "# 1. 安装工具包\n", 10 | "在命令提示行输入:\n", 11 | "> pip install efficient-apriori" 12 | ] 13 | }, 14 | { 15 | "cell_type": "markdown", 16 | "metadata": {}, 17 | "source": [ 18 | "# 2. 测试" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 1, 24 | "metadata": {}, 25 | "outputs": [], 26 | "source": [ 27 | "from efficient_apriori import apriori" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [], 35 | "source": [ 36 | "transactions = [('eggs', 'bacon', 'soup'),\n", 37 | " ('eggs', 'bacon', 'apple'),\n", 38 | " ('soup', 'bacon', 'banana')]" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 3, 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1)" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 4, 53 | "metadata": {}, 54 | "outputs": [ 55 | { 56 | "name": "stdout", 57 | "output_type": "stream", 58 | "text": [ 59 | "[{eggs} -> {bacon}, {soup} -> {bacon}]\n" 60 | ] 61 | } 62 | ], 63 | "source": [ 64 | "print(rules) # [{eggs} -> {bacon}, {soup} -> {bacon}]" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 5, 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "name": "stdout", 74 | "output_type": "stream", 75 | "text": [ 76 | "{1: {('bacon',): 3, ('eggs',): 2, ('soup',): 2}, 2: {('bacon', 'eggs'): 2, ('bacon', 'soup'): 2}}\n" 77 | ] 78 | } 79 | ], 80 | "source": [ 81 | "print(itemsets)" 82 | ] 83 | }, 84 | { 85 | "cell_type": "code", 86 | "execution_count": 6, 87 | "metadata": {}, 88 | "outputs": [], 89 | "source": [ 90 | "# Print out every rule with 2 items on the left hand side,\n", 91 | "# 1 item on the right hand side, sorted by lift\n", 92 | "rules_rhs = filter(lambda rule: len(rule.lhs) == 1 and len(rule.rhs) == 1, rules)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 7, 98 | "metadata": {}, 99 | "outputs": [ 100 | { 101 | "data": { 102 | "text/plain": [ 103 | "[{eggs} -> {bacon}, {soup} -> {bacon}]" 104 | ] 105 | }, 106 | "execution_count": 7, 107 | "metadata": {}, 108 | "output_type": "execute_result" 109 | } 110 | ], 111 | "source": [ 112 | "list(rules_rhs)" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 8, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "name": "stdout", 122 | "output_type": "stream", 123 | "text": [ 124 | "['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__len__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_decimals', '_pf', 'confidence', 'conviction', 'count_full', 'count_lhs', 'count_rhs', 'lhs', 'lift', 'num_transactions', 'rhs', 'support']\n" 125 | ] 126 | } 127 | ], 128 | "source": [ 129 | "print(dir(rules[0]))" 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 9, 135 | "metadata": {}, 136 | "outputs": [ 137 | { 138 | "name": "stdout", 139 | "output_type": "stream", 140 | "text": [ 141 | "[{eggs} -> {bacon}, {soup} -> {bacon}]\n" 142 | ] 143 | } 144 | ], 145 | "source": [ 146 | "rules_rhs = filter(lambda rule: len(rule.lhs) == 1 and len(rule.rhs) == 1, rules)\n", 147 | "result = sorted(rules_rhs, key=lambda rule: rule.lift)\n", 148 | "print(list(result))" 149 | ] 150 | }, 151 | { 152 | "cell_type": "code", 153 | "execution_count": 10, 154 | "metadata": {}, 155 | "outputs": [ 156 | { 157 | "name": "stdout", 158 | "output_type": "stream", 159 | "text": [ 160 | "{eggs} -> {bacon} (conf: 1.000, supp: 0.667, lift: 1.000, conv: 0.000)\n", 161 | "{soup} -> {bacon} (conf: 1.000, supp: 0.667, lift: 1.000, conv: 0.000)\n" 162 | ] 163 | } 164 | ], 165 | "source": [ 166 | "for rule in result:\n", 167 | " print(rule) # Prints the rule and its confidence, support, lift, ..." 168 | ] 169 | }, 170 | { 171 | "cell_type": "markdown", 172 | "metadata": {}, 173 | "source": [ 174 | "Lift(A→B) = (Confidence (A→B))/(Support (B)) \n", 175 | "refers to the increase in the ratio of sale of B when A is sold \n", 176 | "P(A,B)/(P(A)P(B))" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "# 3. PPT中的例子" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 11, 189 | "metadata": {}, 190 | "outputs": [], 191 | "source": [ 192 | "from efficient_apriori import apriori\n", 193 | "transactions = [('A', 'C', 'D'),\n", 194 | " ('B', 'C', 'E'),\n", 195 | " ('A', 'B', 'C', 'E'),\n", 196 | " ('B', 'E')]" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 12, 202 | "metadata": {}, 203 | "outputs": [], 204 | "source": [ 205 | "itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1)" 206 | ] 207 | }, 208 | { 209 | "cell_type": "code", 210 | "execution_count": 13, 211 | "metadata": {}, 212 | "outputs": [ 213 | { 214 | "data": { 215 | "text/plain": [ 216 | "{1: {('A',): 2, ('B',): 3, ('C',): 3, ('E',): 3},\n", 217 | " 2: {('A', 'C'): 2, ('B', 'C'): 2, ('B', 'E'): 3, ('C', 'E'): 2},\n", 218 | " 3: {('B', 'C', 'E'): 2}}" 219 | ] 220 | }, 221 | "execution_count": 13, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "itemsets" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 14, 233 | "metadata": {}, 234 | "outputs": [ 235 | { 236 | "data": { 237 | "text/plain": [ 238 | "[{A} -> {C}, {E} -> {B}, {B} -> {E}, {C, E} -> {B}, {B, C} -> {E}]" 239 | ] 240 | }, 241 | "execution_count": 14, 242 | "metadata": {}, 243 | "output_type": "execute_result" 244 | } 245 | ], 246 | "source": [ 247 | "rules" 248 | ] 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "metadata": {}, 253 | "source": [ 254 | "# 4. 大数据关联规则\n", 255 | "\n", 256 | "如果要分析的数据较大,无法直接导入内存,可以传递一个返回生成器的函数,而不是交易的列表" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "execution_count": 15, 262 | "metadata": {}, 263 | "outputs": [], 264 | "source": [ 265 | "import pandas as pd" 266 | ] 267 | }, 268 | { 269 | "cell_type": "code", 270 | "execution_count": 16, 271 | "metadata": {}, 272 | "outputs": [], 273 | "source": [ 274 | "def data_generator(filename):\n", 275 | " \"\"\"\n", 276 | " Data generator, needs to return a generator to be called several times.\n", 277 | " \"\"\"\n", 278 | " def data_gen():\n", 279 | " with open(filename) as file:\n", 280 | " for line in file:\n", 281 | " yield tuple(k.strip() for k in line.split(','))\n", 282 | " return data_gen" 283 | ] 284 | }, 285 | { 286 | "cell_type": "code", 287 | "execution_count": 17, 288 | "metadata": {}, 289 | "outputs": [], 290 | "source": [ 291 | "# file_path = \"https://github.com/seratch/apriori.js/blob/master/dataset.csv\"\n", 292 | "transactions = data_generator(\"dataset.csv\")\n", 293 | "itemsets, rules = apriori(transactions, min_support=0.5, min_confidence=1)" 294 | ] 295 | }, 296 | { 297 | "cell_type": "code", 298 | "execution_count": 18, 299 | "metadata": {}, 300 | "outputs": [ 301 | { 302 | "data": { 303 | "text/plain": [ 304 | "{1: {('A',): 2, ('B',): 3, ('C',): 3, ('E',): 3},\n", 305 | " 2: {('A', 'C'): 2, ('B', 'C'): 2, ('B', 'E'): 3, ('C', 'E'): 2},\n", 306 | " 3: {('B', 'C', 'E'): 2}}" 307 | ] 308 | }, 309 | "execution_count": 18, 310 | "metadata": {}, 311 | "output_type": "execute_result" 312 | } 313 | ], 314 | "source": [ 315 | "itemsets" 316 | ] 317 | }, 318 | { 319 | "cell_type": "code", 320 | "execution_count": 19, 321 | "metadata": {}, 322 | "outputs": [ 323 | { 324 | "data": { 325 | "text/plain": [ 326 | "[{A} -> {C}, {E} -> {B}, {B} -> {E}, {C, E} -> {B}, {B, C} -> {E}]" 327 | ] 328 | }, 329 | "execution_count": 19, 330 | "metadata": {}, 331 | "output_type": "execute_result" 332 | } 333 | ], 334 | "source": [ 335 | "rules" 336 | ] 337 | }, 338 | { 339 | "cell_type": "code", 340 | "execution_count": 20, 341 | "metadata": {}, 342 | "outputs": [], 343 | "source": [ 344 | "transactions_2 = data_generator(\"store_data.csv\")\n", 345 | "itemsets_2, rules_2 = apriori(transactions_2, min_support=0.0045, min_confidence=0.2)" 346 | ] 347 | }, 348 | { 349 | "cell_type": "code", 350 | "execution_count": 21, 351 | "metadata": {}, 352 | "outputs": [ 353 | { 354 | "data": { 355 | "text/plain": [ 356 | "[{A} -> {C}, {E} -> {B}, {B} -> {E}, {C, E} -> {B}, {B, C} -> {E}]" 357 | ] 358 | }, 359 | "execution_count": 21, 360 | "metadata": {}, 361 | "output_type": "execute_result" 362 | } 363 | ], 364 | "source": [ 365 | "rules" 366 | ] 367 | }, 368 | { 369 | "cell_type": "code", 370 | "execution_count": 22, 371 | "metadata": {}, 372 | "outputs": [ 373 | { 374 | "name": "stdout", 375 | "output_type": "stream", 376 | "text": [ 377 | "{A} -> {C} (conf: 1.000, supp: 0.500, lift: 1.333, conv: 250000000.000)\n", 378 | "{E} -> {B} (conf: 1.000, supp: 0.750, lift: 1.333, conv: 250000000.000)\n", 379 | "{B} -> {E} (conf: 1.000, supp: 0.750, lift: 1.333, conv: 250000000.000)\n", 380 | "{C, E} -> {B} (conf: 1.000, supp: 0.500, lift: 1.333, conv: 250000000.000)\n", 381 | "{B, C} -> {E} (conf: 1.000, supp: 0.500, lift: 1.333, conv: 250000000.000)\n" 382 | ] 383 | } 384 | ], 385 | "source": [ 386 | "for rule in rules[:10]:\n", 387 | " print(rule)" 388 | ] 389 | }, 390 | { 391 | "cell_type": "code", 392 | "execution_count": null, 393 | "metadata": {}, 394 | "outputs": [], 395 | "source": [] 396 | } 397 | ], 398 | "metadata": { 399 | "kernelspec": { 400 | "display_name": "Python 3", 401 | "language": "python", 402 | "name": "python3" 403 | }, 404 | "language_info": { 405 | "codemirror_mode": { 406 | "name": "ipython", 407 | "version": 3 408 | }, 409 | "file_extension": ".py", 410 | "mimetype": "text/x-python", 411 | "name": "python", 412 | "nbconvert_exporter": "python", 413 | "pygments_lexer": "ipython3", 414 | "version": "3.7.0" 415 | } 416 | }, 417 | "nbformat": 4, 418 | "nbformat_minor": 2 419 | } 420 | -------------------------------------------------------------------------------- /data/政府工作报告2019.txt: -------------------------------------------------------------------------------- 1 | 各位代表: 2 | 3 | 现在,我代表国务院,向大会报告政府工作,请予审议,并请全国政协委员提出意见。 4 | 5 | 一、2018年工作回顾 6 | 7 | 过去一年是全面贯彻党的十九大精神开局之年,是本届政府依法履职第一年。我国发展面临多年少有的国内外复杂严峻形势,经济出现新的下行压力。在以习近平同志为核心的党中央坚强领导下,全国各族人民以习近平新时代中国特色社会主义思想为指导,砥砺奋进,攻坚克难,完成全年经济社会发展主要目标任务,决胜全面建成小康社会又取得新的重大进展。 8 | 9 | ——经济运行保持在合理区间。国内生产总值增长6.6%,总量突破90万亿元。经济增速与用电、货运等实物量指标相匹配。居民消费价格上涨2.1%。国际收支基本平衡。城镇新增就业1361万人、调查失业率稳定在5%左右的较低水平。近14亿人口的发展中大国,实现了比较充分就业。 10 | 11 | ——经济结构不断优化。消费拉动经济增长作用进一步增强。服务业对经济增长贡献率接近60%,高技术产业、装备制造业增速明显快于一般工业,农业再获丰收。单位国内生产总值能耗下降3.1%。质量和效益继续提升。 12 | 13 | ——发展新动能快速成长。嫦娥四号等一批重大科技创新成果相继问世。新兴产业蓬勃发展,传统产业加快转型升级。大众创业万众创新深入推进,日均新设企业超过1.8万户,市场主体总量超过1亿户。新动能正在深刻改变生产生活方式、塑造中国发展新优势。 14 | 15 | ——改革开放取得新突破。国务院及地方政府机构改革顺利实施。重点领域改革迈出新的步伐,市场准入负面清单制度全面实行,简政放权、放管结合、优化服务改革力度加大,营商环境国际排名大幅上升。对外开放全方位扩大,共建“一带一路”取得重要进展。首届中国国际进口博览会成功举办,海南自贸试验区启动建设。货物进出口总额超过30万亿元,实际使用外资1383亿美元、稳居发展中国家首位。 16 | 17 | ——三大攻坚战开局良好。防范化解重大风险,宏观杠杆率趋于稳定,金融运行总体平稳。精准脱贫有力推进,农村贫困人口减少1386万,易地扶贫搬迁280万人。污染防治得到加强,细颗粒物(PM2.5)浓度继续下降,生态文明建设成效显著。 18 | 19 | ——人民生活持续改善。居民人均可支配收入实际增长6.5%。提高个人所得税起征点,设立6项专项附加扣除。加大基本养老、基本医疗等保障力度,资助各类学校家庭困难学生近1亿人次。棚户区住房改造620多万套,农村危房改造190万户。城乡居民生活水平又有新提高。 20 | 21 | 我们隆重庆祝改革开放40周年,深刻总结改革开放的伟大成就和宝贵经验,郑重宣示在新时代将改革开放进行到底的坚定决心,激励全国各族人民接续奋斗,再创新的历史伟业。 22 | 23 | 回顾过去一年,成绩来之不易。我们面对的是深刻变化的外部环境。经济全球化遭遇波折,多边主义受到冲击,国际金融市场震荡,特别是中美经贸摩擦给一些企业生产经营、市场预期带来不利影响。我们面对的是经济转型阵痛凸显的严峻挑战。新老矛盾交织,周期性、结构性问题叠加,经济运行稳中有变、变中有忧。我们面对的是两难多难问题增多的复杂局面。实现稳增长、防风险等多重目标,完成经济社会发展等多项任务,处理好当前与长远等多种关系,政策抉择和工作推进的难度明显加大。经过全国上下共同努力,我国经济发展在高基数上总体平稳、稳中有进,社会大局保持稳定。这再次表明,在中国共产党领导下,中国人民有战胜任何艰难险阻的勇气、智慧和力量,中国的发展没有过不去的坎。 24 | 25 | 一年来,我们深入贯彻以习近平同志为核心的党中央决策部署,坚持稳中求进工作总基调,统筹稳增长、促改革、调结构、惠民生、防风险,稳妥应对中美经贸摩擦,着力稳就业、稳金融、稳外贸、稳外资、稳投资、稳预期,主要做了以下工作。 26 | 27 | 一是创新和完善宏观调控,经济保持平稳运行。面对新情况新变化,我们坚持不搞“大水漫灌”式强刺激,保持宏观政策连续性稳定性,在区间调控基础上加强定向、相机调控,主动预调、微调。坚持实施积极的财政政策,着力减税降费、补短板调结构。下调增值税税率,扩大享受税收优惠小微企业范围,出台鼓励研发创新等税收政策。全年为企业和个人减税降费约1.3万亿元。优化财政支出结构,盘活财政存量资金,重点领域支出得到保障。坚持实施稳健的货币政策,引导金融支持实体经济。针对融资难融资贵问题,先后4次降低存款准备金率,多措并举缓解民营和小微企业资金紧张状况,融资成本上升势头得到初步遏制。及时应对股市、债市异常波动,人民币汇率基本稳定,外汇储备保持在3万亿美元以上。 28 | 29 | 二是扎实打好三大攻坚战,重点任务取得积极进展。制定并有序实施三大攻坚战三年行动方案。稳步推进结构性去杠杆,稳妥处置金融领域风险,防控地方政府债务风险,改革完善房地产市场调控机制。深入推进精准脱贫,加强扶贫力量,加大资金投入,强化社会帮扶,贫困地区自我发展能力稳步提高。全面开展蓝天、碧水、净土保卫战。优化能源和运输结构。稳妥推进北方地区“煤改气”“煤改电”。全面建立河长制、湖长制。化肥农药使用量实现双下降。加强生态环保督察执法。积极应对气候变化。 30 | 31 | 三是深化供给侧结构性改革,实体经济活力不断释放。加大“破、立、降”力度。推进钢铁、煤炭行业市场化去产能。实施稳投资举措,制造业投资、民间投资增速明显回升。出台促进居民消费政策。全面推进“互联网+”,运用新技术新模式改造传统产业。深入推进简政减税减费。取消一批行政许可事项,“证照分离”改革在全国推开,企业开办时间大幅压缩,工业生产许可证种类压减三分之一以上。“双随机、一公开”监管全面实施。清理规范各类涉企收费,推动降低用能、用网和物流等成本。深化“互联网+政务服务”,各地探索推广一批有特色的改革举措,企业和群众办事便利度不断提高。 32 | 33 | 四是深入实施创新驱动发展战略,创新能力和效率进一步提升。大力优化创新生态,调动各类创新主体积极性。深化科技管理体制改革,推进关键核心技术攻关,加强重大科技基础设施、科技创新中心等建设。强化企业技术创新主体地位,将提高研发费用加计扣除比例政策扩大至所有企业。制定支持双创深入发展的政策措施。技术合同成交额增长30%以上。科技进步贡献率提高到58.5%。 34 | 35 | 五是加大改革开放力度,发展动力继续增强。深化国资国企改革,国有企业优化重组、提质增效取得新进展。针对民营企业发展遇到的困难和问题,千方百计帮助解忧纾困。推进财税体制改革,预算绩效管理改革全面启动。改革金融监管体制,完善利率、汇率市场化形成机制。农业农村、社会事业、生态环保等领域改革不断深化。推出对外开放一系列重大举措。共建“一带一路”引领效应持续释放,同沿线国家的合作机制不断健全,经贸合作和人文交流加快推进。出台稳外贸政策,货物通关时间压缩一半以上。下调部分商品进口关税,关税总水平由9.8%降至7.5%。新设一批跨境电商综合试验区。复制推广自贸试验区改革经验。大幅压缩外资准入负面清单,扩大金融、汽车等行业开放,一批重大外资项目落地,新设外资企业增长近70%。 36 | 37 | 六是统筹城乡区域发展,良性互动格局加快形成。乡村振兴战略有力实施,粮食总产量保持在1.3万亿斤以上。新型城镇化扎实推进,近1400万农业转移人口在城镇落户。推进西部开发、东北振兴、中部崛起、东部率先发展,出台一批改革创新举措。京津冀协同发展取得明显进展,长江经济带生态优先、绿色发展格局不断巩固。粤港澳大湾区规划建设迈出实质性步伐,港珠澳大桥建成通车。加大对革命老区、民族地区、边疆地区、贫困地区改革发展支持力度。新增高速铁路运营里程4100公里,新建改建高速公路6000多公里、农村公路30多万公里。城乡区域发展协调性持续增强。 38 | 39 | 七是坚持在发展中保障和改善民生,改革发展成果更多更公平惠及人民群众。针对外部环境变化给就业带来的影响,及时出台稳就业举措。大力推动义务教育教师工资待遇政策落实,加强乡村小规模学校和乡镇寄宿制学校建设,促进高等教育内涵式发展。建立企业职工基本养老保险基金中央调剂制度,提高退休人员基本养老金,城乡居民基础养老金最低标准从每月70元提高到88元。继续提高优抚、低保等标准,残疾人“两项补贴”惠及所有符合条件人员。加强退役军人服务管理工作,维护退役军人合法权益。深化医疗、医保、医药联动改革。稳步推进分级诊疗。提高居民基本医保补助标准和大病保险报销比例。加快新药审评审批改革,17种抗癌药大幅降价并纳入国家医保目录。加快推进文化惠民工程,持续加强基层公共文化服务。全民健身蓬勃开展,体育健儿在国际大赛上再创佳绩。 40 | 41 | 八是推进法治政府建设和治理创新,保持社会和谐稳定。提请全国人大常委会审议法律议案18件,制定修订行政法规37部。改革调整政府机构设置和职能配置。深入开展国务院大督查,推动改革发展政策和部署落实。发挥审计监督作用。改革完善城乡基层治理。创新信访工作方式。改革和加强应急管理,及时有效应对重大自然灾害,生产安全事故总量和重特大事故数量继续下降。加强食品药品安全监管,严厉查处长春长生公司等问题疫苗案件。健全国家安全体系。强化社会治安综合治理,开展扫黑除恶专项斗争,依法打击各类违法犯罪,平安中国建设取得新进展。 42 | 43 | 认真贯彻党中央全面从严治党战略部署,加强党风廉政建设。推进“两学一做”学习教育常态化制度化。严格落实中央八项规定及其实施细则精神,坚定不移纠正“四风”。严肃查处各类违法违规行为,惩处腐败分子,反腐败斗争取得压倒性胜利。 44 | 45 | 过去一年,中国特色大国外交取得新成就。成功举办博鳌亚洲论坛年会、上合组织青岛峰会、中非合作论坛北京峰会等重大主场外交活动。习近平主席等国家领导人出访多国,出席亚太经合组织领导人非正式会议、二十国集团领导人峰会、金砖国家领导人会晤、亚欧首脑会议、东亚合作领导人系列会议等重大活动。同主要大国关系总体稳定,同周边国家关系全面发展,同发展中国家团结合作纽带更加牢固。推动构建新型国际关系,推动构建人类命运共同体。坚定维护国家主权、安全、发展利益。经济外交、人文交流成果丰硕。中国致力于促进世界和平与发展,作出了世人共睹的重要贡献。 46 | 47 | 各位代表! 48 | 49 | 过去一年取得的成绩,是以习近平同志为核心的党中央坚强领导的结果,是习近平新时代中国特色社会主义思想科学指引的结果,是全党全军全国各族人民团结奋斗的结果。我代表国务院,向全国各族人民,向各民主党派、各人民团体和各界人士,表示诚挚感谢!向香港特别行政区同胞、澳门特别行政区同胞、台湾同胞和海外侨胞,表示诚挚感谢!向关心和支持中国现代化建设的各国政府、国际组织和各国朋友,表示诚挚感谢! 50 | 51 | 思危方能居安。在充分肯定成绩的同时,要清醒看到我国发展面临的问题和挑战。世界经济增速放缓,保护主义、单边主义加剧,国际大宗商品价格大幅波动,不稳定不确定因素明显增加,外部输入性风险上升。国内经济下行压力加大,消费增速减慢,有效投资增长乏力。实体经济困难较多,民营和小微企业融资难融资贵问题尚未有效缓解,营商环境与市场主体期待还有较大差距。自主创新能力不强,关键核心技术短板问题凸显。一些地方财政收支矛盾较大。金融等领域风险隐患依然不少。深度贫困地区脱贫攻坚困难较多。生态保护和污染防治任务仍然繁重。在教育、医疗、养老、住房、食品药品安全、收入分配等方面,群众还有不少不满意的地方。去年还发生了多起公共安全事件和重大生产安全事故,教训极其深刻。政府工作存在不足,一些改革发展举措落实不到位,形式主义、官僚主义仍然突出,督查检查考核过多过频、重留痕轻实绩,加重基层负担。少数干部懒政怠政。一些领域腐败问题仍然多发。我们一定要直面问题和挑战,勇于担当,恪尽职守,竭尽全力做好工作,决不辜负人民期待! 52 | 53 | 二、2019年经济社会发展总体要求和政策取向 54 | 55 | 今年是新中国成立70周年,是全面建成小康社会、实现第一个百年奋斗目标的关键之年。做好政府工作,要在以习近平同志为核心的党中央坚强领导下,以习近平新时代中国特色社会主义思想为指导,全面贯彻党的十九大和十九届二中、三中全会精神,统筹推进“五位一体”总体布局,协调推进“四个全面”战略布局,坚持稳中求进工作总基调,坚持新发展理念,坚持推动高质量发展,坚持以供给侧结构性改革为主线,坚持深化市场化改革、扩大高水平开放,加快建设现代化经济体系,继续打好三大攻坚战,着力激发微观主体活力,创新和完善宏观调控,统筹推进稳增长、促改革、调结构、惠民生、防风险、保稳定工作,保持经济运行在合理区间,进一步稳就业、稳金融、稳外贸、稳外资、稳投资、稳预期,提振市场信心,增强人民群众获得感、幸福感、安全感,保持经济持续健康发展和社会大局稳定,为全面建成小康社会收官打下决定性基础,以优异成绩庆祝中华人民共和国成立70周年。 56 | 57 | 综合分析国内外形势,今年我国发展面临的环境更复杂更严峻,可以预料和难以预料的风险挑战更多更大,要做好打硬仗的充分准备。困难不容低估,信心不可动摇,干劲不能松懈。我国发展仍处于重要战略机遇期,拥有足够的韧性、巨大的潜力和不断迸发的创新活力,人民群众追求美好生活的愿望十分强烈。我们有战胜各种困难挑战的坚定意志和能力,经济长期向好趋势没有也不会改变。 58 | 59 | 今年经济社会发展的主要预期目标是:国内生产总值增长6%-6.5%;城镇新增就业1100万人以上,城镇调查失业率5.5%左右,城镇登记失业率4.5%以内;居民消费价格涨幅3%左右;国际收支基本平衡,进出口稳中提质;宏观杠杆率基本稳定,金融财政风险有效防控;农村贫困人口减少1000万以上,居民收入增长与经济增长基本同步;生态环境进一步改善,单位国内生产总值能耗下降3%左右,主要污染物排放量继续下降。上述主要预期目标,体现了推动高质量发展要求,符合我国发展实际,与全面建成小康社会目标相衔接,是积极稳妥的。实现这些目标,需要付出艰苦努力。 60 | 61 | 要正确把握宏观政策取向,继续实施积极的财政政策和稳健的货币政策,实施就业优先政策,加强政策协调配合,确保经济运行在合理区间,促进经济社会持续健康发展。 62 | 63 | 积极的财政政策要加力提效。今年赤字率拟按2.8%安排,比去年预算高0.2个百分点;财政赤字2.76万亿元,其中中央财政赤字1.83万亿元,地方财政赤字9300亿元。适度提高赤字率,综合考虑了财政收支、专项债券发行等因素,也考虑为应对今后可能出现的风险留出政策空间。今年财政支出超过23万亿元,增长6.5%。中央对地方均衡性转移支付增长10.9%。改革完善县级基本财力保障机制,缓解困难地区财政运转压力,决不让基本民生保障出问题。 64 | 65 | 稳健的货币政策要松紧适度。广义货币M2和社会融资规模增速要与国内生产总值名义增速相匹配,以更好满足经济运行保持在合理区间的需要。在实际执行中,既要把好货币供给总闸门,不搞“大水漫灌”,又要灵活运用多种货币政策工具,疏通货币政策传导渠道,保持流动性合理充裕,有效缓解实体经济特别是民营和小微企业融资难融资贵问题,防范化解金融风险。深化利率市场化改革,降低实际利率水平。完善汇率形成机制,保持人民币汇率在合理均衡水平上的基本稳定。 66 | 67 | 就业优先政策要全面发力。就业是民生之本、财富之源。今年首次将就业优先政策置于宏观政策层面,旨在强化各方面重视就业、支持就业的导向。当前和今后一个时期,我国就业总量压力不减、结构性矛盾凸显,新的影响因素还在增加,必须把就业摆在更加突出位置。稳增长首要是为保就业。今年城镇新增就业要在实现预期目标的基础上,力争达到近几年的实际规模,既保障城镇劳动力就业,也为农业富余劳动力转移就业留出空间。只要就业稳、收入增,我们就更有底气。 68 | 69 | 要继续坚持以供给侧结构性改革为主线,在“巩固、增强、提升、畅通”八个字上下功夫。更多采取改革的办法,更多运用市场化、法治化手段,巩固“三去一降一补”成果,增强微观主体活力,提升产业链水平,畅通国民经济循环,推动经济高质量发展。 70 | 71 | 要继续打好三大攻坚战,精准发力、务求实效。防范化解重大风险要强化底线思维,坚持结构性去杠杆,防范金融市场异常波动,稳妥处理地方政府债务风险,防控输入性风险。精准脱贫要坚持现行标准,聚焦深度贫困地区和特殊贫困群体,加大攻坚力度,提高脱贫质量。污染防治要聚焦打赢蓝天保卫战等重点任务,统筹兼顾、标本兼治,使生态环境质量持续改善。 72 | 73 | 做好今年政府工作,要注重把握好以下关系。一要统筹好国内与国际的关系,凝心聚力办好自己的事。我国仍处于并将长期处于社会主义初级阶段,仍是世界最大发展中国家。发展是解决我国一切问题的基础和关键,必须牢牢扭住经济建设这个中心,毫不动摇坚持发展是硬道理、发展应该是科学发展和高质量发展的战略思想,不断解放和发展社会生产力。在国际形势复杂多变的背景下,我们要保持战略定力,按确定的目标和部署推进工作,更好利用国际国内两个市场两种资源,敢于应对挑战,善于化危为机,牢牢把握发展主动权。二要平衡好稳增长与防风险的关系,确保经济持续健康发展。长期积累的诸多风险隐患必须加以化解,但要遵循规律,讲究方式方法,按照坚定、可控、有序、适度要求,在发展中逐步化解,坚决避免发生系统性、区域性风险。在当前经济下行压力加大情况下,出台政策和工作举措要有利于稳预期、稳增长、调结构,防控风险要把握好节奏和力度,防止紧缩效应叠加放大,决不能让经济运行滑出合理区间。同时,也不能只顾眼前,采取损害长期发展的短期强刺激政策,产生新的风险隐患。三要处理好政府与市场的关系,依靠改革开放激发市场主体活力。只要市场主体有活力,就能增强内生发展动力、顶住经济下行压力。要大力推进改革开放,加快建立统一开放、竞争有序的现代市场体系,放宽市场准入,加强公正监管,打造法治化、国际化、便利化的营商环境,让各类市场主体更加活跃。从根本上说,市场活力和社会创造力源于亿万人民积极性的发挥。要坚持以人民为中心的发展思想,尽力而为、量力而行,切实保障基本民生,推动解决重点民生问题,促进社会公平正义,让人民过上好日子。中国人民勤劳智慧,具有无限的创新创造潜能,只要充分释放出来,中国的发展就一定会有更为广阔空间。 74 | 75 | 三、2019年政府工作任务 76 | 77 | 今年经济社会发展任务重、挑战多、要求高。我们要突出重点、把握关键,扎实做好各项工作。 78 | 79 | (一)继续创新和完善宏观调控,确保经济运行在合理区间。坚持以市场化改革的思路和办法破解发展难题,发挥好宏观政策逆周期调节作用,丰富和灵活运用财政、货币、就业政策工具,增强调控前瞻性、针对性和有效性,为经济平稳运行创造条件。 80 | 81 | 实施更大规模的减税。普惠性减税与结构性减税并举,重点降低制造业和小微企业税收负担。深化增值税改革,将制造业等行业现行16%的税率降至13%,将交通运输业、建筑业等行业现行10%的税率降至9%,确保主要行业税负明显降低;保持6%一档的税率不变,但通过采取对生产、生活性服务业增加税收抵扣等配套措施,确保所有行业税负只减不增,继续向推进税率三档并两档、税制简化方向迈进。抓好年初出台的小微企业普惠性减税政策落实。这次减税,着眼“放水养鱼”、增强发展后劲并考虑财政可持续,是减轻企业负担、激发市场活力的重大举措,是完善税制、优化收入分配格局的重要改革,是宏观政策支持稳增长、保就业、调结构的重大抉择。 82 | 83 | 明显降低企业社保缴费负担。下调城镇职工基本养老保险单位缴费比例,各地可降至16%。稳定现行征缴方式,各地在征收体制改革过程中不得采取增加小微企业实际缴费负担的做法,不得自行对历史欠费进行集中清缴。继续执行阶段性降低失业和工伤保险费率政策。今年务必使企业特别是小微企业社保缴费负担有实质性下降。加快推进养老保险省级统筹改革,继续提高企业职工基本养老保险基金中央调剂比例、划转部分国有资本充实社保基金。我们既要减轻企业缴费负担,又要保障职工社保待遇不受影响、养老金合理增长并按时足额发放,使社保基金可持续、企业与职工同受益。 84 | 85 | 确保减税降费落实到位。减税降费直击当前市场主体的痛点和难点,是既公平又有效率的政策。全年减轻企业税收和社保缴费负担近2万亿元。这会给各级财政带来很大压力。为支持企业减负,各级政府要过紧日子,想方设法筹集资金。中央财政要开源节流,增加特定国有金融机构和央企上缴利润,一般性支出压减5%以上、“三公”经费再压减3%左右,长期沉淀资金一律收回。地方政府也要主动挖潜,大力优化支出结构,多渠道盘活各类资金和资产。我们要切实让市场主体特别是小微企业有明显减税降费感受,坚决兑现对企业和社会的承诺,困难再多也一定要把这件大事办成办好。 86 | 87 | 着力缓解企业融资难融资贵问题。改革完善货币信贷投放机制,适时运用存款准备金率、利率等数量和价格手段,引导金融机构扩大信贷投放、降低贷款成本,精准有效支持实体经济,不能让资金空转或脱实向虚。加大对中小银行定向降准力度,释放的资金全部用于民营和小微企业贷款。支持大型商业银行多渠道补充资本,增强信贷投放能力,鼓励增加制造业中长期贷款和信用贷款。今年国有大型商业银行小微企业贷款要增长30%以上。清理规范银行及中介服务收费。完善金融机构内部考核机制,激励加强普惠金融服务,切实使中小微企业融资紧张状况有明显改善,综合融资成本必须有明显降低。 88 | 89 | 有效发挥地方政府债券作用。今年拟安排地方政府专项债券2.15万亿元,比去年增加8000亿元,为重点项目建设提供资金支持,也为更好防范化解地方政府债务风险创造条件。合理扩大专项债券使用范围。继续发行一定数量的地方政府置换债券,减轻地方利息负担。鼓励采取市场化方式,妥善解决融资平台到期债务问题,不能搞“半拉子”工程。 90 | 91 | 多管齐下稳定和扩大就业。扎实做好高校毕业生、退役军人、农民工等重点群体就业工作,加强对城镇各类就业困难人员的就业帮扶。对招用农村贫困人口、城镇登记失业半年以上人员的各类企业,三年内给予定额税费减免。加强对灵活就业、新就业形态的支持。坚决防止和纠正就业中的性别和身份歧视。实施职业技能提升行动,从失业保险基金结余中拿出1000亿元,用于1500万人次以上的职工技能提升和转岗转业培训。健全技术工人职业发展机制和政策。加快发展现代职业教育,既有利于缓解当前就业压力,也是解决高技能人才短缺的战略之举。改革完善高职院校考试招生办法,鼓励更多应届高中毕业生和退役军人、下岗职工、农民工等报考,今年大规模扩招100万人。扩大高职院校奖助学金覆盖面、提高补助标准,加快学历证书和职业技能等级证书互通衔接。改革高职院校办学体制,加强师资队伍建设,提高办学质量。引导一批普通本科高校转为应用型大学。中央财政大幅增加对高职院校的投入,地方财政也要加强支持。设立中等职业教育国家奖学金。支持企业和社会力量兴办职业教育,加快产教融合实训基地建设。我们要以现代职业教育的大改革大发展,加快培养国家发展急需的各类技术技能人才,让更多青年凭借一技之长实现人生价值,让三百六十行人才荟萃、繁星璀璨。 92 | 93 | (二)激发市场主体活力,着力优化营商环境。我国有上亿市场主体,而且还在不断增加。把市场主体的活跃度保持住、提上去,是促进经济平稳增长的关键所在。要深化“放管服”改革,降低制度性交易成本,下硬功夫打造好发展软环境。 94 | 95 | 以简审批优服务便利投资兴业。市场配置资源是最有效率的形式。要进一步缩减市场准入负面清单,推动“非禁即入”普遍落实。政府要坚决把不该管的事项交给市场,最大限度减少对资源的直接配置,审批事项应减尽减,确需审批的要简化流程和环节,让企业多用时间跑市场、少费功夫跑审批。今年,要对所有涉企经营许可事项实行“证照分离”改革,使企业更便捷拿到营业执照并尽快正常运营,坚决克服“准入不准营”的现象;在全国推开工程建设项目审批制度改革,使全流程审批时间大幅缩短。继续压缩专利审查和商标注册时间。推行网上审批和服务,抓紧建成全国一体化在线政务服务平台,加快实现一网通办、异地可办,使更多事项不见面办理,确需到现场办的要“一窗受理、限时办结”“最多跑一次”。持续开展“减证便民”改革行动,不能让繁琐证明来回折腾企业和群众。建立政务服务“好差评”制度,服务绩效由企业和群众来评判。政府部门做好服务是本分,服务不好是失职。 96 | 97 | 以公正监管促进公平竞争。公平竞争是市场经济的核心,公正监管是公平竞争的保障。改革完善公平竞争审查和公正监管制度,加快清理妨碍统一市场和公平竞争的各种规定和做法。政简易从。规则越简约透明,监管越有力有效。国家层面重在制定统一的监管规则和标准,地方政府要把主要力量放在公正监管上。推进“双随机、一公开”跨部门联合监管,推行信用监管和“互联网+监管”改革,优化环保、消防、税务、市场监管等执法方式,对违法者依法严惩、对守法者无事不扰。深化综合行政执法改革,清理规范行政处罚事项,坚决治理多头检查、重复检查。对监管者也要强监管、立规矩,决不允许搞选择性执法、任性执法,决不允许刁难企业和群众。依法打击制售假冒伪劣商品等违法行为,让严重违法者付出付不起的代价。完善失信联合惩戒机制,促进各类市场主体守法诚信经营。用公正监管管出公平、管出效率、管出活力。 98 | 99 | 以改革推动降低涉企收费。深化电力市场化改革,清理电价附加收费,降低制造业用电成本,一般工商业平均电价再降低10%。深化收费公路制度改革,推动降低过路过桥费用,治理对客货运车辆不合理审批和乱收费、乱罚款。两年内基本取消全国高速公路省界收费站,实现不停车快捷收费,减少拥堵、便利群众。取消或降低一批铁路、港口收费。专项治理中介服务收费。继续清理规范行政事业性收费。加快收费清单“一张网”建设,让收费公开透明,让乱收费无处藏身。 100 | 101 | (三)坚持创新引领发展,培育壮大新动能。发挥我国人力人才资源丰富、国内市场巨大等综合优势,改革创新科技研发和产业化应用机制,大力培育专业精神,促进新旧动能接续转换。 102 | 103 | 推动传统产业改造提升。围绕推动制造业高质量发展,强化工业基础和技术创新能力,促进先进制造业和现代服务业融合发展,加快建设制造强国。打造工业互联网平台,拓展“智能+”,为制造业转型升级赋能。支持企业加快技术改造和设备更新,将固定资产加速折旧优惠政策扩大至全部制造业领域。强化质量基础支撑,推动标准与国际先进水平对接,提升产品和服务品质,让更多国内外用户选择中国制造、中国服务。 104 | 105 | 促进新兴产业加快发展。深化大数据、人工智能等研发应用,培育新一代信息技术、高端装备、生物医药、新能源汽车、新材料等新兴产业集群,壮大数字经济。坚持包容审慎监管,支持新业态新模式发展,促进平台经济、共享经济健康成长。加快在各行业各领域推进“互联网+”。持续推动网络提速降费。开展城市千兆宽带入户示范,改造提升远程教育、远程医疗网络,推动移动网络扩容升级,让用户切实感受到网速更快更稳定。今年中小企业宽带平均资费再降低15%,移动网络流量平均资费再降低20%以上,在全国实行“携号转网”,规范套餐设置,使降费实实在在、消费者明明白白。 106 | 107 | 提升科技支撑能力。加大基础研究和应用基础研究支持力度,强化原始创新,加强关键核心技术攻关。抓紧布局国家实验室,重组国家重点实验室体系。完善重大科技项目组织管理。健全以企业为主体的产学研一体化创新机制,支持企业牵头实施重大科技项目。加快建设科技创新资源开放共享平台,强化对中小企业的技术创新服务。扩大国际创新合作。全面加强知识产权保护,健全知识产权侵权惩罚性赔偿制度,促进发明创造和转化运用。科技创新本质上是人的创造性活动。要充分尊重和信任科研人员,赋予创新团队和领军人才更大的人财物支配权和技术路线决策权。进一步提高基础研究项目间接经费占比,开展项目经费使用“包干制”改革试点,不设科目比例限制,由科研团队自主决定使用。完善科技成果评价机制。要在推动科技体制改革举措落地见效上下功夫,决不能让改革政策停留在口头上、纸面上。大力简除烦苛,使科研人员潜心向学、创新突破。加强科研伦理和学风建设,惩戒学术不端,力戒浮躁之风。我国有世界上最大规模的科技人才队伍,营造良好的科研生态,就一定能够迎来各类英才竞现、创新成果泉涌的生动局面。 108 | 109 | 进一步把大众创业万众创新引向深入。鼓励更多社会主体创新创业,拓展经济社会发展空间,加强全方位服务,发挥双创示范基地带动作用。强化普惠性支持,落实好小规模纳税人增值税起征点从月销售额3万元提高到10万元等税收优惠政策。改革完善金融支持机制,设立科创板并试点注册制,鼓励发行双创金融债券,扩大知识产权质押融资,支持发展创业投资。改革完善人才培养、使用、评价机制,优化归国留学人员和外籍人才服务。把面向市场需求和弘扬人文精神结合起来,善聚善用各类人才,中国创新一定能更好发展,为人类文明进步作出应有贡献。 110 | 111 | (四)促进形成强大国内市场,持续释放内需潜力。充分发挥消费的基础作用、投资的关键作用,稳定国内有效需求,为经济平稳运行提供有力支撑。 112 | 113 | 推动消费稳定增长。多措并举促进城乡居民增收,增强消费能力。落实好新修订的个人所得税法,使符合减税政策的约8000万纳税人应享尽享。要顺应消费需求的新变化,多渠道增加优质产品和服务供给,加快破除民间资本进入的堵点。我国60岁以上人口已达2.5亿。要大力发展养老特别是社区养老服务业,对在社区提供日间照料、康复护理、助餐助行等服务的机构给予税费减免、资金支持、水电气热价格优惠等扶持,新建居住区应配套建设社区养老服务设施,加强农村养老服务设施建设,改革完善医养结合政策,扩大长期护理保险制度试点,让老年人拥有幸福的晚年,后来人就有可期的未来。婴幼儿照护事关千家万户。要针对实施全面两孩政策后的新情况,加快发展多种形式的婴幼儿照护服务,支持社会力量兴办托育服务机构,加强儿童安全保障。促进家政服务业提质扩容。发展全域旅游,壮大旅游产业。稳定汽车消费,继续执行新能源汽车购置优惠政策,推动充电、加氢等设施建设。发展消费新业态新模式,促进线上线下消费融合发展,培育消费新增长点。健全农村流通网络,支持电商和快递发展。加强消费者权益保护,让群众放心消费、便利消费。 114 | 115 | 合理扩大有效投资。紧扣国家发展战略,加快实施一批重点项目。完成铁路投资8000亿元、公路水运投资1.8万亿元,再开工一批重大水利工程,加快川藏铁路规划建设,加大城际交通、物流、市政、灾害防治、民用和通用航空等基础设施投资力度,加强新一代信息基础设施建设。今年中央预算内投资安排5776亿元,比去年增加400亿元。创新项目融资方式,适当降低基础设施等项目资本金比例,用好开发性金融工具,吸引更多民间资本参与重点领域项目建设。落实民间投资支持政策,有序推进政府和社会资本合作。改革完善招投标制度。政府要带头讲诚信守契约,决不能“新官不理旧账”,对拖欠企业的款项年底前要清偿一半以上,决不允许增加新的拖欠。 116 | 117 | (五)对标全面建成小康社会任务,扎实推进脱贫攻坚和乡村振兴。坚持农业农村优先发展,加强脱贫攻坚与乡村振兴统筹衔接,确保如期实现脱贫攻坚目标、农民生活达到全面小康水平。 118 | 119 | 打好精准脱贫攻坚战。重点解决实现“两不愁三保障”面临的突出问题,加大“三区三州”等深度贫困地区脱贫攻坚力度,加强基础设施建设,落实对特殊贫困人口的保障措施。脱贫致富离不开产业支撑,要大力扶持贫困地区发展特色优势产业。开展贫困地区控辍保学专项行动、明显降低辍学率,继续增加重点高校专项招收农村和贫困地区学生人数,用好教育这个阻断贫困代际传递的治本之策。基本完成“十三五”易地扶贫搬迁规划建设任务,加强后续扶持。对摘帽县和脱贫人口的扶持政策要保持一段时间,巩固脱贫成果。完善考核监督,用好中央脱贫攻坚专项巡视成果。越是到脱贫攻坚的关键阶段,越要抓实抓细各项工作,确保脱贫有实效、可持续、经得起历史检验。 120 | 121 | 抓好农业特别是粮食生产。近14亿中国人的饭碗,必须牢牢端在自己手上。要稳定粮食产量,优化品种结构。加强农田水利建设,新增高标准农田8000万亩以上。稳定生猪等畜禽生产,做好非洲猪瘟等疫病防控。加快农业科技改革创新,大力发展现代种业,加强先进实用技术推广,实施地理标志农产品保护工程,推进农业全程机械化。培育家庭农场、农民合作社等新型经营主体,加强面向小农户的社会化服务,发展多种形式规模经营。扶持主产区发展农产品精深加工。支持返乡入乡创业创新,推动一二三产业融合发展,壮大县域经济。务工收入是农民增收的大头。要根治拖欠农民工工资问题,抓紧制定专门行政法规,确保付出辛劳和汗水的农民工按时拿到应有的报酬。 122 | 123 | 扎实推进乡村建设。科学编制和实施建设规划,大力改善生产生活条件。加快实施农村饮水安全巩固提升工程,今明两年要解决好饮水困难人口的饮水安全问题,提高6000万农村人口供水保障水平。完成新一轮农村电网升级改造。新建改建农村公路20万公里。继续推进农村危房改造。因地制宜开展农村人居环境整治,推进“厕所革命”、垃圾污水治理,建设美丽乡村。 124 | 125 | 全面深化农村改革。推广农村土地征收、集体经营性建设用地入市、宅基地制度改革试点成果。深化集体产权、集体林权、国有林区林场、农垦、供销社等改革。改革完善农业支持保护体系,健全粮食价格市场化形成机制,扩大政策性农业保险改革试点,创新和加强农村金融服务。持续深化农村改革,广袤乡村必将焕发新的生机活力。 126 | 127 | (六)促进区域协调发展,提高新型城镇化质量。围绕解决发展不平衡不充分问题,改革完善相关机制和政策,促进基本公共服务均等化,推动区域优势互补、城乡融合发展。 128 | 129 | 优化区域发展格局。制定西部开发开放新的政策措施,西部地区企业所得税优惠等政策到期后继续执行。落实和完善促进东北全面振兴、中部地区崛起、东部率先发展的改革创新举措。京津冀协同发展重在疏解北京非首都功能,高标准建设雄安新区。落实粤港澳大湾区发展规划纲要,促进规则衔接,推动生产要素流动和人员往来便利化。将长三角区域一体化发展上升为国家战略,编制实施发展规划纲要。长江经济带发展要坚持上中下游协同,加强生态保护修复和综合交通运输体系建设,打造高质量发展经济带。支持资源型地区经济转型。加快补齐革命老区、民族地区、边疆地区、贫困地区发展短板。大力发展蓝色经济,保护海洋环境,建设海洋强国。 130 | 131 | 深入推进新型城镇化。坚持以中心城市引领城市群发展。抓好农业转移人口落户,推动城镇基本公共服务覆盖常住人口。更好解决群众住房问题,落实城市主体责任,改革完善住房市场体系和保障体系,促进房地产市场平稳健康发展。继续推进保障性住房建设和城镇棚户区改造,保障困难群体基本居住需求。继续推进地下综合管廊建设。城镇老旧小区量大面广,要大力进行改造提升,更新水电路气等配套设施,支持加装电梯和无障碍环境建设,健全便民市场、便利店、步行街、停车场等生活服务设施。新型城镇化要处处体现以人为核心,提高柔性化治理、精细化服务水平,让城市更加宜居,更具包容和人文关怀。 132 | 133 | (七)加强污染防治和生态建设,大力推动绿色发展。绿色发展是构建现代化经济体系的必然要求,是解决污染问题的根本之策。要改革完善相关制度,协同推动高质量发展与生态环境保护。 134 | 135 | 持续推进污染防治。巩固扩大蓝天保卫战成果,今年二氧化硫、氮氧化物排放量要下降3%,重点地区细颗粒物(PM2.5)浓度继续下降。持续开展京津冀及周边、长三角、汾渭平原大气污染治理攻坚,加强工业、燃煤、机动车三大污染源治理。做好北方地区清洁取暖工作,确保群众温暖过冬。强化水、土壤污染防治,今年化学需氧量、氨氮排放量要下降2%。加快治理黑臭水体,防治农业面源污染,推进重点流域和近岸海域综合整治。加强固体废弃物和城市垃圾分类处置,促进减量化、资源化、无害化。加强污染防治重大科技攻关。企业作为污染防治主体,必须依法履行环保责任。改革创新环境治理方式,对企业既依法依规监管,又重视合理诉求、加强帮扶指导,对需要达标整改的给予合理过渡期,避免处置措施简单粗暴、一关了之。企业有内在动力和外部压力,污染防治一定能取得更大成效。 136 | 137 | 壮大绿色环保产业。坚持源头治理,加快火电、钢铁行业超低排放改造,实施重污染行业达标排放改造。调整优化能源结构。推进煤炭清洁化利用。健全天然气产供储销体系。大力发展可再生能源,加快解决风、光、水电消纳问题。加大城市污水管网和处理设施建设力度。促进资源节约集约和循环利用,推广绿色建筑、绿色快递包装。改革完善环境经济政策,健全排污权交易制度,加快发展绿色金融,培育一批专业化环保骨干企业,提升绿色发展能力。 138 | 139 | 加强生态系统保护修复。推进山水林田湖草生态保护修复工程试点,持续抓好国土绿化,加强荒漠化、石漠化、水土流失治理。加大生物多样性保护力度。继续开展退耕还林还草还湿。深化国家公园体制改革。健全生态补偿机制。绿色发展人人有责,贵在行动、成在坚持。我们要共同努力,让人民群众享有美丽宜居环境。 140 | 141 | (八)深化重点领域改革,加快完善市场机制。聚焦突出矛盾和关键环节,推动相关改革深化,健全与高质量发展相适应的体制机制,把市场活力和社会创造力充分释放出来。 142 | 143 | 加快国资国企改革。加强和完善国有资产监管,推进国有资本投资、运营公司改革试点,促进国有资产保值增值。积极稳妥推进混合所有制改革。完善公司治理结构,健全市场化经营机制,建立职业经理人等制度。依法处置“僵尸企业”。深化电力、油气、铁路等领域改革,自然垄断行业要根据不同行业特点实行网运分开,将竞争性业务全面推向市场。国有企业要通过改革创新、强身健体,不断增强发展活力和核心竞争力。 144 | 145 | 下大气力优化民营经济发展环境。坚持“两个毫不动摇”,鼓励、支持、引导非公有制经济发展。按照竞争中性原则,在要素获取、准入许可、经营运行、政府采购和招投标等方面,对各类所有制企业平等对待。构建亲清新型政商关系,健全政企沟通机制,激发企业家精神,促进民营经济发展升级。保护产权必须坚定不移,对侵权行为要依法惩处,对错案冤案要有错必纠。要努力打造良好营商环境,让企业家安心搞经营、放心办企业。 146 | 147 | 深化财税金融体制改革。加大预算公开改革力度,全面实施预算绩效管理。深化中央与地方财政事权和支出责任划分改革,推进中央与地方收入划分改革。完善转移支付制度。健全地方税体系,稳步推进房地产税立法。规范地方政府举债融资机制。以服务实体经济为导向,改革优化金融体系结构,发展民营银行和社区银行。改革完善资本市场基础制度,促进多层次资本市场健康稳定发展,提高直接融资特别是股权融资比重。增强保险业风险保障功能。加强金融风险监测预警和化解处置。我国财政金融体系总体稳健,可运用的政策工具多,我们有能力守住不发生系统性风险的底线。 148 | 149 | (九)推动全方位对外开放,培育国际经济合作和竞争新优势。进一步拓展开放领域、优化开放布局,继续推动商品和要素流动型开放,更加注重规则等制度型开放,以高水平开放带动改革全面深化。 150 | 151 | 促进外贸稳中提质。推动出口市场多元化。扩大出口信用保险覆盖面。改革完善跨境电商等新业态扶持政策。推动服务贸易创新发展,引导加工贸易转型升级、向中西部转移,发挥好综合保税区作用。优化进口结构,积极扩大进口。办好第二届中国国际进口博览会。加快提升通关便利化水平。 152 | 153 | 加大吸引外资力度。进一步放宽市场准入,缩减外资准入负面清单,允许更多领域实行外资独资经营。落实金融等行业改革开放举措,完善债券市场开放政策。加快与国际通行经贸规则对接,提高政策透明度和执行一致性,营造内外资企业一视同仁、公平竞争的公正市场环境。加强外商合法权益保护。赋予自贸试验区更大改革创新自主权,增设上海自贸试验区新片区,推进海南自贸试验区建设、探索建设中国特色自由贸易港。支持国家级经开区、高新区、新区开展自贸试验区相关改革试点,增强辐射带动作用,打造改革开放新高地。中国投资环境一定会越来越好,各国企业在华发展机遇一定会越来越多。 154 | 155 | 推动共建“一带一路”。坚持共商共建共享,遵循市场原则和国际通行规则,发挥企业主体作用,推动基础设施互联互通,加强国际产能合作,拓展第三方市场合作。办好第二届“一带一路”国际合作高峰论坛。推动对外投资合作健康有序发展。 156 | 157 | 促进贸易和投资自由化便利化。中国坚定维护经济全球化和自由贸易,积极参与世贸组织改革。加快构建高标准自贸区网络,推进区域全面经济伙伴关系协定、中日韩自贸区、中欧投资协定谈判,继续推动中美经贸磋商。中国秉持互利合作、共赢发展,一贯主张通过平等协商解决贸易争端。我们对作出的承诺认真履行,对自身合法权益坚决维护。 158 | 159 | (十)加快发展社会事业,更好保障和改善民生。今年财政收支平衡压力加大,但基本民生投入确保只增不减。支持社会力量增加非基本公共服务供给,满足群众多层次、多样化需求。 160 | 161 | 发展更加公平更有质量的教育。深化教育教学改革。推进城乡义务教育一体化发展,加快改善乡村学校办学条件,加强乡村教师队伍建设,抓紧解决城镇学校“大班额”问题,保障进城务工人员随迁子女教育,发展“互联网+教育”,促进优质资源共享。多渠道扩大学前教育供给,无论是公办还是民办幼儿园,只要符合安全标准、收费合理、家长放心,政府都要支持。推进高中阶段教育普及,办好民族教育、特殊教育、继续教育,依法支持民办教育发展。持续抓好义务教育教师工资待遇落实。推进一流大学和一流学科建设,支持中西部建设有特色、高水平大学。今年财力虽然很紧张,国家财政性教育经费占国内生产总值比例继续保持在4%以上,中央财政教育支出安排超过1万亿元。我们要切实把宝贵的资金用好,努力办好人民满意的教育,托起明天的希望。 162 | 163 | 保障基本医疗卫生服务。继续提高城乡居民基本医保和大病保险保障水平,居民医保人均财政补助标准增加30元,一半用于大病保险。降低并统一大病保险起付线,报销比例由50%提高到60%,进一步减轻大病患者、困难群众医疗负担。加强重大疾病防治。我国受癌症困扰的家庭以千万计,要实施癌症防治行动,推进预防筛查、早诊早治和科研攻关,着力缓解民生的痛点。做好常见慢性病防治,把高血压、糖尿病等门诊用药纳入医保报销。加快儿童药物研发。加强罕见病用药保障。深化医保支付方式改革,优化医保支出结构。抓紧落实和完善跨省异地就医直接结算政策,尽快使异地就医患者在所有定点医院能持卡看病、即时结算,切实便利流动人口和随迁老人。完善药品集中采购和使用机制。深化公立医院综合改革。促进社会办医。发展“互联网+医疗健康”,加快建立远程医疗服务体系,加强基层医疗卫生机构能力建设和医护人员培养,提升分级诊疗和家庭医生签约服务质量。坚持预防为主,将新增基本公共卫生服务财政补助经费全部用于村和社区,务必让基层群众受益。抓好传染病、地方病、青少年近视防治。完善生育配套政策,加强妇幼保健服务。支持中医药事业传承创新发展。加强健康教育和健康管理。药品疫苗攸关生命安全,必须强化全程监管,对违法者要严惩不贷,对失职渎职者要严肃查办,坚决守住人民群众生命健康的防线。 164 | 165 | 完善社会保障制度和政策。推进多层次养老保障体系建设。继续提高退休人员基本养老金。落实退役军人待遇保障,完善退役士兵基本养老、基本医疗保险接续政策。适当提高城乡低保、专项救助等标准,加强困境儿童保障。加大城镇困难职工脱困力度。提升残疾预防和康复服务水平。我们要尽力为群众救急解困、雪中送炭,基本民生的底线要坚决兜牢。 166 | 167 | 丰富人民群众精神文化生活。培育和践行社会主义核心价值观,广泛开展群众性精神文明创建活动,大力弘扬奋斗精神、科学精神、劳模精神、工匠精神,汇聚起向上向善的强大力量。加快构建中国特色哲学社会科学。加强互联网内容建设。繁荣文艺创作,发展新闻出版、广播影视和档案等事业。加强文物保护利用和非物质文化遗产传承。推动文化事业和文化产业改革发展,提升基层公共文化服务能力。倡导全民阅读,推进学习型社会建设。深化中外人文交流。广泛开展全民健身活动。扎实做好2020年奥运会、残奥会备战工作,精心筹办北京冬奥会、冬残奥会,办好第七届世界军人运动会。人民群众身心健康,社会就充满活力,国家就繁荣兴旺。 168 | 169 | 加强和创新社会治理。推动社会治理重心向基层下移,推广促进社会和谐的“枫桥经验”,构建城乡社区治理新格局。引导支持社会组织、人道救助、志愿服务和慈善事业健康发展。健全社会信用体系。保障妇女、儿童、老人、残疾人合法权益。改进信访工作,依法及时解决群众合理诉求。加强社会心理服务。健全国家应急体系,提高防灾减灾救灾能力。加强安全生产,防范遏制重特大事故。做好地震、气象、水文、地质、测绘等工作。健全公共法律服务体系,深化普法宣传教育。加强国家安全能力建设。完善立体化社会治安防控体系,深入推进扫黑除恶专项斗争,依法惩治盗抢骗黄赌毒等违法犯罪活动,打击非法集资、传销等经济犯罪,整治侵犯公民个人信息等突出问题,坚决守护好人民群众的平安生活。 170 | 171 | 各位代表! 172 | 173 | 新的形势和任务,对政府工作提出了新的更高要求。各级政府要树牢“四个意识”,坚定“四个自信”,坚决做到“两个维护”,自觉在思想上政治上行动上同以习近平同志为核心的党中央保持高度一致,落实全面从严治党要求,勇于自我革命,深入推进简政放权,加快转职能、提效能,增强政府公信力和执行力,更好满足人民对美好生活的新期待。 174 | 175 | 坚持依法全面履职。深入贯彻全面依法治国基本方略,严格遵守宪法法律,把政府活动全面纳入法治轨道。各级政府要依法接受同级人大及其常委会的监督,自觉接受人民政协的民主监督,主动接受社会和舆论监督,让权力在阳光下运行。政府干的,都应是人民盼的。要坚持科学、民主、依法决策,认真听取人大代表、政协委员意见,听取民主党派、工商联、无党派人士和各人民团体意见,听取社会公众和企业意见,使各项政策符合基本国情和客观实际,更接地气、更合民意。全面推进政务公开。支持工会、共青团、妇联等群团组织更好发挥作用。全面落实行政执法责任制和问责制,对一切违法违规的行为都要坚决查处,对一切执法不公正不文明的现象都要坚决整治,对所有行政不作为的人员都要坚决追责。 176 | 177 | 深入推进党风廉政建设。扎实开展“不忘初心、牢记使命”主题教育。认真贯彻落实中央八项规定及其实施细则精神,持之以恒纠治“四风”。加强廉洁政府建设,一体推进不敢腐、不能腐、不想腐。强化审计监督。政府工作人员要自觉接受法律监督、监察监督和人民监督。衡量政绩最终是看结果。各级政府要坚决反对和整治一切形式主义、官僚主义,让干部从文山会海、迎评迎检、材料报表中解脱出来,把精力用在解决实际问题上。压减和规范督查检查考核事项,实施“互联网+督查”。减少开会和发文数量,今年国务院及其部门要带头大幅精简会议、坚决把文件压减三分之一以上。 178 | 179 | 切实强化责任担当。中国改革发展的巨大成就,是广大干部群众筚路蓝缕、千辛万苦干出来的。实现“两个一百年”奋斗目标,成就中国人民的幸福与追求,还得长期不懈地干。为政以公,行胜于言。各级政府及其工作人员要求真务实、力戒浮华,以推动改革发展的成果说话,以干事创业的实绩交卷。健全激励约束机制和尽职免责机制,营造干部愿干事、敢干事、能干成事的环境。更好发挥中央和地方两个积极性,尊重基层和群众首创精神,为地方大胆探索提供激励、留足空间。广大干部要树立强烈的事业心和进取心,事不避难、义不逃责,埋头苦干、结合实际创造性地干,努力干出无愧于人民的新业绩,干出中国发展的新辉煌。 180 | 181 | 各位代表! 182 | 183 | 我们要坚持和完善民族区域自治制度,全面贯彻党的民族政策,深化民族团结进步教育,铸牢中华民族共同体意识,促进各民族和睦相处、和衷共济、和谐发展。加大对民族地区和人口较少民族发展的支持,深入实施兴边富民行动,同心协力建设56个民族共同团结奋斗、共同繁荣发展的美好家园。 184 | 185 | 我们要全面贯彻党的宗教工作基本方针,坚持我国宗教的中国化方向,依法管理宗教事务,发挥宗教界人士和信教群众在促进经济社会发展中的积极作用。 186 | 187 | 我们要认真落实侨务政策,保障海外侨胞和归侨侨眷合法权益,改善和加强服务,发挥好他们的独特优势和重要作用,画好海内外中华儿女的最大同心圆,汇聚起共创辉煌的澎湃力量。 188 | 189 | 各位代表! 190 | 191 | 过去一年,国防和军队建设扎实推进,强军事业展现许多新气象新作为。新的一年,要继续以党在新时代的强军目标为引领,牢固确立习近平强军思想在国防和军队建设中的指导地位,深入推进政治建军、改革强军、科技兴军、依法治军。坚持党对军队绝对领导的根本原则和制度,全面深入贯彻军委主席负责制。贯彻新时代军事战略方针,提高实战化军事训练水平,坚决维护国家主权、安全、发展利益。继续深化国防和军队改革,建立健全中国特色社会主义军事政策制度体系。加强和完善国防教育、国防动员体系建设,增强全民国防意识。深入实施军民融合发展战略,加快国防科技创新步伐。各级政府要大力关心支持国防和军队建设,深入开展“双拥”活动,让军政军民团结之树根深叶茂、永葆常青。 192 | 193 | 各位代表! 194 | 195 | 我们要继续全面准确贯彻“一国两制”、“港人治港”、“澳人治澳”、高度自治的方针,严格依照宪法和基本法办事。全力支持香港、澳门特别行政区政府和行政长官依法施政。支持港澳抓住共建“一带一路”和粤港澳大湾区建设的重大机遇,更好发挥自身优势,全面深化与内地互利合作。我们坚信,香港、澳门一定能与祖国内地同发展共进步、一定能保持长期繁荣稳定。 196 | 197 | 我们要坚持对台工作大政方针。全面贯彻落实习近平总书记在《告台湾同胞书》发表40周年纪念会上的重要讲话精神,坚持一个中国原则和“九二共识”,推动两岸关系和平发展、推进祖国和平统一进程。坚决反对和遏制“台独”分裂图谋和行径,坚决维护国家主权和领土完整。深化两岸融合发展,持续扩大两岸经济文化交流合作。两岸同胞同根相系、同命相连,应携手共创共享全体中国人的美好未来。 198 | 199 | 各位代表! 200 | 201 | 当今世界面临百年未有之大变局。我们将坚定不移走和平发展道路、奉行互利共赢的开放战略,坚定维护多边主义和以联合国为核心的国际体系。积极参与全球治理体系的改革完善,坚定维护开放型世界经济,推动构建人类命运共同体。加强与主要大国沟通对话与协调合作,深化同周边国家关系,拓展与发展中国家互利合作。积极为妥善应对全球性挑战和解决地区热点问题提供更多中国建设性方案。中国愿与各国携手合作、同舟共济,为促进世界持久和平与共同发展作出新的贡献。 202 | 203 | 各位代表! 204 | 205 | 奋斗创造历史,实干成就未来。我们要更加紧密地团结在以习近平同志为核心的党中央周围,高举中国特色社会主义伟大旗帜,以习近平新时代中国特色社会主义思想为指导,迎难而上,开拓进取,以经济社会发展的优异成绩迎接中华人民共和国成立70周年,为决胜全面建成小康社会、夺取新时代中国特色社会主义伟大胜利,为把我国建设成为富强民主文明和谐美丽的社会主义现代化强国、实现中华民族伟大复兴的中国梦不懈奋斗! -------------------------------------------------------------------------------- /data/data_banknote_authentication.txt: -------------------------------------------------------------------------------- 1 | 3.6216,8.6661,-2.8073,-0.44699,0 2 | 4.5459,8.1674,-2.4586,-1.4621,0 3 | 3.866,-2.6383,1.9242,0.10645,0 4 | 3.4566,9.5228,-4.0112,-3.5944,0 5 | 0.32924,-4.4552,4.5718,-0.9888,0 6 | 4.3684,9.6718,-3.9606,-3.1625,0 7 | 3.5912,3.0129,0.72888,0.56421,0 8 | 2.0922,-6.81,8.4636,-0.60216,0 9 | 3.2032,5.7588,-0.75345,-0.61251,0 10 | 1.5356,9.1772,-2.2718,-0.73535,0 11 | 1.2247,8.7779,-2.2135,-0.80647,0 12 | 3.9899,-2.7066,2.3946,0.86291,0 13 | 1.8993,7.6625,0.15394,-3.1108,0 14 | -1.5768,10.843,2.5462,-2.9362,0 15 | 3.404,8.7261,-2.9915,-0.57242,0 16 | 4.6765,-3.3895,3.4896,1.4771,0 17 | 2.6719,3.0646,0.37158,0.58619,0 18 | 0.80355,2.8473,4.3439,0.6017,0 19 | 1.4479,-4.8794,8.3428,-2.1086,0 20 | 5.2423,11.0272,-4.353,-4.1013,0 21 | 5.7867,7.8902,-2.6196,-0.48708,0 22 | 0.3292,-4.4552,4.5718,-0.9888,0 23 | 3.9362,10.1622,-3.8235,-4.0172,0 24 | 0.93584,8.8855,-1.6831,-1.6599,0 25 | 4.4338,9.887,-4.6795,-3.7483,0 26 | 0.7057,-5.4981,8.3368,-2.8715,0 27 | 1.1432,-3.7413,5.5777,-0.63578,0 28 | -0.38214,8.3909,2.1624,-3.7405,0 29 | 6.5633,9.8187,-4.4113,-3.2258,0 30 | 4.8906,-3.3584,3.4202,1.0905,0 31 | -0.24811,-0.17797,4.9068,0.15429,0 32 | 1.4884,3.6274,3.308,0.48921,0 33 | 4.2969,7.617,-2.3874,-0.96164,0 34 | -0.96511,9.4111,1.7305,-4.8629,0 35 | -1.6162,0.80908,8.1628,0.60817,0 36 | 2.4391,6.4417,-0.80743,-0.69139,0 37 | 2.6881,6.0195,-0.46641,-0.69268,0 38 | 3.6289,0.81322,1.6277,0.77627,0 39 | 4.5679,3.1929,-2.1055,0.29653,0 40 | 3.4805,9.7008,-3.7541,-3.4379,0 41 | 4.1711,8.722,-3.0224,-0.59699,0 42 | -0.2062,9.2207,-3.7044,-6.8103,0 43 | -0.0068919,9.2931,-0.41243,-1.9638,0 44 | 0.96441,5.8395,2.3235,0.066365,0 45 | 2.8561,6.9176,-0.79372,0.48403,0 46 | -0.7869,9.5663,-3.7867,-7.5034,0 47 | 2.0843,6.6258,0.48382,-2.2134,0 48 | -0.7869,9.5663,-3.7867,-7.5034,0 49 | 3.9102,6.065,-2.4534,-0.68234,0 50 | 1.6349,3.286,2.8753,0.087054,0 51 | 4.3239,-4.8835,3.4356,-0.5776,0 52 | 5.262,3.9834,-1.5572,1.0103,0 53 | 3.1452,5.825,-0.51439,-1.4944,0 54 | 2.549,6.1499,-1.1605,-1.2371,0 55 | 4.9264,5.496,-2.4774,-0.50648,0 56 | 4.8265,0.80287,1.6371,1.1875,0 57 | 2.5635,6.7769,-0.61979,0.38576,0 58 | 5.807,5.0097,-2.2384,0.43878,0 59 | 3.1377,-4.1096,4.5701,0.98963,0 60 | -0.78289,11.3603,-0.37644,-7.0495,0 61 | 2.888,0.44696,4.5907,-0.24398,0 62 | 0.49665,5.527,1.7785,-0.47156,0 63 | 4.2586,11.2962,-4.0943,-4.3457,0 64 | 1.7939,-1.1174,1.5454,-0.26079,0 65 | 5.4021,3.1039,-1.1536,1.5651,0 66 | 2.5367,2.599,2.0938,0.20085,0 67 | 4.6054,-4.0765,2.7587,0.31981,0 68 | 2.4235,9.5332,-3.0789,-2.7746,0 69 | 1.0009,7.7846,-0.28219,-2.6608,0 70 | 0.12326,8.9848,-0.9351,-2.4332,0 71 | 3.9529,-2.3548,2.3792,0.48274,0 72 | 4.1373,0.49248,1.093,1.8276,0 73 | 4.7181,10.0153,-3.9486,-3.8582,0 74 | 4.1654,-3.4495,3.643,1.0879,0 75 | 4.4069,10.9072,-4.5775,-4.4271,0 76 | 2.3066,3.5364,0.57551,0.41938,0 77 | 3.7935,7.9853,-2.5477,-1.872,0 78 | 0.049175,6.1437,1.7828,-0.72113,0 79 | 0.24835,7.6439,0.9885,-0.87371,0 80 | 1.1317,3.9647,3.3979,0.84351,0 81 | 2.8033,9.0862,-3.3668,-1.0224,0 82 | 4.4682,2.2907,0.95766,0.83058,0 83 | 5.0185,8.5978,-2.9375,-1.281,0 84 | 1.8664,7.7763,-0.23849,-2.9634,0 85 | 3.245,6.63,-0.63435,0.86937,0 86 | 4.0296,2.6756,0.80685,0.71679,0 87 | -1.1313,1.9037,7.5339,1.022,0 88 | 0.87603,6.8141,0.84198,-0.17156,0 89 | 4.1197,-2.7956,2.0707,0.67412,0 90 | 3.8027,0.81529,2.1041,1.0245,0 91 | 1.4806,7.6377,-2.7876,-1.0341,0 92 | 4.0632,3.584,0.72545,0.39481,0 93 | 4.3064,8.2068,-2.7824,-1.4336,0 94 | 2.4486,-6.3175,7.9632,0.20602,0 95 | 3.2718,1.7837,2.1161,0.61334,0 96 | -0.64472,-4.6062,8.347,-2.7099,0 97 | 2.9543,1.076,0.64577,0.89394,0 98 | 2.1616,-6.8804,8.1517,-0.081048,0 99 | 3.82,10.9279,-4.0112,-5.0284,0 100 | -2.7419,11.4038,2.5394,-5.5793,0 101 | 3.3669,-5.1856,3.6935,-1.1427,0 102 | 4.5597,-2.4211,2.6413,1.6168,0 103 | 5.1129,-0.49871,0.62863,1.1189,0 104 | 3.3397,-4.6145,3.9823,-0.23751,0 105 | 4.2027,0.22761,0.96108,0.97282,0 106 | 3.5438,1.2395,1.997,2.1547,0 107 | 2.3136,10.6651,-3.5288,-4.7672,0 108 | -1.8584,7.886,-1.6643,-1.8384,0 109 | 3.106,9.5414,-4.2536,-4.003,0 110 | 2.9163,10.8306,-3.3437,-4.122,0 111 | 3.9922,-4.4676,3.7304,-0.1095,0 112 | 1.518,5.6946,0.094818,-0.026738,0 113 | 3.2351,9.647,-3.2074,-2.5948,0 114 | 4.2188,6.8162,-1.2804,0.76076,0 115 | 1.7819,6.9176,-1.2744,-1.5759,0 116 | 2.5331,2.9135,-0.822,-0.12243,0 117 | 3.8969,7.4163,-1.8245,0.14007,0 118 | 2.108,6.7955,-0.1708,0.4905,0 119 | 2.8969,0.70768,2.29,1.8663,0 120 | 0.9297,-3.7971,4.6429,-0.2957,0 121 | 3.4642,10.6878,-3.4071,-4.109,0 122 | 4.0713,10.4023,-4.1722,-4.7582,0 123 | -1.4572,9.1214,1.7425,-5.1241,0 124 | -1.5075,1.9224,7.1466,0.89136,0 125 | -0.91718,9.9884,1.1804,-5.2263,0 126 | 2.994,7.2011,-1.2153,0.3211,0 127 | -2.343,12.9516,3.3285,-5.9426,0 128 | 3.7818,-2.8846,2.2558,-0.15734,0 129 | 4.6689,1.3098,0.055404,1.909,0 130 | 3.4663,1.1112,1.7425,1.3388,0 131 | 3.2697,-4.3414,3.6884,-0.29829,0 132 | 5.1302,8.6703,-2.8913,-1.5086,0 133 | 2.0139,6.1416,0.37929,0.56938,0 134 | 0.4339,5.5395,2.033,-0.40432,0 135 | -1.0401,9.3987,0.85998,-5.3336,0 136 | 4.1605,11.2196,-3.6136,-4.0819,0 137 | 5.438,9.4669,-4.9417,-3.9202,0 138 | 5.032,8.2026,-2.6256,-1.0341,0 139 | 5.2418,10.5388,-4.1174,-4.2797,0 140 | -0.2062,9.2207,-3.7044,-6.8103,0 141 | 2.0911,0.94358,4.5512,1.234,0 142 | 1.7317,-0.34765,4.1905,-0.99138,0 143 | 4.1736,3.3336,-1.4244,0.60429,0 144 | 3.9232,-3.2467,3.4579,0.83705,0 145 | 3.8481,10.1539,-3.8561,-4.2228,0 146 | 0.5195,-3.2633,3.0895,-0.9849,0 147 | 3.8584,0.78425,1.1033,1.7008,0 148 | 1.7496,-0.1759,5.1827,1.2922,0 149 | 3.6277,0.9829,0.68861,0.63403,0 150 | 2.7391,7.4018,0.071684,-2.5302,0 151 | 4.5447,8.2274,-2.4166,-1.5875,0 152 | -1.7599,11.9211,2.6756,-3.3241,0 153 | 5.0691,0.21313,0.20278,1.2095,0 154 | 3.4591,11.112,-4.2039,-5.0931,0 155 | 1.9358,8.1654,-0.023425,-2.2586,0 156 | 2.486,-0.99533,5.3404,-0.15475,0 157 | 2.4226,-4.5752,5.947,0.21507,0 158 | 3.9479,-3.7723,2.883,0.019813,0 159 | 2.2634,-4.4862,3.6558,-0.61251,0 160 | 1.3566,4.2358,2.1341,0.3211,0 161 | 5.0452,3.8964,-1.4304,0.86291,0 162 | 3.5499,8.6165,-3.2794,-1.2009,0 163 | 0.17346,7.8695,0.26876,-3.7883,0 164 | 2.4008,9.3593,-3.3565,-3.3526,0 165 | 4.8851,1.5995,-0.00029081,1.6401,0 166 | 4.1927,-3.2674,2.5839,0.21766,0 167 | 1.1166,8.6496,-0.96252,-1.8112,0 168 | 1.0235,6.901,-2.0062,-2.7125,0 169 | -1.803,11.8818,2.0458,-5.2728,0 170 | 0.11739,6.2761,-1.5495,-2.4746,0 171 | 0.5706,-0.0248,1.2421,-0.5621,0 172 | 4.0552,-2.4583,2.2806,1.0323,0 173 | -1.6952,1.0657,8.8294,0.94955,0 174 | -1.1193,10.7271,2.0938,-5.6504,0 175 | 1.8799,2.4707,2.4931,0.37671,0 176 | 3.583,-3.7971,3.4391,-0.12501,0 177 | 0.19081,9.1297,-3.725,-5.8224,0 178 | 3.6582,5.6864,-1.7157,-0.23751,0 179 | -0.13144,-1.7775,8.3316,0.35214,0 180 | 2.3925,9.798,-3.0361,-2.8224,0 181 | 1.6426,3.0149,0.22849,-0.147,0 182 | -0.11783,-1.5789,8.03,-0.028031,0 183 | -0.69572,8.6165,1.8419,-4.3289,0 184 | 2.9421,7.4101,-0.97709,-0.88406,0 185 | -1.7559,11.9459,3.0946,-4.8978,0 186 | -1.2537,10.8803,1.931,-4.3237,0 187 | 3.2585,-4.4614,3.8024,-0.15087,0 188 | 1.8314,6.3672,-0.036278,0.049554,0 189 | 4.5645,-3.6275,2.8684,0.27714,0 190 | 2.7365,-5.0325,6.6608,-0.57889,0 191 | 0.9297,-3.7971,4.6429,-0.2957,0 192 | 3.9663,10.1684,-4.1131,-4.6056,0 193 | 1.4578,-0.08485,4.1785,0.59136,0 194 | 4.8272,3.0687,0.68604,0.80731,0 195 | -2.341,12.3784,0.70403,-7.5836,0 196 | -1.8584,7.886,-1.6643,-1.8384,0 197 | 4.1454,7.257,-1.9153,-0.86078,0 198 | 1.9157,6.0816,0.23705,-2.0116,0 199 | 4.0215,-2.1914,2.4648,1.1409,0 200 | 5.8862,5.8747,-2.8167,-0.30087,0 201 | -2.0897,10.8265,2.3603,-3.4198,0 202 | 4.0026,-3.5943,3.5573,0.26809,0 203 | -0.78689,9.5663,-3.7867,-7.5034,0 204 | 4.1757,10.2615,-3.8552,-4.3056,0 205 | 0.83292,7.5404,0.65005,-0.92544,0 206 | 4.8077,2.2327,-0.26334,1.5534,0 207 | 5.3063,5.2684,-2.8904,-0.52716,0 208 | 2.5605,9.2683,-3.5913,-1.356,0 209 | 2.1059,7.6046,-0.47755,-1.8461,0 210 | 2.1721,-0.73874,5.4672,-0.72371,0 211 | 4.2899,9.1814,-4.6067,-4.3263,0 212 | 3.5156,10.1891,-4.2759,-4.978,0 213 | 2.614,8.0081,-3.7258,-1.3069,0 214 | 0.68087,2.3259,4.9085,0.54998,0 215 | 4.1962,0.74493,0.83256,0.753,0 216 | 6.0919,2.9673,-1.3267,1.4551,0 217 | 1.3234,3.2964,0.2362,-0.11984,0 218 | 1.3264,1.0326,5.6566,-0.41337,0 219 | -0.16735,7.6274,1.2061,-3.6241,0 220 | -1.3,10.2678,-2.953,-5.8638,0 221 | -2.2261,12.5398,2.9438,-3.5258,0 222 | 2.4196,6.4665,-0.75688,0.228,0 223 | 1.0987,0.6394,5.989,-0.58277,0 224 | 4.6464,10.5326,-4.5852,-4.206,0 225 | -0.36038,4.1158,3.1143,-0.37199,0 226 | 1.3562,3.2136,4.3465,0.78662,0 227 | 0.5706,-0.0248,1.2421,-0.5621,0 228 | -2.6479,10.1374,-1.331,-5.4707,0 229 | 3.1219,-3.137,1.9259,-0.37458,0 230 | 5.4944,1.5478,0.041694,1.9284,0 231 | -1.3389,1.552,7.0806,1.031,0 232 | -2.3361,11.9604,3.0835,-5.4435,0 233 | 2.2596,-0.033118,4.7355,-0.2776,0 234 | 0.46901,-0.63321,7.3848,0.36507,0 235 | 2.7296,2.8701,0.51124,0.5099,0 236 | 2.0466,2.03,2.1761,-0.083634,0 237 | -1.3274,9.498,2.4408,-5.2689,0 238 | 3.8905,-2.1521,2.6302,1.1047,0 239 | 3.9994,0.90427,1.1693,1.6892,0 240 | 2.3952,9.5083,-3.1783,-3.0086,0 241 | 3.2704,6.9321,-1.0456,0.23447,0 242 | -1.3931,1.5664,7.5382,0.78403,0 243 | 1.6406,3.5488,1.3964,-0.36424,0 244 | 2.7744,6.8576,-1.0671,0.075416,0 245 | 2.4287,9.3821,-3.2477,-1.4543,0 246 | 4.2134,-2.806,2.0116,0.67412,0 247 | 1.6472,0.48213,4.7449,1.225,0 248 | 2.0597,-0.99326,5.2119,-0.29312,0 249 | 0.3798,0.7098,0.7572,-0.4444,0 250 | 1.0135,8.4551,-1.672,-2.0815,0 251 | 4.5691,-4.4552,3.1769,0.0042961,0 252 | 0.57461,10.1105,-1.6917,-4.3922,0 253 | 0.5734,9.1938,-0.9094,-1.872,0 254 | 5.2868,3.257,-1.3721,1.1668,0 255 | 4.0102,10.6568,-4.1388,-5.0646,0 256 | 4.1425,-3.6792,3.8281,1.6297,0 257 | 3.0934,-2.9177,2.2232,0.22283,0 258 | 2.2034,5.9947,0.53009,0.84998,0 259 | 3.744,0.79459,0.95851,1.0077,0 260 | 3.0329,2.2948,2.1135,0.35084,0 261 | 3.7731,7.2073,-1.6814,-0.94742,0 262 | 3.1557,2.8908,0.59693,0.79825,0 263 | 1.8114,7.6067,-0.9788,-2.4668,0 264 | 4.988,7.2052,-3.2846,-1.1608,0 265 | 2.483,6.6155,-0.79287,-0.90863,0 266 | 1.594,4.7055,1.3758,0.081882,0 267 | -0.016103,9.7484,0.15394,-1.6134,0 268 | 3.8496,9.7939,-4.1508,-4.4582,0 269 | 0.9297,-3.7971,4.6429,-0.2957,0 270 | 4.9342,2.4107,-0.17594,1.6245,0 271 | 3.8417,10.0215,-4.2699,-4.9159,0 272 | 5.3915,9.9946,-3.8081,-3.3642,0 273 | 4.4072,-0.070365,2.0416,1.1319,0 274 | 2.6946,6.7976,-0.40301,0.44912,0 275 | 5.2756,0.13863,0.12138,1.1435,0 276 | 3.4312,6.2637,-1.9513,-0.36165,0 277 | 4.052,-0.16555,0.45383,0.51248,0 278 | 1.3638,-4.7759,8.4182,-1.8836,0 279 | 0.89566,7.7763,-2.7473,-1.9353,0 280 | 1.9265,7.7557,-0.16823,-3.0771,0 281 | 0.20977,-0.46146,7.7267,0.90946,0 282 | 4.068,-2.9363,2.1992,0.50084,0 283 | 2.877,-4.0599,3.6259,-0.32544,0 284 | 0.3223,-0.89808,8.0883,0.69222,0 285 | -1.3,10.2678,-2.953,-5.8638,0 286 | 1.7747,-6.4334,8.15,-0.89828,0 287 | 1.3419,-4.4221,8.09,-1.7349,0 288 | 0.89606,10.5471,-1.4175,-4.0327,0 289 | 0.44125,2.9487,4.3225,0.7155,0 290 | 3.2422,6.2265,0.12224,-1.4466,0 291 | 2.5678,3.5136,0.61406,-0.40691,0 292 | -2.2153,11.9625,0.078538,-7.7853,0 293 | 4.1349,6.1189,-2.4294,-0.19613,0 294 | 1.934,-9.2828e-06,4.816,-0.33967,0 295 | 2.5068,1.1588,3.9249,0.12585,0 296 | 2.1464,6.0795,-0.5778,-2.2302,0 297 | 0.051979,7.0521,-2.0541,-3.1508,0 298 | 1.2706,8.035,-0.19651,-2.1888,0 299 | 1.143,0.83391,5.4552,-0.56984,0 300 | 2.2928,9.0386,-3.2417,-1.2991,0 301 | 0.3292,-4.4552,4.5718,-0.9888,0 302 | 2.9719,6.8369,-0.2702,0.71291,0 303 | 1.6849,8.7489,-1.2641,-1.3858,0 304 | -1.9177,11.6894,2.5454,-3.2763,0 305 | 2.3729,10.4726,-3.0087,-3.2013,0 306 | 1.0284,9.767,-1.3687,-1.7853,0 307 | 0.27451,9.2186,-3.2863,-4.8448,0 308 | 1.6032,-4.7863,8.5193,-2.1203,0 309 | 4.616,10.1788,-4.2185,-4.4245,0 310 | 4.2478,7.6956,-2.7696,-1.0767,0 311 | 4.0215,-2.7004,2.4957,0.36636,0 312 | 5.0297,-4.9704,3.5025,-0.23751,0 313 | 1.5902,2.2948,3.2403,0.18404,0 314 | 2.1274,5.1939,-1.7971,-1.1763,0 315 | 1.1811,8.3847,-2.0567,-0.90345,0 316 | 0.3292,-4.4552,4.5718,-0.9888,0 317 | 5.7353,5.2808,-2.2598,0.075416,0 318 | 2.6718,5.6574,0.72974,-1.4892,0 319 | 1.5799,-4.7076,7.9186,-1.5487,0 320 | 2.9499,2.2493,1.3458,-0.037083,0 321 | 0.5195,-3.2633,3.0895,-0.9849,0 322 | 3.7352,9.5911,-3.9032,-3.3487,0 323 | -1.7344,2.0175,7.7618,0.93532,0 324 | 3.884,10.0277,-3.9298,-4.0819,0 325 | 3.5257,1.2829,1.9276,1.7991,0 326 | 4.4549,2.4976,1.0313,0.96894,0 327 | -0.16108,-6.4624,8.3573,-1.5216,0 328 | 4.2164,9.4607,-4.9288,-5.2366,0 329 | 3.5152,6.8224,-0.67377,-0.46898,0 330 | 1.6988,2.9094,2.9044,0.11033,0 331 | 1.0607,2.4542,2.5188,-0.17027,0 332 | 2.0421,1.2436,4.2171,0.90429,0 333 | 3.5594,1.3078,1.291,1.6556,0 334 | 3.0009,5.8126,-2.2306,-0.66553,0 335 | 3.9294,1.4112,1.8076,0.89782,0 336 | 3.4667,-4.0724,4.2882,1.5418,0 337 | 3.966,3.9213,0.70574,0.33662,0 338 | 1.0191,2.33,4.9334,0.82929,0 339 | 0.96414,5.616,2.2138,-0.12501,0 340 | 1.8205,6.7562,0.0099913,0.39481,0 341 | 4.9923,7.8653,-2.3515,-0.71984,0 342 | -1.1804,11.5093,0.15565,-6.8194,0 343 | 4.0329,0.23175,0.89082,1.1823,0 344 | 0.66018,10.3878,-1.4029,-3.9151,0 345 | 3.5982,7.1307,-1.3035,0.21248,0 346 | -1.8584,7.886,-1.6643,-1.8384,0 347 | 4.0972,0.46972,1.6671,0.91593,0 348 | 3.3299,0.91254,1.5806,0.39352,0 349 | 3.1088,3.1122,0.80857,0.4336,0 350 | -4.2859,8.5234,3.1392,-0.91639,0 351 | -1.2528,10.2036,2.1787,-5.6038,0 352 | 0.5195,-3.2633,3.0895,-0.9849,0 353 | 0.3292,-4.4552,4.5718,-0.9888,0 354 | 0.88872,5.3449,2.045,-0.19355,0 355 | 3.5458,9.3718,-4.0351,-3.9564,0 356 | -0.21661,8.0329,1.8848,-3.8853,0 357 | 2.7206,9.0821,-3.3111,-0.96811,0 358 | 3.2051,8.6889,-2.9033,-0.7819,0 359 | 2.6917,10.8161,-3.3,-4.2888,0 360 | -2.3242,11.5176,1.8231,-5.375,0 361 | 2.7161,-4.2006,4.1914,0.16981,0 362 | 3.3848,3.2674,0.90967,0.25128,0 363 | 1.7452,4.8028,2.0878,0.62627,0 364 | 2.805,0.57732,1.3424,1.2133,0 365 | 5.7823,5.5788,-2.4089,-0.056479,0 366 | 3.8999,1.734,1.6011,0.96765,0 367 | 3.5189,6.332,-1.7791,-0.020273,0 368 | 3.2294,7.7391,-0.37816,-2.5405,0 369 | 3.4985,3.1639,0.22677,-0.1651,0 370 | 2.1948,1.3781,1.1582,0.85774,0 371 | 2.2526,9.9636,-3.1749,-2.9944,0 372 | 4.1529,-3.9358,2.8633,-0.017686,0 373 | 0.74307,11.17,-1.3824,-4.0728,0 374 | 1.9105,8.871,-2.3386,-0.75604,0 375 | -1.5055,0.070346,6.8681,-0.50648,0 376 | 0.58836,10.7727,-1.3884,-4.3276,0 377 | 3.2303,7.8384,-3.5348,-1.2151,0 378 | -1.9922,11.6542,2.6542,-5.2107,0 379 | 2.8523,9.0096,-3.761,-3.3371,0 380 | 4.2772,2.4955,0.48554,0.36119,0 381 | 1.5099,0.039307,6.2332,-0.30346,0 382 | 5.4188,10.1457,-4.084,-3.6991,0 383 | 0.86202,2.6963,4.2908,0.54739,0 384 | 3.8117,10.1457,-4.0463,-4.5629,0 385 | 0.54777,10.3754,-1.5435,-4.1633,0 386 | 2.3718,7.4908,0.015989,-1.7414,0 387 | -2.4953,11.1472,1.9353,-3.4638,0 388 | 4.6361,-2.6611,2.8358,1.1991,0 389 | -2.2527,11.5321,2.5899,-3.2737,0 390 | 3.7982,10.423,-4.1602,-4.9728,0 391 | -0.36279,8.2895,-1.9213,-3.3332,0 392 | 2.1265,6.8783,0.44784,-2.2224,0 393 | 0.86736,5.5643,1.6765,-0.16769,0 394 | 3.7831,10.0526,-3.8869,-3.7366,0 395 | -2.2623,12.1177,0.28846,-7.7581,0 396 | 1.2616,4.4303,-1.3335,-1.7517,0 397 | 2.6799,3.1349,0.34073,0.58489,0 398 | -0.39816,5.9781,1.3912,-1.1621,0 399 | 4.3937,0.35798,2.0416,1.2004,0 400 | 2.9695,5.6222,0.27561,-1.1556,0 401 | 1.3049,-0.15521,6.4911,-0.75346,0 402 | 2.2123,-5.8395,7.7687,-0.85302,0 403 | 1.9647,6.9383,0.57722,0.66377,0 404 | 3.0864,-2.5845,2.2309,0.30947,0 405 | 0.3798,0.7098,0.7572,-0.4444,0 406 | 0.58982,7.4266,1.2353,-2.9595,0 407 | 0.14783,7.946,1.0742,-3.3409,0 408 | -0.062025,6.1975,1.099,-1.131,0 409 | 4.223,1.1319,0.72202,0.96118,0 410 | 0.64295,7.1018,0.3493,-0.41337,0 411 | 1.941,0.46351,4.6472,1.0879,0 412 | 4.0047,0.45937,1.3621,1.6181,0 413 | 3.7767,9.7794,-3.9075,-3.5323,0 414 | 3.4769,-0.15314,2.53,2.4495,0 415 | 1.9818,9.2621,-3.521,-1.872,0 416 | 3.8023,-3.8696,4.044,0.95343,0 417 | 4.3483,11.1079,-4.0857,-4.2539,0 418 | 1.1518,1.3864,5.2727,-0.43536,0 419 | -1.2576,1.5892,7.0078,0.42455,0 420 | 1.9572,-5.1153,8.6127,-1.4297,0 421 | -2.484,12.1611,2.8204,-3.7418,0 422 | -1.1497,1.2954,7.701,0.62627,0 423 | 4.8368,10.0132,-4.3239,-4.3276,0 424 | -0.12196,8.8068,0.94566,-4.2267,0 425 | 1.9429,6.3961,0.092248,0.58102,0 426 | 1.742,-4.809,8.2142,-2.0659,0 427 | -1.5222,10.8409,2.7827,-4.0974,0 428 | -1.3,10.2678,-2.953,-5.8638,0 429 | 3.4246,-0.14693,0.80342,0.29136,0 430 | 2.5503,-4.9518,6.3729,-0.41596,0 431 | 1.5691,6.3465,-0.1828,-2.4099,0 432 | 1.3087,4.9228,2.0013,0.22024,0 433 | 5.1776,8.2316,-3.2511,-1.5694,0 434 | 2.229,9.6325,-3.1123,-2.7164,0 435 | 5.6272,10.0857,-4.2931,-3.8142,0 436 | 1.2138,8.7986,-2.1672,-0.74182,0 437 | 0.3798,0.7098,0.7572,-0.4444,0 438 | 0.5415,6.0319,1.6825,-0.46122,0 439 | 4.0524,5.6802,-1.9693,0.026279,0 440 | 4.7285,2.1065,-0.28305,1.5625,0 441 | 3.4359,0.66216,2.1041,1.8922,0 442 | 0.86816,10.2429,-1.4912,-4.0082,0 443 | 3.359,9.8022,-3.8209,-3.7133,0 444 | 3.6702,2.9942,0.85141,0.30688,0 445 | 1.3349,6.1189,0.46497,0.49826,0 446 | 3.1887,-3.4143,2.7742,-0.2026,0 447 | 2.4527,2.9653,0.20021,-0.056479,0 448 | 3.9121,2.9735,0.92852,0.60558,0 449 | 3.9364,10.5885,-3.725,-4.3133,0 450 | 3.9414,-3.2902,3.1674,1.0866,0 451 | 3.6922,-3.9585,4.3439,1.3517,0 452 | 5.681,7.795,-2.6848,-0.92544,0 453 | 0.77124,9.0862,-1.2281,-1.4996,0 454 | 3.5761,9.7753,-3.9795,-3.4638,0 455 | 1.602,6.1251,0.52924,0.47886,0 456 | 2.6682,10.216,-3.4414,-4.0069,0 457 | 2.0007,1.8644,2.6491,0.47369,0 458 | 0.64215,3.1287,4.2933,0.64696,0 459 | 4.3848,-3.0729,3.0423,1.2741,0 460 | 0.77445,9.0552,-2.4089,-1.3884,0 461 | 0.96574,8.393,-1.361,-1.4659,0 462 | 3.0948,8.7324,-2.9007,-0.96682,0 463 | 4.9362,7.6046,-2.3429,-0.85302,0 464 | -1.9458,11.2217,1.9079,-3.4405,0 465 | 5.7403,-0.44284,0.38015,1.3763,0 466 | -2.6989,12.1984,0.67661,-8.5482,0 467 | 1.1472,3.5985,1.9387,-0.43406,0 468 | 2.9742,8.96,-2.9024,-1.0379,0 469 | 4.5707,7.2094,-3.2794,-1.4944,0 470 | 0.1848,6.5079,2.0133,-0.87242,0 471 | 0.87256,9.2931,-0.7843,-2.1978,0 472 | 0.39559,6.8866,1.0588,-0.67587,0 473 | 3.8384,6.1851,-2.0439,-0.033204,0 474 | 2.8209,7.3108,-0.81857,-1.8784,0 475 | 2.5817,9.7546,-3.1749,-2.9957,0 476 | 3.8213,0.23175,2.0133,2.0564,0 477 | 0.3798,0.7098,0.7572,-0.4444,0 478 | 3.4893,6.69,-1.2042,-0.38751,0 479 | -1.7781,0.8546,7.1303,0.027572,0 480 | 2.0962,2.4769,1.9379,-0.040962,0 481 | 0.94732,-0.57113,7.1903,-0.67587,0 482 | 2.8261,9.4007,-3.3034,-1.0509,0 483 | 0.0071249,8.3661,0.50781,-3.8155,0 484 | 0.96788,7.1907,1.2798,-2.4565,0 485 | 4.7432,2.1086,0.1368,1.6543,0 486 | 3.6575,7.2797,-2.2692,-1.144,0 487 | 3.8832,6.4023,-2.432,-0.98363,0 488 | 3.4776,8.811,-3.1886,-0.92285,0 489 | 1.1315,7.9212,1.093,-2.8444,0 490 | 2.8237,2.8597,0.19678,0.57196,0 491 | 1.9321,6.0423,0.26019,-2.053,0 492 | 3.0632,-3.3315,5.1305,0.8267,0 493 | -1.8411,10.8306,2.769,-3.0901,0 494 | 2.8084,11.3045,-3.3394,-4.4194,0 495 | 2.5698,-4.4076,5.9856,0.078002,0 496 | -0.12624,10.3216,-3.7121,-6.1185,0 497 | 3.3756,-4.0951,4.367,1.0698,0 498 | -0.048008,-1.6037,8.4756,0.75558,0 499 | 0.5706,-0.0248,1.2421,-0.5621,0 500 | 0.88444,6.5906,0.55837,-0.44182,0 501 | 3.8644,3.7061,0.70403,0.35214,0 502 | 1.2999,2.5762,2.0107,-0.18967,0 503 | 2.0051,-6.8638,8.132,-0.2401,0 504 | 4.9294,0.27727,0.20792,0.33662,0 505 | 2.8297,6.3485,-0.73546,-0.58665,0 506 | 2.565,8.633,-2.9941,-1.3082,0 507 | 2.093,8.3061,0.022844,-3.2724,0 508 | 4.6014,5.6264,-2.1235,0.19309,0 509 | 5.0617,-0.35799,0.44698,0.99868,0 510 | -0.2951,9.0489,-0.52725,-2.0789,0 511 | 3.577,2.4004,1.8908,0.73231,0 512 | 3.9433,2.5017,1.5215,0.903,0 513 | 2.6648,10.754,-3.3994,-4.1685,0 514 | 5.9374,6.1664,-2.5905,-0.36553,0 515 | 2.0153,1.8479,3.1375,0.42843,0 516 | 5.8782,5.9409,-2.8544,-0.60863,0 517 | -2.3983,12.606,2.9464,-5.7888,0 518 | 1.762,4.3682,2.1384,0.75429,0 519 | 4.2406,-2.4852,1.608,0.7155,0 520 | 3.4669,6.87,-1.0568,-0.73147,0 521 | 3.1896,5.7526,-0.18537,-0.30087,0 522 | 0.81356,9.1566,-2.1492,-4.1814,0 523 | 0.52855,0.96427,4.0243,-1.0483,0 524 | 2.1319,-2.0403,2.5574,-0.061652,0 525 | 0.33111,4.5731,2.057,-0.18967,0 526 | 1.2746,8.8172,-1.5323,-1.7957,0 527 | 2.2091,7.4556,-1.3284,-3.3021,0 528 | 2.5328,7.528,-0.41929,-2.6478,0 529 | 3.6244,1.4609,1.3501,1.9284,0 530 | -1.3885,12.5026,0.69118,-7.5487,0 531 | 5.7227,5.8312,-2.4097,-0.24527,0 532 | 3.3583,10.3567,-3.7301,-3.6991,0 533 | 2.5227,2.2369,2.7236,0.79438,0 534 | 0.045304,6.7334,1.0708,-0.9332,0 535 | 4.8278,7.7598,-2.4491,-1.2216,0 536 | 1.9476,-4.7738,8.527,-1.8668,0 537 | 2.7659,0.66216,4.1494,-0.28406,0 538 | -0.10648,-0.76771,7.7575,0.64179,0 539 | 0.72252,-0.053811,5.6703,-1.3509,0 540 | 4.2475,1.4816,-0.48355,0.95343,0 541 | 3.9772,0.33521,2.2566,2.1625,0 542 | 3.6667,4.302,0.55923,0.33791,0 543 | 2.8232,10.8513,-3.1466,-3.9784,0 544 | -1.4217,11.6542,-0.057699,-7.1025,0 545 | 4.2458,1.1981,0.66633,0.94696,0 546 | 4.1038,-4.8069,3.3491,-0.49225,0 547 | 1.4507,8.7903,-2.2324,-0.65259,0 548 | 3.4647,-3.9172,3.9746,0.36119,0 549 | 1.8533,6.1458,1.0176,-2.0401,0 550 | 3.5288,0.71596,1.9507,1.9375,0 551 | 3.9719,1.0367,0.75973,1.0013,0 552 | 3.534,9.3614,-3.6316,-1.2461,0 553 | 3.6894,9.887,-4.0788,-4.3664,0 554 | 3.0672,-4.4117,3.8238,-0.81682,0 555 | 2.6463,-4.8152,6.3549,0.003003,0 556 | 2.2893,3.733,0.6312,-0.39786,0 557 | 1.5673,7.9274,-0.056842,-2.1694,0 558 | 4.0405,0.51524,1.0279,1.106,0 559 | 4.3846,-4.8794,3.3662,-0.029324,0 560 | 2.0165,-0.25246,5.1707,1.0763,0 561 | 4.0446,11.1741,-4.3582,-4.7401,0 562 | -0.33729,-0.64976,7.6659,0.72326,0 563 | -2.4604,12.7302,0.91738,-7.6418,0 564 | 4.1195,10.9258,-3.8929,-4.1802,0 565 | 2.0193,0.82356,4.6369,1.4202,0 566 | 1.5701,7.9129,0.29018,-2.1953,0 567 | 2.6415,7.586,-0.28562,-1.6677,0 568 | 5.0214,8.0764,-3.0515,-1.7155,0 569 | 4.3435,3.3295,0.83598,0.64955,0 570 | 1.8238,-6.7748,8.3873,-0.54139,0 571 | 3.9382,0.9291,0.78543,0.6767,0 572 | 2.2517,-5.1422,4.2916,-1.2487,0 573 | 5.504,10.3671,-4.413,-4.0211,0 574 | 2.8521,9.171,-3.6461,-1.2047,0 575 | 1.1676,9.1566,-2.0867,-0.80647,0 576 | 2.6104,8.0081,-0.23592,-1.7608,0 577 | 0.32444,10.067,-1.1982,-4.1284,0 578 | 3.8962,-4.7904,3.3954,-0.53751,0 579 | 2.1752,-0.8091,5.1022,-0.67975,0 580 | 1.1588,8.9331,-2.0807,-1.1272,0 581 | 4.7072,8.2957,-2.5605,-1.4905,0 582 | -1.9667,11.8052,-0.40472,-7.8719,0 583 | 4.0552,0.40143,1.4563,0.65343,0 584 | 2.3678,-6.839,8.4207,-0.44829,0 585 | 0.33565,6.8369,0.69718,-0.55691,0 586 | 4.3398,-5.3036,3.8803,-0.70432,0 587 | 1.5456,8.5482,0.4187,-2.1784,0 588 | 1.4276,8.3847,-2.0995,-1.9677,0 589 | -0.27802,8.1881,-3.1338,-2.5276,0 590 | 0.93611,8.6413,-1.6351,-1.3043,0 591 | 4.6352,-3.0087,2.6773,1.212,0 592 | 1.5268,-5.5871,8.6564,-1.722,0 593 | 0.95626,2.4728,4.4578,0.21636,0 594 | -2.7914,1.7734,6.7756,-0.39915,0 595 | 5.2032,3.5116,-1.2538,1.0129,0 596 | 3.1836,7.2321,-1.0713,-2.5909,0 597 | 0.65497,5.1815,1.0673,-0.42113,0 598 | 5.6084,10.3009,-4.8003,-4.3534,0 599 | 1.105,7.4432,0.41099,-3.0332,0 600 | 3.9292,-2.9156,2.2129,0.30817,0 601 | 1.1558,6.4003,1.5506,0.6961,0 602 | 2.5581,2.6218,1.8513,0.40257,0 603 | 2.7831,10.9796,-3.557,-4.4039,0 604 | 3.7635,2.7811,0.66119,0.34179,0 605 | -2.6479,10.1374,-1.331,-5.4707,0 606 | 1.0652,8.3682,-1.4004,-1.6509,0 607 | -1.4275,11.8797,0.41613,-6.9978,0 608 | 5.7456,10.1808,-4.7857,-4.3366,0 609 | 5.086,3.2798,-1.2701,1.1189,0 610 | 3.4092,5.4049,-2.5228,-0.89958,0 611 | -0.2361,9.3221,2.1307,-4.3793,0 612 | 3.8197,8.9951,-4.383,-4.0327,0 613 | -1.1391,1.8127,6.9144,0.70127,0 614 | 4.9249,0.68906,0.77344,1.2095,0 615 | 2.5089,6.841,-0.029423,0.44912,0 616 | -0.2062,9.2207,-3.7044,-6.8103,0 617 | 3.946,6.8514,-1.5443,-0.5582,0 618 | -0.278,8.1881,-3.1338,-2.5276,0 619 | 1.8592,3.2074,-0.15966,-0.26208,0 620 | 0.56953,7.6294,1.5754,-3.2233,0 621 | 3.4626,-4.449,3.5427,0.15429,0 622 | 3.3951,1.1484,2.1401,2.0862,0 623 | 5.0429,-0.52974,0.50439,1.106,0 624 | 3.7758,7.1783,-1.5195,0.40128,0 625 | 4.6562,7.6398,-2.4243,-1.2384,0 626 | 4.0948,-2.9674,2.3689,0.75429,0 627 | 1.8384,6.063,0.54723,0.51248,0 628 | 2.0153,0.43661,4.5864,-0.3151,0 629 | 3.5251,0.7201,1.6928,0.64438,0 630 | 3.757,-5.4236,3.8255,-1.2526,0 631 | 2.5989,3.5178,0.7623,0.81119,0 632 | 1.8994,0.97462,4.2265,0.81377,0 633 | 3.6941,-3.9482,4.2625,1.1577,0 634 | 4.4295,-2.3507,1.7048,0.90946,0 635 | 6.8248,5.2187,-2.5425,0.5461,0 636 | 1.8967,-2.5163,2.8093,-0.79742,0 637 | 2.1526,-6.1665,8.0831,-0.34355,0 638 | 3.3004,7.0811,-1.3258,0.22283,0 639 | 2.7213,7.05,-0.58808,0.41809,0 640 | 3.8846,-3.0336,2.5334,0.20214,0 641 | 4.1665,-0.4449,0.23448,0.27843,0 642 | 0.94225,5.8561,1.8762,-0.32544,0 643 | 5.1321,-0.031048,0.32616,1.1151,0 644 | 0.38251,6.8121,1.8128,-0.61251,0 645 | 3.0333,-2.5928,2.3183,0.303,0 646 | 2.9233,6.0464,-0.11168,-0.58665,0 647 | 1.162,10.2926,-1.2821,-4.0392,0 648 | 3.7791,2.5762,1.3098,0.5655,0 649 | 0.77765,5.9781,1.1941,-0.3526,0 650 | -0.38388,-1.0471,8.0514,0.49567,0 651 | 0.21084,9.4359,-0.094543,-1.859,0 652 | 2.9571,-4.5938,5.9068,0.57196,0 653 | 4.6439,-3.3729,2.5976,0.55257,0 654 | 3.3577,-4.3062,6.0241,0.18274,0 655 | 3.5127,2.9073,1.0579,0.40774,0 656 | 2.6562,10.7044,-3.3085,-4.0767,0 657 | -1.3612,10.694,1.7022,-2.9026,0 658 | -0.278,8.1881,-3.1338,-2.5276,0 659 | 1.04,-6.9321,8.2888,-1.2991,0 660 | 2.1881,2.7356,1.3278,-0.1832,0 661 | 4.2756,-2.6528,2.1375,0.94437,0 662 | -0.11996,6.8741,0.91995,-0.6694,0 663 | 2.9736,8.7944,-3.6359,-1.3754,0 664 | 3.7798,-3.3109,2.6491,0.066365,0 665 | 5.3586,3.7557,-1.7345,1.0789,0 666 | 1.8373,6.1292,0.84027,0.55257,0 667 | 1.2262,0.89599,5.7568,-0.11596,0 668 | -0.048008,-0.56078,7.7215,0.453,0 669 | 0.5706,-0.024841,1.2421,-0.56208,0 670 | 4.3634,0.46351,1.4281,2.0202,0 671 | 3.482,-4.1634,3.5008,-0.078462,0 672 | 0.51947,-3.2633,3.0895,-0.98492,0 673 | 2.3164,-2.628,3.1529,-0.08622,0 674 | -1.8348,11.0334,3.1863,-4.8888,0 675 | 1.3754,8.8793,-1.9136,-0.53751,0 676 | -0.16682,5.8974,0.49839,-0.70044,0 677 | 0.29961,7.1328,-0.31475,-1.1828,0 678 | 0.25035,9.3262,-3.6873,-6.2543,0 679 | 2.4673,1.3926,1.7125,0.41421,0 680 | 0.77805,6.6424,-1.1425,-1.0573,0 681 | 3.4465,2.9508,1.0271,0.5461,0 682 | 2.2429,-4.1427,5.2333,-0.40173,0 683 | 3.7321,-3.884,3.3577,-0.0060486,0 684 | 4.3365,-3.584,3.6884,0.74912,0 685 | -2.0759,10.8223,2.6439,-4.837,0 686 | 4.0715,7.6398,-2.0824,-1.1698,0 687 | 0.76163,5.8209,1.1959,-0.64613,0 688 | -0.53966,7.3273,0.46583,-1.4543,0 689 | 2.6213,5.7919,0.065686,-1.5759,0 690 | 3.0242,-3.3378,2.5865,-0.54785,0 691 | 5.8519,5.3905,-2.4037,-0.061652,0 692 | 0.5706,-0.0248,1.2421,-0.5621,0 693 | 3.9771,11.1513,-3.9272,-4.3444,0 694 | 1.5478,9.1814,-1.6326,-1.7375,0 695 | 0.74054,0.36625,2.1992,0.48403,0 696 | 0.49571,10.2243,-1.097,-4.0159,0 697 | 1.645,7.8612,-0.87598,-3.5569,0 698 | 3.6077,6.8576,-1.1622,0.28231,0 699 | 3.2403,-3.7082,5.2804,0.41291,0 700 | 3.9166,10.2491,-4.0926,-4.4659,0 701 | 3.9262,6.0299,-2.0156,-0.065531,0 702 | 5.591,10.4643,-4.3839,-4.3379,0 703 | 3.7522,-3.6978,3.9943,1.3051,0 704 | 1.3114,4.5462,2.2935,0.22541,0 705 | 3.7022,6.9942,-1.8511,-0.12889,0 706 | 4.364,-3.1039,2.3757,0.78532,0 707 | 3.5829,1.4423,1.0219,1.4008,0 708 | 4.65,-4.8297,3.4553,-0.25174,0 709 | 5.1731,3.9606,-1.983,0.40774,0 710 | 3.2692,3.4184,0.20706,-0.066824,0 711 | 2.4012,1.6223,3.0312,0.71679,0 712 | 1.7257,-4.4697,8.2219,-1.8073,0 713 | 4.7965,6.9859,-1.9967,-0.35001,0 714 | 4.0962,10.1891,-3.9323,-4.1827,0 715 | 2.5559,3.3605,2.0321,0.26809,0 716 | 3.4916,8.5709,-3.0326,-0.59182,0 717 | 0.5195,-3.2633,3.0895,-0.9849,0 718 | 2.9856,7.2673,-0.409,-2.2431,0 719 | 4.0932,5.4132,-1.8219,0.23576,0 720 | 1.7748,-0.76978,5.5854,1.3039,0 721 | 5.2012,0.32694,0.17965,1.1797,0 722 | -0.45062,-1.3678,7.0858,-0.40303,0 723 | 4.8451,8.1116,-2.9512,-1.4724,0 724 | 0.74841,7.2756,1.1504,-0.5388,0 725 | 5.1213,8.5565,-3.3917,-1.5474,0 726 | 3.6181,-3.7454,2.8273,-0.71208,0 727 | 0.040498,8.5234,1.4461,-3.9306,0 728 | -2.6479,10.1374,-1.331,-5.4707,0 729 | 0.37984,0.70975,0.75716,-0.44441,0 730 | -0.95923,0.091039,6.2204,-1.4828,0 731 | 2.8672,10.0008,-3.2049,-3.1095,0 732 | 1.0182,9.109,-0.62064,-1.7129,0 733 | -2.7143,11.4535,2.1092,-3.9629,0 734 | 3.8244,-3.1081,2.4537,0.52024,0 735 | 2.7961,2.121,1.8385,0.38317,0 736 | 3.5358,6.7086,-0.81857,0.47886,0 737 | -0.7056,8.7241,2.2215,-4.5965,0 738 | 4.1542,7.2756,-2.4766,-1.2099,0 739 | 0.92703,9.4318,-0.66263,-1.6728,0 740 | 1.8216,-6.4748,8.0514,-0.41855,0 741 | -2.4473,12.6247,0.73573,-7.6612,0 742 | 3.5862,-3.0957,2.8093,0.24481,0 743 | 0.66191,9.6594,-0.28819,-1.6638,0 744 | 4.7926,1.7071,-0.051701,1.4926,0 745 | 4.9852,8.3516,-2.5425,-1.2823,0 746 | 0.75736,3.0294,2.9164,-0.068117,0 747 | 4.6499,7.6336,-1.9427,-0.37458,0 748 | -0.023579,7.1742,0.78457,-0.75734,0 749 | 0.85574,0.0082678,6.6042,-0.53104,0 750 | 0.88298,0.66009,6.0096,-0.43277,0 751 | 4.0422,-4.391,4.7466,1.137,0 752 | 2.2546,8.0992,-0.24877,-3.2698,0 753 | 0.38478,6.5989,-0.3336,-0.56466,0 754 | 3.1541,-5.1711,6.5991,0.57455,0 755 | 2.3969,0.23589,4.8477,1.437,0 756 | 4.7114,2.0755,-0.2702,1.2379,0 757 | 4.0127,10.1477,-3.9366,-4.0728,0 758 | 2.6606,3.1681,1.9619,0.18662,0 759 | 3.931,1.8541,-0.023425,1.2314,0 760 | 0.01727,8.693,1.3989,-3.9668,0 761 | 3.2414,0.40971,1.4015,1.1952,0 762 | 2.2504,3.5757,0.35273,0.2836,0 763 | -1.3971,3.3191,-1.3927,-1.9948,1 764 | 0.39012,-0.14279,-0.031994,0.35084,1 765 | -1.6677,-7.1535,7.8929,0.96765,1 766 | -3.8483,-12.8047,15.6824,-1.281,1 767 | -3.5681,-8.213,10.083,0.96765,1 768 | -2.2804,-0.30626,1.3347,1.3763,1 769 | -1.7582,2.7397,-2.5323,-2.234,1 770 | -0.89409,3.1991,-1.8219,-2.9452,1 771 | 0.3434,0.12415,-0.28733,0.14654,1 772 | -0.9854,-6.661,5.8245,0.5461,1 773 | -2.4115,-9.1359,9.3444,-0.65259,1 774 | -1.5252,-6.2534,5.3524,0.59912,1 775 | -0.61442,-0.091058,-0.31818,0.50214,1 776 | -0.36506,2.8928,-3.6461,-3.0603,1 777 | -5.9034,6.5679,0.67661,-6.6797,1 778 | -1.8215,2.7521,-0.72261,-2.353,1 779 | -0.77461,-1.8768,2.4023,1.1319,1 780 | -1.8187,-9.0366,9.0162,-0.12243,1 781 | -3.5801,-12.9309,13.1779,-2.5677,1 782 | -1.8219,-6.8824,5.4681,0.057313,1 783 | -0.3481,-0.38696,-0.47841,0.62627,1 784 | 0.47368,3.3605,-4.5064,-4.0431,1 785 | -3.4083,4.8587,-0.76888,-4.8668,1 786 | -1.6662,-0.30005,1.4238,0.024986,1 787 | -2.0962,-7.1059,6.6188,-0.33708,1 788 | -2.6685,-10.4519,9.1139,-1.7323,1 789 | -0.47465,-4.3496,1.9901,0.7517,1 790 | 1.0552,1.1857,-2.6411,0.11033,1 791 | 1.1644,3.8095,-4.9408,-4.0909,1 792 | -4.4779,7.3708,-0.31218,-6.7754,1 793 | -2.7338,0.45523,2.4391,0.21766,1 794 | -2.286,-5.4484,5.8039,0.88231,1 795 | -1.6244,-6.3444,4.6575,0.16981,1 796 | 0.50813,0.47799,-1.9804,0.57714,1 797 | 1.6408,4.2503,-4.9023,-2.6621,1 798 | 0.81583,4.84,-5.2613,-6.0823,1 799 | -5.4901,9.1048,-0.38758,-5.9763,1 800 | -3.2238,2.7935,0.32274,-0.86078,1 801 | -2.0631,-1.5147,1.219,0.44524,1 802 | -0.91318,-2.0113,-0.19565,0.066365,1 803 | 0.6005,1.9327,-3.2888,-0.32415,1 804 | 0.91315,3.3377,-4.0557,-1.6741,1 805 | -0.28015,3.0729,-3.3857,-2.9155,1 806 | -3.6085,3.3253,-0.51954,-3.5737,1 807 | -6.2003,8.6806,0.0091344,-3.703,1 808 | -4.2932,3.3419,0.77258,-0.99785,1 809 | -3.0265,-0.062088,0.68604,-0.055186,1 810 | -1.7015,-0.010356,-0.99337,-0.53104,1 811 | -0.64326,2.4748,-2.9452,-1.0276,1 812 | -0.86339,1.9348,-2.3729,-1.0897,1 813 | -2.0659,1.0512,-0.46298,-1.0974,1 814 | -2.1333,1.5685,-0.084261,-1.7453,1 815 | -1.2568,-1.4733,2.8718,0.44653,1 816 | -3.1128,-6.841,10.7402,-1.0172,1 817 | -4.8554,-5.9037,10.9818,-0.82199,1 818 | -2.588,3.8654,-0.3336,-1.2797,1 819 | 0.24394,1.4733,-1.4192,-0.58535,1 820 | -1.5322,-5.0966,6.6779,0.17498,1 821 | -4.0025,-13.4979,17.6772,-3.3202,1 822 | -4.0173,-8.3123,12.4547,-1.4375,1 823 | -3.0731,-0.53181,2.3877,0.77627,1 824 | -1.979,3.2301,-1.3575,-2.5819,1 825 | -0.4294,-0.14693,0.044265,-0.15605,1 826 | -2.234,-7.0314,7.4936,0.61334,1 827 | -4.211,-12.4736,14.9704,-1.3884,1 828 | -3.8073,-8.0971,10.1772,0.65084,1 829 | -2.5912,-0.10554,1.2798,1.0414,1 830 | -2.2482,3.0915,-2.3969,-2.6711,1 831 | -1.4427,3.2922,-1.9702,-3.4392,1 832 | -0.39416,-0.020702,-0.066267,-0.44699,1 833 | -1.522,-6.6383,5.7491,-0.10691,1 834 | -2.8267,-9.0407,9.0694,-0.98233,1 835 | -1.7263,-6.0237,5.2419,0.29524,1 836 | -0.94255,0.039307,-0.24192,0.31593,1 837 | -0.89569,3.0025,-3.6067,-3.4457,1 838 | -6.2815,6.6651,0.52581,-7.0107,1 839 | -2.3211,3.166,-1.0002,-2.7151,1 840 | -1.3414,-2.0776,2.8093,0.60688,1 841 | -2.258,-9.3263,9.3727,-0.85949,1 842 | -3.8858,-12.8461,12.7957,-3.1353,1 843 | -1.8969,-6.7893,5.2761,-0.32544,1 844 | -0.52645,-0.24832,-0.45613,0.41938,1 845 | 0.0096613,3.5612,-4.407,-4.4103,1 846 | -3.8826,4.898,-0.92311,-5.0801,1 847 | -2.1405,-0.16762,1.321,-0.20906,1 848 | -2.4824,-7.3046,6.839,-0.59053,1 849 | -2.9098,-10.0712,8.4156,-1.9948,1 850 | -0.60975,-4.002,1.8471,0.6017,1 851 | 0.83625,1.1071,-2.4706,-0.062945,1 852 | 0.60731,3.9544,-4.772,-4.4853,1 853 | -4.8861,7.0542,-0.17252,-6.959,1 854 | -3.1366,0.42212,2.6225,-0.064238,1 855 | -2.5754,-5.6574,6.103,0.65214,1 856 | -1.8782,-6.5865,4.8486,-0.021566,1 857 | 0.24261,0.57318,-1.9402,0.44007,1 858 | 1.296,4.2855,-4.8457,-2.9013,1 859 | 0.25943,5.0097,-5.0394,-6.3862,1 860 | -5.873,9.1752,-0.27448,-6.0422,1 861 | -3.4605,2.6901,0.16165,-1.0224,1 862 | -2.3797,-1.4402,1.1273,0.16076,1 863 | -1.2424,-1.7175,-0.52553,-0.21036,1 864 | 0.20216,1.9182,-3.2828,-0.61768,1 865 | 0.59823,3.5012,-3.9795,-1.7841,1 866 | -0.77995,3.2322,-3.282,-3.1004,1 867 | -4.1409,3.4619,-0.47841,-3.8879,1 868 | -6.5084,8.7696,0.23191,-3.937,1 869 | -4.4996,3.4288,0.56265,-1.1672,1 870 | -3.3125,0.10139,0.55323,-0.2957,1 871 | -1.9423,0.3766,-1.2898,-0.82458,1 872 | -0.75793,2.5349,-3.0464,-1.2629,1 873 | -0.95403,1.9824,-2.3163,-1.1957,1 874 | -2.2173,1.4671,-0.72689,-1.1724,1 875 | -2.799,1.9679,-0.42357,-2.1125,1 876 | -1.8629,-0.84841,2.5377,0.097399,1 877 | -3.5916,-6.2285,10.2389,-1.1543,1 878 | -5.1216,-5.3118,10.3846,-1.0612,1 879 | -3.2854,4.0372,-0.45356,-1.8228,1 880 | -0.56877,1.4174,-1.4252,-1.1246,1 881 | -2.3518,-4.8359,6.6479,-0.060358,1 882 | -4.4861,-13.2889,17.3087,-3.2194,1 883 | -4.3876,-7.7267,11.9655,-1.4543,1 884 | -3.3604,-0.32696,2.1324,0.6017,1 885 | -1.0112,2.9984,-1.1664,-1.6185,1 886 | 0.030219,-1.0512,1.4024,0.77369,1 887 | -1.6514,-8.4985,9.1122,1.2379,1 888 | -3.2692,-12.7406,15.5573,-0.14182,1 889 | -2.5701,-6.8452,8.9999,2.1353,1 890 | -1.3066,0.25244,0.7623,1.7758,1 891 | -1.6637,3.2881,-2.2701,-2.2224,1 892 | -0.55008,2.8659,-1.6488,-2.4319,1 893 | 0.21431,-0.69529,0.87711,0.29653,1 894 | -0.77288,-7.4473,6.492,0.36119,1 895 | -1.8391,-9.0883,9.2416,-0.10432,1 896 | -0.63298,-5.1277,4.5624,1.4797,1 897 | 0.0040545,0.62905,-0.64121,0.75817,1 898 | -0.28696,3.1784,-3.5767,-3.1896,1 899 | -5.2406,6.6258,-0.19908,-6.8607,1 900 | -1.4446,2.1438,-0.47241,-1.6677,1 901 | -0.65767,-2.8018,3.7115,0.99739,1 902 | -1.5449,-10.1498,9.6152,-1.2332,1 903 | -2.8957,-12.0205,11.9149,-2.7552,1 904 | -0.81479,-5.7381,4.3919,0.3211,1 905 | 0.50225,0.65388,-1.1793,0.39998,1 906 | 0.74521,3.6357,-4.4044,-4.1414,1 907 | -2.9146,4.0537,-0.45699,-4.0327,1 908 | -1.3907,-1.3781,2.3055,-0.021566,1 909 | -1.786,-8.1157,7.0858,-1.2112,1 910 | -1.7322,-9.2828,7.719,-1.7168,1 911 | 0.55298,-3.4619,1.7048,1.1008,1 912 | 2.031,1.852,-3.0121,0.003003,1 913 | 1.2279,4.0309,-4.6435,-3.9125,1 914 | -4.2249,6.2699,0.15822,-5.5457,1 915 | -2.5346,-0.77392,3.3602,0.00171,1 916 | -1.749,-6.332,6.0987,0.14266,1 917 | -0.539,-5.167,3.4399,0.052141,1 918 | 1.5631,0.89599,-1.9702,0.65472,1 919 | 2.3917,4.5565,-4.9888,-2.8987,1 920 | 0.89512,4.7738,-4.8431,-5.5909,1 921 | -5.4808,8.1819,0.27818,-5.0323,1 922 | -2.8833,1.7713,0.68946,-0.4638,1 923 | -1.4174,-2.2535,1.518,0.61981,1 924 | 0.4283,-0.94981,-1.0731,0.3211,1 925 | 1.5904,2.2121,-3.1183,-0.11725,1 926 | 1.7425,3.6833,-4.0129,-1.7207,1 927 | -0.23356,3.2405,-3.0669,-2.7784,1 928 | -3.6227,3.9958,-0.35845,-3.9047,1 929 | -6.1536,7.9295,0.61663,-3.2646,1 930 | -3.9172,2.6652,0.78886,-0.7819,1 931 | -2.2214,-0.23798,0.56008,0.05602,1 932 | -0.49241,0.89392,-1.6283,-0.56854,1 933 | 0.26517,2.4066,-2.8416,-0.59958,1 934 | -0.10234,1.8189,-2.2169,-0.56725,1 935 | -1.6176,1.0926,-0.35502,-0.59958,1 936 | -1.8448,1.254,0.27218,-1.0728,1 937 | -1.2786,-2.4087,4.5735,0.47627,1 938 | -2.902,-7.6563,11.8318,-0.84268,1 939 | -4.3773,-5.5167,10.939,-0.4082,1 940 | -2.0529,3.8385,-0.79544,-1.2138,1 941 | 0.18868,0.70148,-0.51182,0.0055892,1 942 | -1.7279,-6.841,8.9494,0.68058,1 943 | -3.3793,-13.7731,17.9274,-2.0323,1 944 | -3.1273,-7.1121,11.3897,-0.083634,1 945 | -2.121,-0.05588,1.949,1.353,1 946 | -1.7697,3.4329,-1.2144,-2.3789,1 947 | -0.0012852,0.13863,-0.19651,0.0081754,1 948 | -1.682,-6.8121,7.1398,1.3323,1 949 | -3.4917,-12.1736,14.3689,-0.61639,1 950 | -3.1158,-8.6289,10.4403,0.97153,1 951 | -2.0891,-0.48422,1.704,1.7435,1 952 | -1.6936,2.7852,-2.1835,-1.9276,1 953 | -1.2846,3.2715,-1.7671,-3.2608,1 954 | -0.092194,0.39315,-0.32846,-0.13794,1 955 | -1.0292,-6.3879,5.5255,0.79955,1 956 | -2.2083,-9.1069,8.9991,-0.28406,1 957 | -1.0744,-6.3113,5.355,0.80472,1 958 | -0.51003,-0.23591,0.020273,0.76334,1 959 | -0.36372,3.0439,-3.4816,-2.7836,1 960 | -6.3979,6.4479,1.0836,-6.6176,1 961 | -2.2501,3.3129,-0.88369,-2.8974,1 962 | -1.1859,-1.2519,2.2635,0.77239,1 963 | -1.8076,-8.8131,8.7086,-0.21682,1 964 | -3.3863,-12.9889,13.0545,-2.7202,1 965 | -1.4106,-7.108,5.6454,0.31335,1 966 | -0.21394,-0.68287,0.096532,1.1965,1 967 | 0.48797,3.5674,-4.3882,-3.8116,1 968 | -3.8167,5.1401,-0.65063,-5.4306,1 969 | -1.9555,0.20692,1.2473,-0.3707,1 970 | -2.1786,-6.4479,6.0344,-0.20777,1 971 | -2.3299,-9.9532,8.4756,-1.8733,1 972 | 0.0031201,-4.0061,1.7956,0.91722,1 973 | 1.3518,1.0595,-2.3437,0.39998,1 974 | 1.2309,3.8923,-4.8277,-4.0069,1 975 | -5.0301,7.5032,-0.13396,-7.5034,1 976 | -3.0799,0.60836,2.7039,-0.23751,1 977 | -2.2987,-5.227,5.63,0.91722,1 978 | -1.239,-6.541,4.8151,-0.033204,1 979 | 0.75896,0.29176,-1.6506,0.83834,1 980 | 1.6799,4.2068,-4.5398,-2.3931,1 981 | 0.63655,5.2022,-5.2159,-6.1211,1 982 | -6.0598,9.2952,-0.43642,-6.3694,1 983 | -3.518,2.8763,0.1548,-1.2086,1 984 | -2.0336,-1.4092,1.1582,0.36507,1 985 | -0.69745,-1.7672,-0.34474,-0.12372,1 986 | 0.75108,1.9161,-3.1098,-0.20518,1 987 | 0.84546,3.4826,-3.6307,-1.3961,1 988 | -0.55648,3.2136,-3.3085,-2.7965,1 989 | -3.6817,3.2239,-0.69347,-3.4004,1 990 | -6.7526,8.8172,-0.061983,-3.725,1 991 | -4.577,3.4515,0.66719,-0.94742,1 992 | -2.9883,0.31245,0.45041,0.068951,1 993 | -1.4781,0.14277,-1.1622,-0.48579,1 994 | -0.46651,2.3383,-2.9812,-1.0431,1 995 | -0.8734,1.6533,-2.1964,-0.78061,1 996 | -2.1234,1.1815,-0.55552,-0.81165,1 997 | -2.3142,2.0838,-0.46813,-1.6767,1 998 | -1.4233,-0.98912,2.3586,0.39481,1 999 | -3.0866,-6.6362,10.5405,-0.89182,1 1000 | -4.7331,-6.1789,11.388,-1.0741,1 1001 | -2.8829,3.8964,-0.1888,-1.1672,1 1002 | -0.036127,1.525,-1.4089,-0.76121,1 1003 | -1.7104,-4.778,6.2109,0.3974,1 1004 | -3.8203,-13.0551,16.9583,-2.3052,1 1005 | -3.7181,-8.5089,12.363,-0.95518,1 1006 | -2.899,-0.60424,2.6045,1.3776,1 1007 | -0.98193,2.7956,-1.2341,-1.5668,1 1008 | -0.17296,-1.1816,1.3818,0.7336,1 1009 | -1.9409,-8.6848,9.155,0.94049,1 1010 | -3.5713,-12.4922,14.8881,-0.47027,1 1011 | -2.9915,-6.6258,8.6521,1.8198,1 1012 | -1.8483,0.31038,0.77344,1.4189,1 1013 | -2.2677,3.2964,-2.2563,-2.4642,1 1014 | -0.50816,2.868,-1.8108,-2.2612,1 1015 | 0.14329,-1.0885,1.0039,0.48791,1 1016 | -0.90784,-7.9026,6.7807,0.34179,1 1017 | -2.0042,-9.3676,9.3333,-0.10303,1 1018 | -0.93587,-5.1008,4.5367,1.3866,1 1019 | -0.40804,0.54214,-0.52725,0.6586,1 1020 | -0.8172,3.3812,-3.6684,-3.456,1 1021 | -4.8392,6.6755,-0.24278,-6.5775,1 1022 | -1.2792,2.1376,-0.47584,-1.3974,1 1023 | -0.66008,-3.226,3.8058,1.1836,1 1024 | -1.7713,-10.7665,10.2184,-1.0043,1 1025 | -3.0061,-12.2377,11.9552,-2.1603,1 1026 | -1.1022,-5.8395,4.5641,0.68705,1 1027 | 0.11806,0.39108,-0.98223,0.42843,1 1028 | 0.11686,3.735,-4.4379,-4.3741,1 1029 | -2.7264,3.9213,-0.49212,-3.6371,1 1030 | -1.2369,-1.6906,2.518,0.51636,1 1031 | -1.8439,-8.6475,7.6796,-0.66682,1 1032 | -1.8554,-9.6035,7.7764,-0.97716,1 1033 | 0.16358,-3.3584,1.3749,1.3569,1 1034 | 1.5077,1.9596,-3.0584,-0.12243,1 1035 | 0.67886,4.1199,-4.569,-4.1414,1 1036 | -3.9934,5.8333,0.54723,-4.9379,1 1037 | -2.3898,-0.78427,3.0141,0.76205,1 1038 | -1.7976,-6.7686,6.6753,0.89912,1 1039 | -0.70867,-5.5602,4.0483,0.903,1 1040 | 1.0194,1.1029,-2.3,0.59395,1 1041 | 1.7875,4.78,-5.1362,-3.2362,1 1042 | 0.27331,4.8773,-4.9194,-5.8198,1 1043 | -5.1661,8.0433,0.044265,-4.4983,1 1044 | -2.7028,1.6327,0.83598,-0.091393,1 1045 | -1.4904,-2.2183,1.6054,0.89394,1 1046 | -0.014902,-1.0243,-0.94024,0.64955,1 1047 | 0.88992,2.2638,-3.1046,-0.11855,1 1048 | 1.0637,3.6957,-4.1594,-1.9379,1 1049 | -0.8471,3.1329,-3.0112,-2.9388,1 1050 | -3.9594,4.0289,-0.35845,-3.8957,1 1051 | -5.8818,7.6584,0.5558,-2.9155,1 1052 | -3.7747,2.5162,0.83341,-0.30993,1 1053 | -2.4198,-0.24418,0.70146,0.41809,1 1054 | -0.83535,0.80494,-1.6411,-0.19225,1 1055 | -0.30432,2.6528,-2.7756,-0.65647,1 1056 | -0.60254,1.7237,-2.1501,-0.77027,1 1057 | -2.1059,1.1815,-0.53324,-0.82716,1 1058 | -2.0441,1.2271,0.18564,-1.091,1 1059 | -1.5621,-2.2121,4.2591,0.27972,1 1060 | -3.2305,-7.2135,11.6433,-0.94613,1 1061 | -4.8426,-4.9932,10.4052,-0.53104,1 1062 | -2.3147,3.6668,-0.6969,-1.2474,1 1063 | -0.11716,0.60422,-0.38587,-0.059065,1 1064 | -2.0066,-6.719,9.0162,0.099985,1 1065 | -3.6961,-13.6779,17.5795,-2.6181,1 1066 | -3.6012,-6.5389,10.5234,-0.48967,1 1067 | -2.6286,0.18002,1.7956,0.97282,1 1068 | -0.82601,2.9611,-1.2864,-1.4647,1 1069 | 0.31803,-0.99326,1.0947,0.88619,1 1070 | -1.4454,-8.4385,8.8483,0.96894,1 1071 | -3.1423,-13.0365,15.6773,-0.66165,1 1072 | -2.5373,-6.959,8.8054,1.5289,1 1073 | -1.366,0.18416,0.90539,1.5806,1 1074 | -1.7064,3.3088,-2.2829,-2.1978,1 1075 | -0.41965,2.9094,-1.7859,-2.2069,1 1076 | 0.37637,-0.82358,0.78543,0.74524,1 1077 | -0.55355,-7.9233,6.7156,0.74394,1 1078 | -1.6001,-9.5828,9.4044,0.081882,1 1079 | -0.37013,-5.554,4.7749,1.547,1 1080 | 0.12126,0.22347,-0.47327,0.97024,1 1081 | -0.27068,3.2674,-3.5562,-3.0888,1 1082 | -5.119,6.6486,-0.049987,-6.5206,1 1083 | -1.3946,2.3134,-0.44499,-1.4905,1 1084 | -0.69879,-3.3771,4.1211,1.5043,1 1085 | -1.48,-10.5244,9.9176,-0.5026,1 1086 | -2.6649,-12.813,12.6689,-1.9082,1 1087 | -0.62684,-6.301,4.7843,1.106,1 1088 | 0.518,0.25865,-0.84085,0.96118,1 1089 | 0.64376,3.764,-4.4738,-4.0483,1 1090 | -2.9821,4.1986,-0.5898,-3.9642,1 1091 | -1.4628,-1.5706,2.4357,0.49826,1 1092 | -1.7101,-8.7903,7.9735,-0.45475,1 1093 | -1.5572,-9.8808,8.1088,-1.0806,1 1094 | 0.74428,-3.7723,1.6131,1.5754,1 1095 | 2.0177,1.7982,-2.9581,0.2099,1 1096 | 1.164,3.913,-4.5544,-3.8672,1 1097 | -4.3667,6.0692,0.57208,-5.4668,1 1098 | -2.5919,-1.0553,3.8949,0.77757,1 1099 | -1.8046,-6.8141,6.7019,1.1681,1 1100 | -0.71868,-5.7154,3.8298,1.0233,1 1101 | 1.4378,0.66837,-2.0267,1.0271,1 1102 | 2.1943,4.5503,-4.976,-2.7254,1 1103 | 0.7376,4.8525,-4.7986,-5.6659,1 1104 | -5.637,8.1261,0.13081,-5.0142,1 1105 | -3.0193,1.7775,0.73745,-0.45346,1 1106 | -1.6706,-2.09,1.584,0.71162,1 1107 | -0.1269,-1.1505,-0.95138,0.57843,1 1108 | 1.2198,2.0982,-3.1954,0.12843,1 1109 | 1.4501,3.6067,-4.0557,-1.5966,1 1110 | -0.40857,3.0977,-2.9607,-2.6892,1 1111 | -3.8952,3.8157,-0.31304,-3.8194,1 1112 | -6.3679,8.0102,0.4247,-3.2207,1 1113 | -4.1429,2.7749,0.68261,-0.71984,1 1114 | -2.6864,-0.097265,0.61663,0.061192,1 1115 | -1.0555,0.79459,-1.6968,-0.46768,1 1116 | -0.29858,2.4769,-2.9512,-0.66165,1 1117 | -0.49948,1.7734,-2.2469,-0.68104,1 1118 | -1.9881,0.99945,-0.28562,-0.70044,1 1119 | -1.9389,1.5706,0.045979,-1.122,1 1120 | -1.4375,-1.8624,4.026,0.55127,1 1121 | -3.1875,-7.5756,11.8678,-0.57889,1 1122 | -4.6765,-5.6636,10.969,-0.33449,1 1123 | -2.0285,3.8468,-0.63435,-1.175,1 1124 | 0.26637,0.73252,-0.67891,0.03533,1 1125 | -1.7589,-6.4624,8.4773,0.31981,1 1126 | -3.5985,-13.6593,17.6052,-2.4927,1 1127 | -3.3582,-7.2404,11.4419,-0.57113,1 1128 | -2.3629,-0.10554,1.9336,1.1358,1 1129 | -2.1802,3.3791,-1.2256,-2.6621,1 1130 | -0.40951,-0.15521,0.060545,-0.088807,1 1131 | -2.2918,-7.257,7.9597,0.9211,1 1132 | -4.0214,-12.8006,15.6199,-0.95647,1 1133 | -3.3884,-8.215,10.3315,0.98187,1 1134 | -2.0046,-0.49457,1.333,1.6543,1 1135 | -1.7063,2.7956,-2.378,-2.3491,1 1136 | -1.6386,3.3584,-1.7302,-3.5646,1 1137 | -0.41645,0.32487,-0.33617,-0.36036,1 1138 | -1.5877,-6.6072,5.8022,0.31593,1 1139 | -2.5961,-9.349,9.7942,-0.28018,1 1140 | -1.5228,-6.4789,5.7568,0.87325,1 1141 | -0.53072,-0.097265,-0.21793,1.0426,1 1142 | -0.49081,2.8452,-3.6436,-3.1004,1 1143 | -6.5773,6.8017,0.85483,-7.5344,1 1144 | -2.4621,2.7645,-0.62578,-2.8573,1 1145 | -1.3995,-1.9162,2.5154,0.59912,1 1146 | -2.3221,-9.3304,9.233,-0.79871,1 1147 | -3.73,-12.9723,12.9817,-2.684,1 1148 | -1.6988,-7.1163,5.7902,0.16723,1 1149 | -0.26654,-0.64562,-0.42014,0.89136,1 1150 | 0.33325,3.3108,-4.5081,-4.012,1 1151 | -4.2091,4.7283,-0.49126,-5.2159,1 1152 | -2.3142,-0.68494,1.9833,-0.44829,1 1153 | -2.4835,-7.4494,6.8964,-0.64484,1 1154 | -2.7611,-10.5099,9.0239,-1.9547,1 1155 | -0.36025,-4.449,2.1067,0.94308,1 1156 | 1.0117,0.9022,-2.3506,0.42714,1 1157 | 0.96708,3.8426,-4.9314,-4.1323,1 1158 | -5.2049,7.259,0.070827,-7.3004,1 1159 | -3.3203,-0.02691,2.9618,-0.44958,1 1160 | -2.565,-5.7899,6.0122,0.046968,1 1161 | -1.5951,-6.572,4.7689,-0.94354,1 1162 | 0.7049,0.17174,-1.7859,0.36119,1 1163 | 1.7331,3.9544,-4.7412,-2.5017,1 1164 | 0.6818,4.8504,-5.2133,-6.1043,1 1165 | -6.3364,9.2848,0.014275,-6.7844,1 1166 | -3.8053,2.4273,0.6809,-1.0871,1 1167 | -2.1979,-2.1252,1.7151,0.45171,1 1168 | -0.87874,-2.2121,-0.051701,0.099985,1 1169 | 0.74067,1.7299,-3.1963,-0.1457,1 1170 | 0.98296,3.4226,-3.9692,-1.7116,1 1171 | -0.3489,3.1929,-3.4054,-3.1832,1 1172 | -3.8552,3.5219,-0.38415,-3.8608,1 1173 | -6.9599,8.9931,0.2182,-4.572,1 1174 | -4.7462,3.1205,1.075,-1.2966,1 1175 | -3.2051,-0.14279,0.97565,0.045675,1 1176 | -1.7549,-0.080711,-0.75774,-0.3707,1 1177 | -0.59587,2.4811,-2.8673,-0.89828,1 1178 | -0.89542,2.0279,-2.3652,-1.2746,1 1179 | -2.0754,1.2767,-0.64206,-1.2642,1 1180 | -3.2778,1.8023,0.1805,-2.3931,1 1181 | -2.2183,-1.254,2.9986,0.36378,1 1182 | -3.5895,-6.572,10.5251,-0.16381,1 1183 | -5.0477,-5.8023,11.244,-0.3901,1 1184 | -3.5741,3.944,-0.07912,-2.1203,1 1185 | -0.7351,1.7361,-1.4938,-1.1582,1 1186 | -2.2617,-4.7428,6.3489,0.11162,1 1187 | -4.244,-13.0634,17.1116,-2.8017,1 1188 | -4.0218,-8.304,12.555,-1.5099,1 1189 | -3.0201,-0.67253,2.7056,0.85774,1 1190 | -2.4941,3.5447,-1.3721,-2.8483,1 1191 | -0.83121,0.039307,0.05369,-0.23105,1 1192 | -2.5665,-6.8824,7.5416,0.70774,1 1193 | -4.4018,-12.9371,15.6559,-1.6806,1 1194 | -3.7573,-8.2916,10.3032,0.38059,1 1195 | -2.4725,-0.40145,1.4855,1.1189,1 1196 | -1.9725,2.8825,-2.3086,-2.3724,1 1197 | -2.0149,3.6874,-1.9385,-3.8918,1 1198 | -0.82053,0.65181,-0.48869,-0.52716,1 1199 | -1.7886,-6.3486,5.6154,0.42584,1 1200 | -2.9138,-9.4711,9.7668,-0.60216,1 1201 | -1.8343,-6.5907,5.6429,0.54998,1 1202 | -0.8734,-0.033118,-0.20165,0.55774,1 1203 | -0.70346,2.957,-3.5947,-3.1457,1 1204 | -6.7387,6.9879,0.67833,-7.5887,1 1205 | -2.7723,3.2777,-0.9351,-3.1457,1 1206 | -1.6641,-1.3678,1.997,0.52283,1 1207 | -2.4349,-9.2497,8.9922,-0.50001,1 1208 | -3.793,-12.7095,12.7957,-2.825,1 1209 | -1.9551,-6.9756,5.5383,-0.12889,1 1210 | -0.69078,-0.50077,-0.35417,0.47498,1 1211 | 0.025013,3.3998,-4.4327,-4.2655,1 1212 | -4.3967,4.9601,-0.64892,-5.4719,1 1213 | -2.456,-0.24418,1.4041,-0.45863,1 1214 | -2.62,-6.8555,6.2169,-0.62285,1 1215 | -2.9662,-10.3257,8.784,-2.1138,1 1216 | -0.71494,-4.4448,2.2241,0.49826,1 1217 | 0.6005,0.99945,-2.2126,0.097399,1 1218 | 0.61652,3.8944,-4.7275,-4.3948,1 1219 | -5.4414,7.2363,0.10938,-7.5642,1 1220 | -3.5798,0.45937,2.3457,-0.45734,1 1221 | -2.7769,-5.6967,5.9179,0.37671,1 1222 | -1.8356,-6.7562,5.0585,-0.55044,1 1223 | 0.30081,0.17381,-1.7542,0.48921,1 1224 | 1.3403,4.1323,-4.7018,-2.5987,1 1225 | 0.26877,4.987,-5.1508,-6.3913,1 1226 | -6.5235,9.6014,-0.25392,-6.9642,1 1227 | -4.0679,2.4955,0.79571,-1.1039,1 1228 | -2.564,-1.7051,1.5026,0.32757,1 1229 | -1.3414,-1.9162,-0.15538,-0.11984,1 1230 | 0.23874,2.0879,-3.3522,-0.66553,1 1231 | 0.6212,3.6771,-4.0771,-2.0711,1 1232 | -0.77848,3.4019,-3.4859,-3.5569,1 1233 | -4.1244,3.7909,-0.6532,-4.1802,1 1234 | -7.0421,9.2,0.25933,-4.6832,1 1235 | -4.9462,3.5716,0.82742,-1.4957,1 1236 | -3.5359,0.30417,0.6569,-0.2957,1 1237 | -2.0662,0.16967,-1.0054,-0.82975,1 1238 | -0.88728,2.808,-3.1432,-1.2035,1 1239 | -1.0941,2.3072,-2.5237,-1.4453,1 1240 | -2.4458,1.6285,-0.88541,-1.4802,1 1241 | -3.551,1.8955,0.1865,-2.4409,1 1242 | -2.2811,-0.85669,2.7185,0.044382,1 1243 | -3.6053,-5.974,10.0916,-0.82846,1 1244 | -5.0676,-5.1877,10.4266,-0.86725,1 1245 | -3.9204,4.0723,-0.23678,-2.1151,1 1246 | -1.1306,1.8458,-1.3575,-1.3806,1 1247 | -2.4561,-4.5566,6.4534,-0.056479,1 1248 | -4.4775,-13.0303,17.0834,-3.0345,1 1249 | -4.1958,-8.1819,12.1291,-1.6017,1 1250 | -3.38,-0.7077,2.5325,0.71808,1 1251 | -2.4365,3.6026,-1.4166,-2.8948,1 1252 | -0.77688,0.13036,-0.031137,-0.35389,1 1253 | -2.7083,-6.8266,7.5339,0.59007,1 1254 | -4.5531,-12.5854,15.4417,-1.4983,1 1255 | -3.8894,-7.8322,9.8208,0.47498,1 1256 | -2.5084,-0.22763,1.488,1.2069,1 1257 | -2.1652,3.0211,-2.4132,-2.4241,1 1258 | -1.8974,3.5074,-1.7842,-3.8491,1 1259 | -0.62043,0.5587,-0.38587,-0.66423,1 1260 | -1.8387,-6.301,5.6506,0.19567,1 1261 | -3,-9.1566,9.5766,-0.73018,1 1262 | -1.9116,-6.1603,5.606,0.48533,1 1263 | -1.005,0.084831,-0.2462,0.45688,1 1264 | -0.87834,3.257,-3.6778,-3.2944,1 1265 | -6.651,6.7934,0.68604,-7.5887,1 1266 | -2.5463,3.1101,-0.83228,-3.0358,1 1267 | -1.4377,-1.432,2.1144,0.42067,1 1268 | -2.4554,-9.0407,8.862,-0.86983,1 1269 | -3.9411,-12.8792,13.0597,-3.3125,1 1270 | -2.1241,-6.8969,5.5992,-0.47156,1 1271 | -0.74324,-0.32902,-0.42785,0.23317,1 1272 | -0.071503,3.7412,-4.5415,-4.2526,1 1273 | -4.2333,4.9166,-0.49212,-5.3207,1 1274 | -2.3675,-0.43663,1.692,-0.43018,1 1275 | -2.5526,-7.3625,6.9255,-0.66811,1 1276 | -3.0986,-10.4602,8.9717,-2.3427,1 1277 | -0.89809,-4.4862,2.2009,0.50731,1 1278 | 0.56232,1.0015,-2.2726,-0.0060486,1 1279 | 0.53936,3.8944,-4.8166,-4.3418,1 1280 | -5.3012,7.3915,0.029699,-7.3987,1 1281 | -3.3553,0.35591,2.6473,-0.37846,1 1282 | -2.7908,-5.7133,5.953,0.45946,1 1283 | -1.9983,-6.6072,4.8254,-0.41984,1 1284 | 0.15423,0.11794,-1.6823,0.59524,1 1285 | 1.208,4.0744,-4.7635,-2.6129,1 1286 | 0.2952,4.8856,-5.149,-6.2323,1 1287 | -6.4247,9.5311,0.022844,-6.8517,1 1288 | -3.9933,2.6218,0.62863,-1.1595,1 1289 | -2.659,-1.6058,1.3647,0.16464,1 1290 | -1.4094,-2.1252,-0.10397,-0.19225,1 1291 | 0.11032,1.9741,-3.3668,-0.65259,1 1292 | 0.52374,3.644,-4.0746,-1.9909,1 1293 | -0.76794,3.4598,-3.4405,-3.4276,1 1294 | -3.9698,3.6812,-0.60008,-4.0133,1 1295 | -7.0364,9.2931,0.16594,-4.5396,1 1296 | -4.9447,3.3005,1.063,-1.444,1 1297 | -3.5933,0.22968,0.7126,-0.3332,1 1298 | -2.1674,0.12415,-1.0465,-0.86208,1 1299 | -0.9607,2.6963,-3.1226,-1.3121,1 1300 | -1.0802,2.1996,-2.5862,-1.2759,1 1301 | -2.3277,1.4381,-0.82114,-1.2862,1 1302 | -3.7244,1.9037,-0.035421,-2.5095,1 1303 | -2.5724,-0.95602,2.7073,-0.16639,1 1304 | -3.9297,-6.0816,10.0958,-1.0147,1 1305 | -5.2943,-5.1463,10.3332,-1.1181,1 1306 | -3.8953,4.0392,-0.3019,-2.1836,1 1307 | -1.2244,1.7485,-1.4801,-1.4181,1 1308 | -2.6406,-4.4159,5.983,-0.13924,1 1309 | -4.6338,-12.7509,16.7166,-3.2168,1 1310 | -4.2887,-7.8633,11.8387,-1.8978,1 1311 | -3.3458,-0.50491,2.6328,0.53705,1 1312 | -1.1188,3.3357,-1.3455,-1.9573,1 1313 | 0.55939,-0.3104,0.18307,0.44653,1 1314 | -1.5078,-7.3191,7.8981,1.2289,1 1315 | -3.506,-12.5667,15.1606,-0.75216,1 1316 | -2.9498,-8.273,10.2646,1.1629,1 1317 | -1.6029,-0.38903,1.62,1.9103,1 1318 | -1.2667,2.8183,-2.426,-1.8862,1 1319 | -0.49281,3.0605,-1.8356,-2.834,1 1320 | 0.66365,-0.045533,-0.18794,0.23447,1 1321 | -0.72068,-6.7583,5.8408,0.62369,1 1322 | -1.9966,-9.5001,9.682,-0.12889,1 1323 | -0.97325,-6.4168,5.6026,1.0323,1 1324 | -0.025314,-0.17383,-0.11339,1.2198,1 1325 | 0.062525,2.9301,-3.5467,-2.6737,1 1326 | -5.525,6.3258,0.89768,-6.6241,1 1327 | -1.2943,2.6735,-0.84085,-2.0323,1 1328 | -0.24037,-1.7837,2.135,1.2418,1 1329 | -1.3968,-9.6698,9.4652,-0.34872,1 1330 | -2.9672,-13.2869,13.4727,-2.6271,1 1331 | -1.1005,-7.2508,6.0139,0.36895,1 1332 | 0.22432,-0.52147,-0.40386,1.2017,1 1333 | 0.90407,3.3708,-4.4987,-3.6965,1 1334 | -2.8619,4.5193,-0.58123,-4.2629,1 1335 | -1.0833,-0.31247,1.2815,0.41291,1 1336 | -1.5681,-7.2446,6.5537,-0.1276,1 1337 | -2.0545,-10.8679,9.4926,-1.4116,1 1338 | 0.2346,-4.5152,2.1195,1.4448,1 1339 | 1.581,0.86909,-2.3138,0.82412,1 1340 | 1.5514,3.8013,-4.9143,-3.7483,1 1341 | -4.1479,7.1225,-0.083404,-6.4172,1 1342 | -2.2625,-0.099335,2.8127,0.48662,1 1343 | -1.7479,-5.823,5.8699,1.212,1 1344 | -0.95923,-6.7128,4.9857,0.32886,1 1345 | 1.3451,0.23589,-1.8785,1.3258,1 1346 | 2.2279,4.0951,-4.8037,-2.1112,1 1347 | 1.2572,4.8731,-5.2861,-5.8741,1 1348 | -5.3857,9.1214,-0.41929,-5.9181,1 1349 | -2.9786,2.3445,0.52667,-0.40173,1 1350 | -1.5851,-2.1562,1.7082,0.9017,1 1351 | -0.21888,-2.2038,-0.0954,0.56421,1 1352 | 1.3183,1.9017,-3.3111,0.065071,1 1353 | 1.4896,3.4288,-4.0309,-1.4259,1 1354 | 0.11592,3.2219,-3.4302,-2.8457,1 1355 | -3.3924,3.3564,-0.72004,-3.5233,1 1356 | -6.1632,8.7096,-0.21621,-3.6345,1 1357 | -4.0786,2.9239,0.87026,-0.65389,1 1358 | -2.5899,-0.3911,0.93452,0.42972,1 1359 | -1.0116,-0.19038,-0.90597,0.003003,1 1360 | 0.066129,2.4914,-2.9401,-0.62156,1 1361 | -0.24745,1.9368,-2.4697,-0.80518,1 1362 | -1.5732,1.0636,-0.71232,-0.8388,1 1363 | -2.1668,1.5933,0.045122,-1.678,1 1364 | -1.1667,-1.4237,2.9241,0.66119,1 1365 | -2.8391,-6.63,10.4849,-0.42113,1 1366 | -4.5046,-5.8126,10.8867,-0.52846,1 1367 | -2.41,3.7433,-0.40215,-1.2953,1 1368 | 0.40614,1.3492,-1.4501,-0.55949,1 1369 | -1.3887,-4.8773,6.4774,0.34179,1 1370 | -3.7503,-13.4586,17.5932,-2.7771,1 1371 | -3.5637,-8.3827,12.393,-1.2823,1 1372 | -2.5419,-0.65804,2.6842,1.1952,1 -------------------------------------------------------------------------------- /第5章-分类.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 1. 决策树\n", 8 | "sklearn.tree.DecisionTreeClassifier()" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "## 1.1 简单例子" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "execution_count": 1, 21 | "metadata": {}, 22 | "outputs": [], 23 | "source": [ 24 | "from sklearn import tree" 25 | ] 26 | }, 27 | { 28 | "cell_type": "code", 29 | "execution_count": 2, 30 | "metadata": {}, 31 | "outputs": [], 32 | "source": [ 33 | "X = [[0, 0], [1, 1]]\n", 34 | "Y = [0, 1]" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 3, 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "dt_test_clf = tree.DecisionTreeClassifier()\n", 44 | "dt_test_clf = dt_test_clf.fit(X, Y)" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 4, 50 | "metadata": {}, 51 | "outputs": [ 52 | { 53 | "data": { 54 | "text/plain": [ 55 | "array([1])" 56 | ] 57 | }, 58 | "execution_count": 4, 59 | "metadata": {}, 60 | "output_type": "execute_result" 61 | } 62 | ], 63 | "source": [ 64 | "dt_test_clf.predict([[2., 2.]])" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 5, 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "data": { 74 | "text/plain": [ 75 | "array([[0., 1.]])" 76 | ] 77 | }, 78 | "execution_count": 5, 79 | "metadata": {}, 80 | "output_type": "execute_result" 81 | } 82 | ], 83 | "source": [ 84 | "dt_test_clf.predict_proba([[2., 2.]])" 85 | ] 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "metadata": {}, 90 | "source": [ 91 | "## 1.2 iris数据集\n", 92 | "### 1.2.1 训练模型" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 6, 98 | "metadata": {}, 99 | "outputs": [], 100 | "source": [ 101 | "from sklearn.datasets import load_iris\n", 102 | "from sklearn import tree" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": 7, 108 | "metadata": {}, 109 | "outputs": [], 110 | "source": [ 111 | "iris = load_iris()" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": 8, 117 | "metadata": {}, 118 | "outputs": [], 119 | "source": [ 120 | "dt_clf = tree.DecisionTreeClassifier()\n", 121 | "dt_clf = dt_clf.fit(iris.data, iris.target)" 122 | ] 123 | }, 124 | { 125 | "cell_type": "markdown", 126 | "metadata": {}, 127 | "source": [ 128 | "### 1.2.2 模型预测" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": 9, 134 | "metadata": {}, 135 | "outputs": [ 136 | { 137 | "data": { 138 | "text/plain": [ 139 | "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 140 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 141 | " 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 142 | " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 143 | " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", 144 | " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", 145 | " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])" 146 | ] 147 | }, 148 | "execution_count": 9, 149 | "metadata": {}, 150 | "output_type": "execute_result" 151 | } 152 | ], 153 | "source": [ 154 | "y_pred = dt_clf.predict(iris.data)\n", 155 | "y_pred" 156 | ] 157 | }, 158 | { 159 | "cell_type": "markdown", 160 | "metadata": {}, 161 | "source": [ 162 | "### 1.2.3 绘图" 163 | ] 164 | }, 165 | { 166 | "cell_type": "markdown", 167 | "metadata": {}, 168 | "source": [ 169 | "对于scikit-learn 0.21.2版本以上,可以采用以下命令绘图:\n", 170 | "> tree.plot_tree(clf.fit(iris.data, iris.target)) \n", 171 | "\n", 172 | "这里默认scikit-learn版本为0.19.1,需要按如下步骤安装graphviz包:\n", 173 | "1. 下载安装 graphviz-2.38.msi, \n", 174 | "2. 将安装路径下的bin文件夹加入系统路径PATH(默认路径为C:\\Program Files (x86)\\Graphviz2.38\\bin)\n", 175 | "3. 在命令提示行输入以下命令:\n", 176 | "> pip install graphviz" 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": 10, 182 | "metadata": {}, 183 | "outputs": [], 184 | "source": [ 185 | "import graphviz" 186 | ] 187 | }, 188 | { 189 | "cell_type": "code", 190 | "execution_count": 11, 191 | "metadata": {}, 192 | "outputs": [ 193 | { 194 | "data": { 195 | "text/plain": [ 196 | "'iris.pdf'" 197 | ] 198 | }, 199 | "execution_count": 11, 200 | "metadata": {}, 201 | "output_type": "execute_result" 202 | } 203 | ], 204 | "source": [ 205 | "dot_data = tree.export_graphviz(dt_clf, out_file=None) \n", 206 | "graph = graphviz.Source(dot_data) \n", 207 | "graph.render(\"iris\")" 208 | ] 209 | }, 210 | { 211 | "cell_type": "code", 212 | "execution_count": 12, 213 | "metadata": {}, 214 | "outputs": [ 215 | { 216 | "data": { 217 | "text/plain": [ 218 | "'iris.pdf'" 219 | ] 220 | }, 221 | "execution_count": 12, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "graph.view()" 228 | ] 229 | }, 230 | { 231 | "cell_type": "markdown", 232 | "metadata": {}, 233 | "source": [ 234 | "# 2. 朴素贝叶斯\n", 235 | "sklearn.naive_bayes.GaussianNB()" 236 | ] 237 | }, 238 | { 239 | "cell_type": "code", 240 | "execution_count": 13, 241 | "metadata": {}, 242 | "outputs": [], 243 | "source": [ 244 | "from sklearn import datasets\n", 245 | "from sklearn.naive_bayes import GaussianNB" 246 | ] 247 | }, 248 | { 249 | "cell_type": "code", 250 | "execution_count": 14, 251 | "metadata": {}, 252 | "outputs": [], 253 | "source": [ 254 | "iris = datasets.load_iris()" 255 | ] 256 | }, 257 | { 258 | "cell_type": "code", 259 | "execution_count": 15, 260 | "metadata": {}, 261 | "outputs": [], 262 | "source": [ 263 | "gnb = GaussianNB()" 264 | ] 265 | }, 266 | { 267 | "cell_type": "code", 268 | "execution_count": 16, 269 | "metadata": {}, 270 | "outputs": [ 271 | { 272 | "data": { 273 | "text/plain": [ 274 | "GaussianNB(priors=None)" 275 | ] 276 | }, 277 | "execution_count": 16, 278 | "metadata": {}, 279 | "output_type": "execute_result" 280 | } 281 | ], 282 | "source": [ 283 | "# 训练模型\n", 284 | "gnb.fit(iris.data, iris.target)" 285 | ] 286 | }, 287 | { 288 | "cell_type": "code", 289 | "execution_count": 17, 290 | "metadata": {}, 291 | "outputs": [], 292 | "source": [ 293 | "# 进行预测\n", 294 | "y_pred = gnb.predict(iris.data)" 295 | ] 296 | }, 297 | { 298 | "cell_type": "code", 299 | "execution_count": 18, 300 | "metadata": {}, 301 | "outputs": [ 302 | { 303 | "data": { 304 | "text/plain": [ 305 | "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 306 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 307 | " 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 308 | " 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 309 | " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,\n", 310 | " 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", 311 | " 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])" 312 | ] 313 | }, 314 | "execution_count": 18, 315 | "metadata": {}, 316 | "output_type": "execute_result" 317 | } 318 | ], 319 | "source": [ 320 | "y_pred" 321 | ] 322 | }, 323 | { 324 | "cell_type": "markdown", 325 | "metadata": {}, 326 | "source": [ 327 | "# 3. K近临分类\n", 328 | "sklearn.neighbors.KNeighborsClassifier()" 329 | ] 330 | }, 331 | { 332 | "cell_type": "code", 333 | "execution_count": 19, 334 | "metadata": {}, 335 | "outputs": [], 336 | "source": [ 337 | "from sklearn import neighbors, datasets" 338 | ] 339 | }, 340 | { 341 | "cell_type": "code", 342 | "execution_count": 20, 343 | "metadata": {}, 344 | "outputs": [], 345 | "source": [ 346 | "iris = datasets.load_iris()" 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 21, 352 | "metadata": {}, 353 | "outputs": [], 354 | "source": [ 355 | "# 指定近邻个数\n", 356 | "n_neighbors = 15" 357 | ] 358 | }, 359 | { 360 | "cell_type": "code", 361 | "execution_count": 22, 362 | "metadata": {}, 363 | "outputs": [ 364 | { 365 | "data": { 366 | "text/plain": [ 367 | "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n", 368 | " metric_params=None, n_jobs=1, n_neighbors=15, p=2,\n", 369 | " weights='distance')" 370 | ] 371 | }, 372 | "execution_count": 22, 373 | "metadata": {}, 374 | "output_type": "execute_result" 375 | } 376 | ], 377 | "source": [ 378 | "# weights 可选:'uniform', 'distance'\n", 379 | "weights = 'distance' \n", 380 | "knn_clf = neighbors.KNeighborsClassifier(n_neighbors, weights=weights)\n", 381 | "knn_clf.fit(iris.data, iris.target)" 382 | ] 383 | }, 384 | { 385 | "cell_type": "code", 386 | "execution_count": 23, 387 | "metadata": {}, 388 | "outputs": [], 389 | "source": [ 390 | "knn_pre_y = knn_clf.predict(iris.data)" 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "execution_count": 24, 396 | "metadata": {}, 397 | "outputs": [ 398 | { 399 | "data": { 400 | "text/plain": [ 401 | "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 402 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 403 | " 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 404 | " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", 405 | " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", 406 | " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", 407 | " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])" 408 | ] 409 | }, 410 | "execution_count": 24, 411 | "metadata": {}, 412 | "output_type": "execute_result" 413 | } 414 | ], 415 | "source": [ 416 | "knn_pre_y" 417 | ] 418 | }, 419 | { 420 | "cell_type": "markdown", 421 | "metadata": {}, 422 | "source": [ 423 | "# 4. 模型评价" 424 | ] 425 | }, 426 | { 427 | "cell_type": "markdown", 428 | "metadata": {}, 429 | "source": [ 430 | "## 准备数据+训练模型" 431 | ] 432 | }, 433 | { 434 | "cell_type": "code", 435 | "execution_count": 25, 436 | "metadata": {}, 437 | "outputs": [], 438 | "source": [ 439 | "import numpy as np\n", 440 | "from scipy import interp\n", 441 | "import matplotlib.pyplot as plt\n", 442 | "\n", 443 | "from sklearn import svm, datasets\n", 444 | "from sklearn import metrics" 445 | ] 446 | }, 447 | { 448 | "cell_type": "code", 449 | "execution_count": 26, 450 | "metadata": {}, 451 | "outputs": [], 452 | "source": [ 453 | "# 准备数据\n", 454 | "iris = datasets.load_iris()\n", 455 | "X = iris.data\n", 456 | "y = iris.target" 457 | ] 458 | }, 459 | { 460 | "cell_type": "code", 461 | "execution_count": 27, 462 | "metadata": {}, 463 | "outputs": [ 464 | { 465 | "data": { 466 | "text/plain": [ 467 | "100" 468 | ] 469 | }, 470 | "execution_count": 27, 471 | "metadata": {}, 472 | "output_type": "execute_result" 473 | } 474 | ], 475 | "source": [ 476 | "# 取出第一类和第二类\n", 477 | "X, y = X[y != 2], y[y != 2]\n", 478 | "n_samples, n_features = X.shape\n", 479 | "n_samples" 480 | ] 481 | }, 482 | { 483 | "cell_type": "code", 484 | "execution_count": 28, 485 | "metadata": {}, 486 | "outputs": [], 487 | "source": [ 488 | "# 加入噪声特征\n", 489 | "random_state = np.random.RandomState(0)\n", 490 | "X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]" 491 | ] 492 | }, 493 | { 494 | "cell_type": "code", 495 | "execution_count": 29, 496 | "metadata": {}, 497 | "outputs": [], 498 | "source": [ 499 | "# 随机选取80个样本作为训练集,其余作为测试集\n", 500 | "t = np.array(range(100))\n", 501 | "np.random.shuffle(t)\n", 502 | "train_idx = t >= 20\n", 503 | "\n", 504 | "train_X = X[train_idx,:]\n", 505 | "train_y = y[train_idx]\n", 506 | "text_X = X[~train_idx,:]\n", 507 | "test_y= y[~train_idx]" 508 | ] 509 | }, 510 | { 511 | "cell_type": "code", 512 | "execution_count": 30, 513 | "metadata": {}, 514 | "outputs": [], 515 | "source": [ 516 | "svc_clf = svm.SVC(kernel='linear', probability=True,\n", 517 | " random_state=random_state)\n", 518 | "svc_clf = svc_clf.fit(train_X, train_y)" 519 | ] 520 | }, 521 | { 522 | "cell_type": "markdown", 523 | "metadata": {}, 524 | "source": [ 525 | "## 4.1 准确率\n", 526 | "sklearn.metrics.accuracy_score()" 527 | ] 528 | }, 529 | { 530 | "cell_type": "code", 531 | "execution_count": 31, 532 | "metadata": {}, 533 | "outputs": [], 534 | "source": [ 535 | "y_pre = svc_clf.predict(text_X)" 536 | ] 537 | }, 538 | { 539 | "cell_type": "code", 540 | "execution_count": 32, 541 | "metadata": {}, 542 | "outputs": [ 543 | { 544 | "data": { 545 | "text/plain": [ 546 | "0.6" 547 | ] 548 | }, 549 | "execution_count": 32, 550 | "metadata": {}, 551 | "output_type": "execute_result" 552 | } 553 | ], 554 | "source": [ 555 | "metrics.accuracy_score(test_y,y_pre)" 556 | ] 557 | }, 558 | { 559 | "cell_type": "markdown", 560 | "metadata": {}, 561 | "source": [ 562 | "## 4.2 混淆矩阵\n", 563 | "sklearn.metrics.confusion_matrix()" 564 | ] 565 | }, 566 | { 567 | "cell_type": "code", 568 | "execution_count": 33, 569 | "metadata": {}, 570 | "outputs": [ 571 | { 572 | "name": "stdout", 573 | "output_type": "stream", 574 | "text": [ 575 | "[[7 3]\n", 576 | " [5 5]]\n" 577 | ] 578 | } 579 | ], 580 | "source": [ 581 | "cnf_matrix = metrics.confusion_matrix(test_y, y_pre)\n", 582 | "print(cnf_matrix)" 583 | ] 584 | }, 585 | { 586 | "cell_type": "markdown", 587 | "metadata": {}, 588 | "source": [ 589 | "\n", 590 | "## 4.3 ROC曲线\n", 591 | "sklearn.metrics.roc_curve()" 592 | ] 593 | }, 594 | { 595 | "cell_type": "code", 596 | "execution_count": 34, 597 | "metadata": {}, 598 | "outputs": [], 599 | "source": [ 600 | "from sklearn.metrics import roc_curve, auc" 601 | ] 602 | }, 603 | { 604 | "cell_type": "code", 605 | "execution_count": 35, 606 | "metadata": {}, 607 | "outputs": [], 608 | "source": [ 609 | "tprs = []\n", 610 | "aucs = []\n", 611 | "mean_fpr = np.linspace(0, 1, 100)" 612 | ] 613 | }, 614 | { 615 | "cell_type": "code", 616 | "execution_count": 36, 617 | "metadata": {}, 618 | "outputs": [ 619 | { 620 | "data": { 621 | "text/plain": [ 622 | "[]" 623 | ] 624 | }, 625 | "execution_count": 36, 626 | "metadata": {}, 627 | "output_type": "execute_result" 628 | }, 629 | { 630 | "data": { 631 | "image/png": "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\n", 632 | "text/plain": [ 633 | "
" 634 | ] 635 | }, 636 | "metadata": {}, 637 | "output_type": "display_data" 638 | } 639 | ], 640 | "source": [ 641 | "probas_ = svc_clf.predict_proba(text_X)\n", 642 | "fpr, tpr, thresholds = roc_curve(test_y, probas_[:, 1])\n", 643 | "tprs.append(interp(mean_fpr, fpr, tpr))\n", 644 | "tprs[-1][0] = 0.0\n", 645 | "roc_auc = auc(fpr, tpr)\n", 646 | "aucs.append(roc_auc)\n", 647 | "plt.plot(fpr, tpr, lw=1, alpha=0.3,\n", 648 | " label='ROC Curve (AUC = %0.2f)' % roc_auc)" 649 | ] 650 | }, 651 | { 652 | "cell_type": "markdown", 653 | "metadata": {}, 654 | "source": [ 655 | "## 4.4 交叉验证与ROC曲线" 656 | ] 657 | }, 658 | { 659 | "cell_type": "code", 660 | "execution_count": 37, 661 | "metadata": {}, 662 | "outputs": [], 663 | "source": [ 664 | "import numpy as np\n", 665 | "from scipy import interp\n", 666 | "import matplotlib.pyplot as plt\n", 667 | "\n", 668 | "from sklearn import svm, datasets\n", 669 | "from sklearn.metrics import roc_curve, auc\n", 670 | "from sklearn.model_selection import StratifiedKFold" 671 | ] 672 | }, 673 | { 674 | "cell_type": "code", 675 | "execution_count": 38, 676 | "metadata": {}, 677 | "outputs": [], 678 | "source": [ 679 | "# 载入数据 只取第一类和第二类\n", 680 | "iris = datasets.load_iris()\n", 681 | "X = iris.data\n", 682 | "y = iris.target\n", 683 | "X, y = X[y != 2], y[y != 2]\n", 684 | "n_samples, n_features = X.shape\n", 685 | "\n", 686 | "# Add noisy features\n", 687 | "random_state = np.random.RandomState(0)\n", 688 | "X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 39, 694 | "metadata": {}, 695 | "outputs": [], 696 | "source": [ 697 | "# 采用交叉验证的方式训练模型\n", 698 | "cv = StratifiedKFold(n_splits=5)\n", 699 | "classifier = svm.SVC(kernel='linear', probability=True,\n", 700 | " random_state=random_state)" 701 | ] 702 | }, 703 | { 704 | "cell_type": "code", 705 | "execution_count": 40, 706 | "metadata": {}, 707 | "outputs": [ 708 | { 709 | "data": { 710 | "image/png": "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\n", 711 | "text/plain": [ 712 | "
" 713 | ] 714 | }, 715 | "metadata": {}, 716 | "output_type": "display_data" 717 | } 718 | ], 719 | "source": [ 720 | "tprs = []\n", 721 | "aucs = []\n", 722 | "mean_fpr = np.linspace(0, 1, 100)\n", 723 | "\n", 724 | "# 统计每次结果,并绘制相应的ROC曲线\n", 725 | "i = 0\n", 726 | "for train, test in cv.split(X, y):\n", 727 | " probas_ = classifier.fit(X[train], y[train]).predict_proba(X[test])\n", 728 | " # Compute ROC curve and area the curve\n", 729 | " fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])\n", 730 | " tprs.append(interp(mean_fpr, fpr, tpr))\n", 731 | " tprs[-1][0] = 0.0\n", 732 | " roc_auc = auc(fpr, tpr)\n", 733 | " aucs.append(roc_auc)\n", 734 | " plt.plot(fpr, tpr, lw=1, alpha=0.3,\n", 735 | " label='ROC fold %d (AUC = %0.2f)' % (i, roc_auc))\n", 736 | "\n", 737 | " i += 1\n", 738 | "plt.plot([0, 1], [0, 1], linestyle='--', lw=2, color='r',\n", 739 | " label='Chance', alpha=.8)\n", 740 | "\n", 741 | "# 计算平均结果,绘制平均ROC曲线\n", 742 | "mean_tpr = np.mean(tprs, axis=0)\n", 743 | "mean_tpr[-1] = 1.0\n", 744 | "mean_auc = auc(mean_fpr, mean_tpr)\n", 745 | "std_auc = np.std(aucs)\n", 746 | "plt.plot(mean_fpr, mean_tpr, color='b',\n", 747 | " label=r'Mean ROC (AUC = %0.2f $\\pm$ %0.2f)' % (mean_auc, std_auc),\n", 748 | " lw=2, alpha=.8)\n", 749 | "\n", 750 | "# 将均值线上下一个标准差内的区域上色\n", 751 | "std_tpr = np.std(tprs, axis=0)\n", 752 | "tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", 753 | "tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", 754 | "plt.fill_between(mean_fpr, tprs_lower, tprs_upper, color='grey', alpha=.2,\n", 755 | " label=r'$\\pm$ 1 std. dev.')\n", 756 | "\n", 757 | "plt.xlim([-0.05, 1.05])\n", 758 | "plt.ylim([-0.05, 1.05])\n", 759 | "plt.xlabel('False Positive Rate')\n", 760 | "plt.ylabel('True Positive Rate')\n", 761 | "plt.title('Receiver operating characteristic')\n", 762 | "plt.legend(loc=\"lower right\")\n", 763 | "plt.show()" 764 | ] 765 | }, 766 | { 767 | "cell_type": "code", 768 | "execution_count": null, 769 | "metadata": {}, 770 | "outputs": [], 771 | "source": [] 772 | } 773 | ], 774 | "metadata": { 775 | "kernelspec": { 776 | "display_name": "Python 3", 777 | "language": "python", 778 | "name": "python3" 779 | }, 780 | "language_info": { 781 | "codemirror_mode": { 782 | "name": "ipython", 783 | "version": 3 784 | }, 785 | "file_extension": ".py", 786 | "mimetype": "text/x-python", 787 | "name": "python", 788 | "nbconvert_exporter": "python", 789 | "pygments_lexer": "ipython3", 790 | "version": "3.7.0" 791 | } 792 | }, 793 | "nbformat": 4, 794 | "nbformat_minor": 2 795 | } 796 | -------------------------------------------------------------------------------- /第6章-数值预测.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 1. 线性回归\n", 8 | "## 1.1 简单例子" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "metadata": {}, 15 | "outputs": [], 16 | "source": [ 17 | "from sklearn import linear_model" 18 | ] 19 | }, 20 | { 21 | "cell_type": "code", 22 | "execution_count": 2, 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [ 26 | "X = [[0, 0], [1, 1], [2, 2]]\n", 27 | "y = [0, 1, 2]" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 3, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "data": { 37 | "text/plain": [ 38 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" 39 | ] 40 | }, 41 | "execution_count": 3, 42 | "metadata": {}, 43 | "output_type": "execute_result" 44 | } 45 | ], 46 | "source": [ 47 | "reg = linear_model.LinearRegression()\n", 48 | "reg.fit (X, y)" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 4, 54 | "metadata": {}, 55 | "outputs": [ 56 | { 57 | "data": { 58 | "text/plain": [ 59 | "array([0.5, 0.5])" 60 | ] 61 | }, 62 | "execution_count": 4, 63 | "metadata": {}, 64 | "output_type": "execute_result" 65 | } 66 | ], 67 | "source": [ 68 | "reg.coef_" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 5, 74 | "metadata": {}, 75 | "outputs": [ 76 | { 77 | "data": { 78 | "text/plain": [ 79 | "array([3.])" 80 | ] 81 | }, 82 | "execution_count": 5, 83 | "metadata": {}, 84 | "output_type": "execute_result" 85 | } 86 | ], 87 | "source": [ 88 | "reg.predict([[3,3]])" 89 | ] 90 | }, 91 | { 92 | "cell_type": "markdown", 93 | "metadata": {}, 94 | "source": [ 95 | "## 1.2 糖尿病数据集" 96 | ] 97 | }, 98 | { 99 | "cell_type": "code", 100 | "execution_count": 6, 101 | "metadata": {}, 102 | "outputs": [], 103 | "source": [ 104 | "import matplotlib.pyplot as plt\n", 105 | "import numpy as np\n", 106 | "from sklearn import datasets, linear_model\n", 107 | "from sklearn.metrics import mean_squared_error, r2_score" 108 | ] 109 | }, 110 | { 111 | "cell_type": "code", 112 | "execution_count": 7, 113 | "metadata": {}, 114 | "outputs": [], 115 | "source": [ 116 | "# 载入数据集\n", 117 | "diabetes = datasets.load_diabetes()" 118 | ] 119 | }, 120 | { 121 | "cell_type": "code", 122 | "execution_count": 9, 123 | "metadata": {}, 124 | "outputs": [ 125 | { 126 | "data": { 127 | "text/plain": [ 128 | "array([[ 0.06169621],\n", 129 | " [-0.05147406],\n", 130 | " [ 0.04445121],\n", 131 | " [-0.01159501],\n", 132 | " [-0.03638469],\n", 133 | " [-0.04069594],\n", 134 | " [-0.04716281],\n", 135 | " [-0.00189471],\n", 136 | " [ 0.06169621],\n", 137 | " [ 0.03906215],\n", 138 | " [-0.08380842],\n", 139 | " [ 0.01750591],\n", 140 | " [-0.02884001],\n", 141 | " [-0.00189471],\n", 142 | " [-0.02560657],\n", 143 | " [-0.01806189],\n", 144 | " [ 0.04229559],\n", 145 | " [ 0.01211685],\n", 146 | " [-0.0105172 ],\n", 147 | " [-0.01806189],\n", 148 | " [-0.05686312],\n", 149 | " [-0.02237314],\n", 150 | " [-0.00405033],\n", 151 | " [ 0.06061839],\n", 152 | " [ 0.03582872],\n", 153 | " [-0.01267283],\n", 154 | " [-0.07734155],\n", 155 | " [ 0.05954058],\n", 156 | " [-0.02129532],\n", 157 | " [-0.00620595],\n", 158 | " [ 0.04445121],\n", 159 | " [-0.06548562],\n", 160 | " [ 0.12528712],\n", 161 | " [-0.05039625],\n", 162 | " [-0.06332999],\n", 163 | " [-0.03099563],\n", 164 | " [ 0.02289497],\n", 165 | " [ 0.01103904],\n", 166 | " [ 0.07139652],\n", 167 | " [ 0.01427248],\n", 168 | " [-0.00836158],\n", 169 | " [-0.06764124],\n", 170 | " [-0.0105172 ],\n", 171 | " [-0.02345095],\n", 172 | " [ 0.06816308],\n", 173 | " [-0.03530688],\n", 174 | " [-0.01159501],\n", 175 | " [-0.0730303 ],\n", 176 | " [-0.04177375],\n", 177 | " [ 0.01427248],\n", 178 | " [-0.00728377],\n", 179 | " [ 0.0164281 ],\n", 180 | " [-0.00943939],\n", 181 | " [-0.01590626],\n", 182 | " [ 0.0250506 ],\n", 183 | " [-0.04931844],\n", 184 | " [ 0.04121778],\n", 185 | " [-0.06332999],\n", 186 | " [-0.06440781],\n", 187 | " [-0.02560657],\n", 188 | " [-0.00405033],\n", 189 | " [ 0.00457217],\n", 190 | " [-0.00728377],\n", 191 | " [-0.0374625 ],\n", 192 | " [-0.02560657],\n", 193 | " [-0.02452876],\n", 194 | " [-0.01806189],\n", 195 | " [-0.01482845],\n", 196 | " [-0.02991782],\n", 197 | " [-0.046085 ],\n", 198 | " [-0.06979687],\n", 199 | " [ 0.03367309],\n", 200 | " [-0.00405033],\n", 201 | " [-0.02021751],\n", 202 | " [ 0.00241654],\n", 203 | " [-0.03099563],\n", 204 | " [ 0.02828403],\n", 205 | " [-0.03638469],\n", 206 | " [-0.05794093],\n", 207 | " [-0.0374625 ],\n", 208 | " [ 0.01211685],\n", 209 | " [-0.02237314],\n", 210 | " [-0.03530688],\n", 211 | " [ 0.00996123],\n", 212 | " [-0.03961813],\n", 213 | " [ 0.07139652],\n", 214 | " [-0.07518593],\n", 215 | " [-0.00620595],\n", 216 | " [-0.04069594],\n", 217 | " [-0.04824063],\n", 218 | " [-0.02560657],\n", 219 | " [ 0.0519959 ],\n", 220 | " [ 0.00457217],\n", 221 | " [-0.06440781],\n", 222 | " [-0.01698407],\n", 223 | " [-0.05794093],\n", 224 | " [ 0.00996123],\n", 225 | " [ 0.08864151],\n", 226 | " [-0.00512814],\n", 227 | " [-0.06440781],\n", 228 | " [ 0.01750591],\n", 229 | " [-0.04500719],\n", 230 | " [ 0.02828403],\n", 231 | " [ 0.04121778],\n", 232 | " [ 0.06492964],\n", 233 | " [-0.03207344],\n", 234 | " [-0.07626374],\n", 235 | " [ 0.04984027],\n", 236 | " [ 0.04552903],\n", 237 | " [-0.00943939],\n", 238 | " [-0.03207344],\n", 239 | " [ 0.00457217],\n", 240 | " [ 0.02073935],\n", 241 | " [ 0.01427248],\n", 242 | " [ 0.11019775],\n", 243 | " [ 0.00133873],\n", 244 | " [ 0.05846277],\n", 245 | " [-0.02129532],\n", 246 | " [-0.0105172 ],\n", 247 | " [-0.04716281],\n", 248 | " [ 0.00457217],\n", 249 | " [ 0.01750591],\n", 250 | " [ 0.08109682],\n", 251 | " [ 0.0347509 ],\n", 252 | " [ 0.02397278],\n", 253 | " [-0.00836158],\n", 254 | " [-0.06117437],\n", 255 | " [-0.00189471],\n", 256 | " [-0.06225218],\n", 257 | " [ 0.0164281 ],\n", 258 | " [ 0.09618619],\n", 259 | " [-0.06979687],\n", 260 | " [-0.02129532],\n", 261 | " [-0.05362969],\n", 262 | " [ 0.0433734 ],\n", 263 | " [ 0.05630715],\n", 264 | " [-0.0816528 ],\n", 265 | " [ 0.04984027],\n", 266 | " [ 0.11127556],\n", 267 | " [ 0.06169621],\n", 268 | " [ 0.01427248],\n", 269 | " [ 0.04768465],\n", 270 | " [ 0.01211685],\n", 271 | " [ 0.00564998],\n", 272 | " [ 0.04660684],\n", 273 | " [ 0.12852056],\n", 274 | " [ 0.05954058],\n", 275 | " [ 0.09295276],\n", 276 | " [ 0.01535029],\n", 277 | " [-0.00512814],\n", 278 | " [ 0.0703187 ],\n", 279 | " [-0.00405033],\n", 280 | " [-0.00081689],\n", 281 | " [-0.04392938],\n", 282 | " [ 0.02073935],\n", 283 | " [ 0.06061839],\n", 284 | " [-0.0105172 ],\n", 285 | " [-0.03315126],\n", 286 | " [-0.06548562],\n", 287 | " [ 0.0433734 ],\n", 288 | " [-0.06225218],\n", 289 | " [ 0.06385183],\n", 290 | " [ 0.03043966],\n", 291 | " [ 0.07247433],\n", 292 | " [-0.0191397 ],\n", 293 | " [-0.06656343],\n", 294 | " [-0.06009656],\n", 295 | " [ 0.06924089],\n", 296 | " [ 0.05954058],\n", 297 | " [-0.02668438],\n", 298 | " [-0.02021751],\n", 299 | " [-0.046085 ],\n", 300 | " [ 0.07139652],\n", 301 | " [-0.07949718],\n", 302 | " [ 0.00996123],\n", 303 | " [-0.03854032],\n", 304 | " [ 0.01966154],\n", 305 | " [ 0.02720622],\n", 306 | " [-0.00836158],\n", 307 | " [-0.01590626],\n", 308 | " [ 0.00457217],\n", 309 | " [-0.04285156],\n", 310 | " [ 0.00564998],\n", 311 | " [-0.03530688],\n", 312 | " [ 0.02397278],\n", 313 | " [-0.01806189],\n", 314 | " [ 0.04229559],\n", 315 | " [-0.0547075 ],\n", 316 | " [-0.00297252],\n", 317 | " [-0.06656343],\n", 318 | " [-0.01267283],\n", 319 | " [-0.04177375],\n", 320 | " [-0.03099563],\n", 321 | " [-0.00512814],\n", 322 | " [-0.05901875],\n", 323 | " [ 0.0250506 ],\n", 324 | " [-0.046085 ],\n", 325 | " [ 0.00349435],\n", 326 | " [ 0.05415152],\n", 327 | " [-0.04500719],\n", 328 | " [-0.05794093],\n", 329 | " [-0.05578531],\n", 330 | " [ 0.00133873],\n", 331 | " [ 0.03043966],\n", 332 | " [ 0.00672779],\n", 333 | " [ 0.04660684],\n", 334 | " [ 0.02612841],\n", 335 | " [ 0.04552903],\n", 336 | " [ 0.04013997],\n", 337 | " [-0.01806189],\n", 338 | " [ 0.01427248],\n", 339 | " [ 0.03690653],\n", 340 | " [ 0.00349435],\n", 341 | " [-0.07087468],\n", 342 | " [-0.03315126],\n", 343 | " [ 0.09403057],\n", 344 | " [ 0.03582872],\n", 345 | " [ 0.03151747],\n", 346 | " [-0.06548562],\n", 347 | " [-0.04177375],\n", 348 | " [-0.03961813],\n", 349 | " [-0.03854032],\n", 350 | " [-0.02560657],\n", 351 | " [-0.02345095],\n", 352 | " [-0.06656343],\n", 353 | " [ 0.03259528],\n", 354 | " [-0.046085 ],\n", 355 | " [-0.02991782],\n", 356 | " [-0.01267283],\n", 357 | " [-0.01590626],\n", 358 | " [ 0.07139652],\n", 359 | " [-0.03099563],\n", 360 | " [ 0.00026092],\n", 361 | " [ 0.03690653],\n", 362 | " [ 0.03906215],\n", 363 | " [-0.01482845],\n", 364 | " [ 0.00672779],\n", 365 | " [-0.06871905],\n", 366 | " [-0.00943939],\n", 367 | " [ 0.01966154],\n", 368 | " [ 0.07462995],\n", 369 | " [-0.00836158],\n", 370 | " [-0.02345095],\n", 371 | " [-0.046085 ],\n", 372 | " [ 0.05415152],\n", 373 | " [-0.03530688],\n", 374 | " [-0.03207344],\n", 375 | " [-0.0816528 ],\n", 376 | " [ 0.04768465],\n", 377 | " [ 0.06061839],\n", 378 | " [ 0.05630715],\n", 379 | " [ 0.09834182],\n", 380 | " [ 0.05954058],\n", 381 | " [ 0.03367309],\n", 382 | " [ 0.05630715],\n", 383 | " [-0.06548562],\n", 384 | " [ 0.16085492],\n", 385 | " [-0.05578531],\n", 386 | " [-0.02452876],\n", 387 | " [-0.03638469],\n", 388 | " [-0.00836158],\n", 389 | " [-0.04177375],\n", 390 | " [ 0.12744274],\n", 391 | " [-0.07734155],\n", 392 | " [ 0.02828403],\n", 393 | " [-0.02560657],\n", 394 | " [-0.06225218],\n", 395 | " [-0.00081689],\n", 396 | " [ 0.08864151],\n", 397 | " [-0.03207344],\n", 398 | " [ 0.03043966],\n", 399 | " [ 0.00888341],\n", 400 | " [ 0.00672779],\n", 401 | " [-0.02021751],\n", 402 | " [-0.02452876],\n", 403 | " [-0.01159501],\n", 404 | " [ 0.02612841],\n", 405 | " [-0.05901875],\n", 406 | " [-0.03638469],\n", 407 | " [-0.02452876],\n", 408 | " [ 0.01858372],\n", 409 | " [-0.0902753 ],\n", 410 | " [-0.00512814],\n", 411 | " [-0.05255187],\n", 412 | " [-0.02237314],\n", 413 | " [-0.02021751],\n", 414 | " [-0.0547075 ],\n", 415 | " [-0.00620595],\n", 416 | " [-0.01698407],\n", 417 | " [ 0.05522933],\n", 418 | " [ 0.07678558],\n", 419 | " [ 0.01858372],\n", 420 | " [-0.02237314],\n", 421 | " [ 0.09295276],\n", 422 | " [-0.03099563],\n", 423 | " [ 0.03906215],\n", 424 | " [-0.06117437],\n", 425 | " [-0.00836158],\n", 426 | " [-0.0374625 ],\n", 427 | " [-0.01375064],\n", 428 | " [ 0.07355214],\n", 429 | " [-0.02452876],\n", 430 | " [ 0.03367309],\n", 431 | " [ 0.0347509 ],\n", 432 | " [-0.03854032],\n", 433 | " [-0.03961813],\n", 434 | " [-0.00189471],\n", 435 | " [-0.03099563],\n", 436 | " [-0.046085 ],\n", 437 | " [ 0.00133873],\n", 438 | " [ 0.06492964],\n", 439 | " [ 0.04013997],\n", 440 | " [-0.02345095],\n", 441 | " [ 0.05307371],\n", 442 | " [ 0.04013997],\n", 443 | " [-0.02021751],\n", 444 | " [ 0.01427248],\n", 445 | " [-0.03422907],\n", 446 | " [ 0.00672779],\n", 447 | " [ 0.00457217],\n", 448 | " [ 0.03043966],\n", 449 | " [ 0.0519959 ],\n", 450 | " [ 0.06169621],\n", 451 | " [-0.00728377],\n", 452 | " [ 0.00564998],\n", 453 | " [ 0.05415152],\n", 454 | " [-0.00836158],\n", 455 | " [ 0.114509 ],\n", 456 | " [ 0.06708527],\n", 457 | " [-0.05578531],\n", 458 | " [ 0.03043966],\n", 459 | " [-0.02560657],\n", 460 | " [ 0.10480869],\n", 461 | " [-0.00620595],\n", 462 | " [-0.04716281],\n", 463 | " [-0.04824063],\n", 464 | " [ 0.08540807],\n", 465 | " [-0.01267283],\n", 466 | " [-0.03315126],\n", 467 | " [-0.00728377],\n", 468 | " [-0.01375064],\n", 469 | " [ 0.05954058],\n", 470 | " [ 0.02181716],\n", 471 | " [ 0.01858372],\n", 472 | " [-0.01159501],\n", 473 | " [-0.00297252],\n", 474 | " [ 0.01750591],\n", 475 | " [-0.02991782],\n", 476 | " [-0.02021751],\n", 477 | " [-0.05794093],\n", 478 | " [ 0.06061839],\n", 479 | " [-0.04069594],\n", 480 | " [-0.07195249],\n", 481 | " [-0.05578531],\n", 482 | " [ 0.04552903],\n", 483 | " [-0.00943939],\n", 484 | " [-0.03315126],\n", 485 | " [ 0.04984027],\n", 486 | " [-0.08488624],\n", 487 | " [ 0.00564998],\n", 488 | " [ 0.02073935],\n", 489 | " [-0.00728377],\n", 490 | " [ 0.10480869],\n", 491 | " [-0.02452876],\n", 492 | " [-0.00620595],\n", 493 | " [-0.03854032],\n", 494 | " [ 0.13714305],\n", 495 | " [ 0.17055523],\n", 496 | " [ 0.00241654],\n", 497 | " [ 0.03798434],\n", 498 | " [-0.05794093],\n", 499 | " [-0.00943939],\n", 500 | " [-0.02345095],\n", 501 | " [-0.0105172 ],\n", 502 | " [-0.03422907],\n", 503 | " [-0.00297252],\n", 504 | " [ 0.06816308],\n", 505 | " [ 0.00996123],\n", 506 | " [ 0.00241654],\n", 507 | " [-0.03854032],\n", 508 | " [ 0.02612841],\n", 509 | " [-0.08919748],\n", 510 | " [ 0.06061839],\n", 511 | " [-0.02884001],\n", 512 | " [-0.02991782],\n", 513 | " [-0.0191397 ],\n", 514 | " [-0.04069594],\n", 515 | " [ 0.01535029],\n", 516 | " [-0.02452876],\n", 517 | " [ 0.00133873],\n", 518 | " [ 0.06924089],\n", 519 | " [-0.06979687],\n", 520 | " [-0.02991782],\n", 521 | " [-0.046085 ],\n", 522 | " [ 0.01858372],\n", 523 | " [ 0.00133873],\n", 524 | " [-0.03099563],\n", 525 | " [-0.00405033],\n", 526 | " [ 0.01535029],\n", 527 | " [ 0.02289497],\n", 528 | " [ 0.04552903],\n", 529 | " [-0.04500719],\n", 530 | " [-0.03315126],\n", 531 | " [ 0.097264 ],\n", 532 | " [ 0.05415152],\n", 533 | " [ 0.12313149],\n", 534 | " [-0.08057499],\n", 535 | " [ 0.09295276],\n", 536 | " [-0.05039625],\n", 537 | " [-0.01159501],\n", 538 | " [-0.0277622 ],\n", 539 | " [ 0.05846277],\n", 540 | " [ 0.08540807],\n", 541 | " [-0.00081689],\n", 542 | " [ 0.00672779],\n", 543 | " [ 0.00888341],\n", 544 | " [ 0.08001901],\n", 545 | " [ 0.07139652],\n", 546 | " [-0.02452876],\n", 547 | " [-0.0547075 ],\n", 548 | " [-0.03638469],\n", 549 | " [ 0.0164281 ],\n", 550 | " [ 0.07786339],\n", 551 | " [-0.03961813],\n", 552 | " [ 0.01103904],\n", 553 | " [-0.04069594],\n", 554 | " [-0.03422907],\n", 555 | " [ 0.00564998],\n", 556 | " [ 0.08864151],\n", 557 | " [-0.03315126],\n", 558 | " [-0.05686312],\n", 559 | " [-0.03099563],\n", 560 | " [ 0.05522933],\n", 561 | " [-0.06009656],\n", 562 | " [ 0.00133873],\n", 563 | " [-0.02345095],\n", 564 | " [-0.07410811],\n", 565 | " [ 0.01966154],\n", 566 | " [-0.01590626],\n", 567 | " [-0.01590626],\n", 568 | " [ 0.03906215],\n", 569 | " [-0.0730303 ]])" 570 | ] 571 | }, 572 | "execution_count": 9, 573 | "metadata": {}, 574 | "output_type": "execute_result" 575 | } 576 | ], 577 | "source": [ 578 | "# 只取第三个属性进行一元回归\n", 579 | "diabetes_X = diabetes.data[:, np.newaxis, 2]\n", 580 | "diabetes_X" 581 | ] 582 | }, 583 | { 584 | "cell_type": "code", 585 | "execution_count": 10, 586 | "metadata": {}, 587 | "outputs": [], 588 | "source": [ 589 | "# 划分训练集和测试集\n", 590 | "# 对特征进行划分\n", 591 | "diabetes_X_train = diabetes_X[:-20]\n", 592 | "diabetes_X_test = diabetes_X[-20:]\n", 593 | "\n", 594 | "# 对标签进行划分\n", 595 | "diabetes_y_train = diabetes.target[:-20]\n", 596 | "diabetes_y_test = diabetes.target[-20:]" 597 | ] 598 | }, 599 | { 600 | "cell_type": "code", 601 | "execution_count": 11, 602 | "metadata": {}, 603 | "outputs": [], 604 | "source": [ 605 | "# 创建模型对象\n", 606 | "regr = linear_model.LinearRegression()\n", 607 | "\n", 608 | "# 在训练集上训练模型\n", 609 | "regr.fit(diabetes_X_train, diabetes_y_train)\n", 610 | "\n", 611 | "# 在测试集上测试\n", 612 | "diabetes_y_pred = regr.predict(diabetes_X_test)" 613 | ] 614 | }, 615 | { 616 | "cell_type": "code", 617 | "execution_count": 12, 618 | "metadata": {}, 619 | "outputs": [ 620 | { 621 | "name": "stdout", 622 | "output_type": "stream", 623 | "text": [ 624 | "Coefficients: \n", 625 | " [938.23786125]\n", 626 | "Mean squared error: 2548.07\n", 627 | "Variance score: 0.47\n" 628 | ] 629 | } 630 | ], 631 | "source": [ 632 | "# 查看回归系数\n", 633 | "print('Coefficients: \\n', regr.coef_)\n", 634 | "# MSE\n", 635 | "print(\"Mean squared error: %.2f\"\n", 636 | " % mean_squared_error(diabetes_y_test, diabetes_y_pred))\n", 637 | "# 解释方差R^2\n", 638 | "print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))" 639 | ] 640 | }, 641 | { 642 | "cell_type": "code", 643 | "execution_count": 13, 644 | "metadata": {}, 645 | "outputs": [ 646 | { 647 | "data": { 648 | "image/png": "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\n", 649 | "text/plain": [ 650 | "
" 651 | ] 652 | }, 653 | "metadata": {}, 654 | "output_type": "display_data" 655 | } 656 | ], 657 | "source": [ 658 | "# 绘图查看预测结果\n", 659 | "plt.scatter(diabetes_X_test, diabetes_y_test, color='black')\n", 660 | "plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)\n", 661 | "\n", 662 | "plt.xticks(())\n", 663 | "plt.yticks(())\n", 664 | "\n", 665 | "plt.show()" 666 | ] 667 | }, 668 | { 669 | "cell_type": "markdown", 670 | "metadata": {}, 671 | "source": [ 672 | "# 2. 回归树" 673 | ] 674 | }, 675 | { 676 | "cell_type": "markdown", 677 | "metadata": {}, 678 | "source": [ 679 | "## 2.1 简单例子" 680 | ] 681 | }, 682 | { 683 | "cell_type": "code", 684 | "execution_count": 14, 685 | "metadata": {}, 686 | "outputs": [], 687 | "source": [ 688 | "from sklearn import tree" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 15, 694 | "metadata": {}, 695 | "outputs": [], 696 | "source": [ 697 | "X = [[0, 0], [1, 1], [2, 2]]\n", 698 | "y = [0, 1, 2]" 699 | ] 700 | }, 701 | { 702 | "cell_type": "code", 703 | "execution_count": 16, 704 | "metadata": {}, 705 | "outputs": [], 706 | "source": [ 707 | "dt_reg_test = tree.DecisionTreeRegressor()" 708 | ] 709 | }, 710 | { 711 | "cell_type": "code", 712 | "execution_count": 17, 713 | "metadata": {}, 714 | "outputs": [], 715 | "source": [ 716 | "dt_reg_test = dt_reg_test.fit(X, y)" 717 | ] 718 | }, 719 | { 720 | "cell_type": "code", 721 | "execution_count": 18, 722 | "metadata": {}, 723 | "outputs": [ 724 | { 725 | "data": { 726 | "text/plain": [ 727 | "array([1.])" 728 | ] 729 | }, 730 | "execution_count": 18, 731 | "metadata": {}, 732 | "output_type": "execute_result" 733 | } 734 | ], 735 | "source": [ 736 | "dt_reg_test.predict([[1, 1]])" 737 | ] 738 | }, 739 | { 740 | "cell_type": "markdown", 741 | "metadata": {}, 742 | "source": [ 743 | "## 2.2 生成的随机数据集" 744 | ] 745 | }, 746 | { 747 | "cell_type": "code", 748 | "execution_count": 19, 749 | "metadata": {}, 750 | "outputs": [], 751 | "source": [ 752 | "import numpy as np\n", 753 | "from sklearn.tree import DecisionTreeRegressor\n", 754 | "import matplotlib.pyplot as plt" 755 | ] 756 | }, 757 | { 758 | "cell_type": "code", 759 | "execution_count": 20, 760 | "metadata": {}, 761 | "outputs": [], 762 | "source": [ 763 | "# 生成数据集,并加入随机误差\n", 764 | "rng = np.random.RandomState(1)\n", 765 | "X = np.sort(5 * rng.rand(80, 1), axis=0)\n", 766 | "y = np.sin(X).ravel()\n", 767 | "y[::5] += 3 * (0.5 - rng.rand(16))" 768 | ] 769 | }, 770 | { 771 | "cell_type": "code", 772 | "execution_count": 21, 773 | "metadata": {}, 774 | "outputs": [ 775 | { 776 | "data": { 777 | "text/plain": [ 778 | "DecisionTreeRegressor(criterion='mse', max_depth=5, max_features=None,\n", 779 | " max_leaf_nodes=None, min_impurity_decrease=0.0,\n", 780 | " min_impurity_split=None, min_samples_leaf=1,\n", 781 | " min_samples_split=2, min_weight_fraction_leaf=0.0,\n", 782 | " presort=False, random_state=None, splitter='best')" 783 | ] 784 | }, 785 | "execution_count": 21, 786 | "metadata": {}, 787 | "output_type": "execute_result" 788 | } 789 | ], 790 | "source": [ 791 | "# 用不同参数,分别拟合模型\n", 792 | "dt_regr_1 = DecisionTreeRegressor(max_depth=2)\n", 793 | "dt_regr_2 = DecisionTreeRegressor(max_depth=5)\n", 794 | "dt_regr_1.fit(X, y)\n", 795 | "dt_regr_2.fit(X, y)" 796 | ] 797 | }, 798 | { 799 | "cell_type": "code", 800 | "execution_count": 22, 801 | "metadata": {}, 802 | "outputs": [], 803 | "source": [ 804 | "# 分别进行模型预测\n", 805 | "X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]\n", 806 | "y_1 = dt_regr_1.predict(X_test)\n", 807 | "y_2 = dt_regr_2.predict(X_test)" 808 | ] 809 | }, 810 | { 811 | "cell_type": "code", 812 | "execution_count": 23, 813 | "metadata": {}, 814 | "outputs": [ 815 | { 816 | "data": { 817 | "image/png": "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\n", 818 | "text/plain": [ 819 | "
" 820 | ] 821 | }, 822 | "metadata": {}, 823 | "output_type": "display_data" 824 | } 825 | ], 826 | "source": [ 827 | "# 绘制结果\n", 828 | "plt.figure()\n", 829 | "plt.scatter(X, y, s=20, edgecolor=\"black\",\n", 830 | " c=\"darkorange\", label=\"data\")\n", 831 | "plt.plot(X_test, y_1, color=\"cornflowerblue\",\n", 832 | " label=\"max_depth=2\", linewidth=2)\n", 833 | "plt.plot(X_test, y_2, color=\"yellowgreen\", label=\"max_depth=5\", linewidth=2)\n", 834 | "plt.xlabel(\"data\")\n", 835 | "plt.ylabel(\"target\")\n", 836 | "plt.title(\"Decision Tree Regression\")\n", 837 | "plt.legend()\n", 838 | "plt.show()" 839 | ] 840 | }, 841 | { 842 | "cell_type": "markdown", 843 | "metadata": {}, 844 | "source": [ 845 | "# 3. k近邻回归" 846 | ] 847 | }, 848 | { 849 | "cell_type": "code", 850 | "execution_count": 24, 851 | "metadata": {}, 852 | "outputs": [], 853 | "source": [ 854 | "import numpy as np\n", 855 | "import matplotlib.pyplot as plt\n", 856 | "from sklearn import neighbors" 857 | ] 858 | }, 859 | { 860 | "cell_type": "code", 861 | "execution_count": 25, 862 | "metadata": {}, 863 | "outputs": [], 864 | "source": [ 865 | "# 生成样本数据,并加入随机误差\n", 866 | "np.random.seed(0)\n", 867 | "X = np.sort(5 * np.random.rand(40, 1), axis=0)\n", 868 | "T = np.linspace(0, 5, 500)[:, np.newaxis]\n", 869 | "y = np.sin(X).ravel()\n", 870 | "\n", 871 | "# 加入随机误差\n", 872 | "y[::5] += 1 * (0.5 - np.random.rand(8))" 873 | ] 874 | }, 875 | { 876 | "cell_type": "code", 877 | "execution_count": 26, 878 | "metadata": {}, 879 | "outputs": [ 880 | { 881 | "data": { 882 | "image/png": "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\n", 883 | "text/plain": [ 884 | "
" 885 | ] 886 | }, 887 | "metadata": {}, 888 | "output_type": "display_data" 889 | } 890 | ], 891 | "source": [ 892 | "# 拟合模型,并画图对比\n", 893 | "n_neighbors = 5\n", 894 | "\n", 895 | "for i, weights in enumerate(['uniform', 'distance']):\n", 896 | " knn = neighbors.KNeighborsRegressor(n_neighbors, weights=weights)\n", 897 | " y_ = knn.fit(X, y).predict(T)\n", 898 | "\n", 899 | " plt.subplot(2, 1, i + 1)\n", 900 | " plt.scatter(X, y, c='k', label='data')\n", 901 | " plt.plot(T, y_, c='g', label='prediction')\n", 902 | " plt.axis('tight')\n", 903 | " plt.legend()\n", 904 | " plt.title(\"KNeighborsRegressor (k = %i, weights = '%s')\" % \n", 905 | " (n_neighbors,weights))\n", 906 | "\n", 907 | "plt.show()" 908 | ] 909 | }, 910 | { 911 | "cell_type": "code", 912 | "execution_count": null, 913 | "metadata": {}, 914 | "outputs": [], 915 | "source": [] 916 | } 917 | ], 918 | "metadata": { 919 | "kernelspec": { 920 | "display_name": "Python 3", 921 | "language": "python", 922 | "name": "python3" 923 | }, 924 | "language_info": { 925 | "codemirror_mode": { 926 | "name": "ipython", 927 | "version": 3 928 | }, 929 | "file_extension": ".py", 930 | "mimetype": "text/x-python", 931 | "name": "python", 932 | "nbconvert_exporter": "python", 933 | "pygments_lexer": "ipython3", 934 | "version": "3.7.0" 935 | } 936 | }, 937 | "nbformat": 4, 938 | "nbformat_minor": 2 939 | } 940 | --------------------------------------------------------------------------------