项目1 走进机器å¦ä¹ 的世界 项目导读 在过去的10 年里,机器å¦ä¹ 技术实现了自动驾驶ã€å®žç”¨çš„è¯éŸ³è¯†åˆ«ã€æœ‰æ•ˆçš„ç½‘ç»œæœ ç´¢ç‰ã€‚机器å¦ä¹ åœ¨ä»Šå¤©æ˜¯å¦‚æ¤æ™®åŠï¼Œä»¥è‡³äºŽäººä»¬å¯èƒ½ä¸€å¤©è¦ä½¿ç”¨å‡ 忬¡è€Œä¸è‡ªçŸ¥ã€‚ 本项目将从机器å¦ä¹ çš„åº”ç”¨åœºæ™¯å¼€å§‹ï¼Œä¾æ¬¡ç»™è¯»è€…介ç»ç”Ÿæ´»å·¥ä½œä¸å“ªäº›åœ°æ–¹åº”用了机 器å¦ä¹ ,这些机器å¦ä¹ 算法有哪些分类方å¼ï¼Œåº”ç”¨å¼€å‘æ¶‰åŠçš„æ¡†æž¶å’Œè½¯ä»¶åº“ï¼Œä»¥åŠæœºå™¨å¦ ä¹ å¼€å‘环境如何é…置,ç‰ç‰ã€‚带读者走进机器å¦ä¹ 的大门,为åŽç»é¡¹ç›®çš„å¦ä¹ 打下基础。 å¦ä¹ ç›®æ ‡  了解机器å¦ä¹ 的应用场景。  æŽŒæ¡æœºå™¨å¦ä¹ 算法的分类方å¼ã€‚  了解机器å¦ä¹ 常用的软件库。  æŽŒæ¡æœºå™¨å¦ä¹ å¼€å‘环境é…置。 知识导图 2 机器å¦ä¹ 算法与应用(Python 版) 任务1-1 了解机器å¦ä¹ 应用场景 任务æè¿° 通过已ç»åœ¨æ—¥å¸¸ç”Ÿæ´»ä¸å‡ºçŽ°çš„äººå·¥æ™ºèƒ½åº”ç”¨ï¼Œäº†è§£æœºå™¨å¦ä¹ ç›®å‰ä¸»æµçš„应用 场景。 ä»»åŠ¡ç›®æ ‡ 通过了解机器å¦ä¹ 的应用场景,掌æ¡ä¸åŒåº”用场景所需è¦çš„æœºå™¨å¦ä¹ 算法。 任务实施 ç›®å‰æœºå™¨å¦ä¹ 算法在很多场景下得到了应用,如人脸识别ã€å¤©æ°”预测ã€å¼‚常æµé‡æ£€æµ‹ å’Œæ™ºèƒ½åˆ¶é€ ç‰ã€‚ æ¥éª¤1 了解人脸识别 人脸识别是一ç§é€šè¿‡äººçš„é¢éƒ¨ç‰¹å¾ä¿¡æ¯è¿›è¡Œèº«ä»½è¯†åˆ«çš„æŠ€æœ¯ï¼Œå¯ä»¥ç”¨æ¥è¯†åˆ«ç…§ç‰‡ã€è§† 频ç‰ã€‚人脸识别是生物特å¾å®‰å…¨çš„一个范畴,其他形å¼çš„生物识别软件包括è¯éŸ³è¯†åˆ«ã€æŒ‡ 纹识别和视网膜(或虹膜)识别。这项技术主è¦ç”¨äºŽæ™ºèƒ½å®‰é˜²å’Œæ‰§æ³•场景ä¸ã€‚ æ¥éª¤2 了解天气预测 çŽ°åœ¨çš„å¤©æ°”é¢„æŠ¥ç³»ç»Ÿè™½ç„¶åœ¨æ•°å€¼é¢„æŠ¥æ¨¡å¼æ–¹é¢å–得了很好的效果,但ä¾é 人们对大气 物ç†çš„ç†è§£å»ºç«‹çš„ç‰©ç†æ¨¡å¼å¾€å¾€å—到å„ç§éšæœºå› ç´ çš„å¹²æ‰°ï¼Œä¸èƒ½æ»¡è¶³å¤æ‚å¤šå˜æ°”候地区的 预报需è¦ã€‚éšç€æ™ºèƒ½æ—¶ä»£çš„到æ¥ï¼Œäººä»¬å¼€å§‹åº”用先进技术建立å„ç§å¤©æ°”é¢„æŠ¥ç³»ç»Ÿï¼Œå…¶ä¸æœº 器å¦ä¹ 算法在天气预报领域日益活跃。 æ¥éª¤3 了解异常æµé‡æ£€æµ‹ ä¼ ç»Ÿçš„åŸºäºŽé™æ€è§„划匹é…的网络异常检测方法难以在动æ€å¤æ‚çš„ç½‘ç»œçŽ¯å¢ƒä¸æ£€æµ‹å‡ºæœª 知的异常和攻击类型,ä¸èƒ½æ»¡è¶³ç½‘ç»œå®‰å…¨æ£€æµ‹çš„è¦æ±‚。机器å¦ä¹ 具有自å¦ä¹ 和自进化的特 ç‚¹ï¼Œå®ƒèƒ½é€‚åº”å¤æ‚多å˜çš„网络环境,检测未知异常,满足实时准确检测的需è¦ã€‚利用机器 å¦ä¹ 方法åŠå…¶è‡ªå¦ä¹ 特性,å¯ä»¥å¯¹å¼‚常æµé‡è¿›è¡Œå¦ä¹ 。使用åˆé€‚的机器å¦ä¹ 算法,å¯ä»¥å‘ 现未知的异常æµé‡ã€‚ 项目 1 走进机器å¦ä¹ 的世界 3 æ¥éª¤4ã€€äº†è§£æ™ºèƒ½åˆ¶é€ æœºå™¨å¦ä¹ åœ¨æ™ºèƒ½åˆ¶é€ ä¸æŽ¨åŠ¨æ•´ä¸ªä¸šåŠ¡è¿è¥çš„æ•ˆçŽ‡ï¼Œæˆä¸ºæ™ºèƒ½åˆ¶é€ çš„é‡è¦ç»„æˆéƒ¨åˆ†ã€‚它 é€šè¿‡æ¶ˆé™¤æµªè´¹å’Œåˆ›å»ºæ›´ç²¾ç®€çš„ä»·å€¼é“¾å¸¦æ¥æ›´é«˜æ°´å¹³çš„é¢„æµ‹èƒ½åŠ›å’Œæ•´ä½“æ´žå¯ŸåŠ›ï¼ŒåŸºäºŽå¤šç§æ–¹ å¼å¢žåŠ ä»·å€¼å¹¶æœ€ç»ˆæé«˜ä¼ä¸šæ”¶å…¥å’Œå®¢æˆ·æ»¡æ„度:预测有助于生产计划更符åˆå®žé™…需求,并 对生产进度进行实时监控和调整;预测工厂车间机器的磨æŸï¼Œèƒ½å¤Ÿæå‰å®‰æŽ’ç»´æŠ¤åœæœºæ—¶ 间,既å¯é¿å…æ•…éšœï¼Œåˆæé«˜äº†ä¾›åº”é“¾çš„ç¨³å®šæ€§ï¼Œç¡®ä¿è´§ç‰©å‡†æ—¶äº¤ä»˜ã€‚ 任务1-2 机器å¦ä¹ ç®—æ³•çš„åˆ†ç±»æ–¹å¼ ä»»åŠ¡æè¿° 了解机器å¦ä¹ 算法有哪些,按照ä¸åŒçš„划分方法对机器å¦ä¹ 算法进行分类。 ä»»åŠ¡ç›®æ ‡ æ ¹æ®è¦æ±‚对给出的机器å¦ä¹ ç®—æ³•è¿›è¡Œåˆ†ç±»ï¼Œå¹¶æŽŒæ¡æ¯ä¸ªæœºå™¨å¦ä¹ 算法的分类过程。 知识准备 人工智能是计算机å¦ç§‘ä¸çš„一个é‡è¦åˆ†æ”¯ï¼Œè¿‘些年æ¥èŽ·å¾—äº†å¿«é€Ÿçš„å‘展,在很 多领域得到了广泛的应用。关于人工智能,尼尔逊(Nilssonï¼‰æ•™æŽˆæ›¾å¯¹å®ƒä¸‹äº†è¿™æ · 一个定义:“人工智能是关于知识的å¦ç§‘â€”â€”æ€Žæ ·è¡¨ç¤ºçŸ¥è¯†ä»¥åŠæ€Žæ ·èŽ·å¾—çŸ¥è¯†å¹¶ä½¿ 用知识的科å¦ã€‚†机器å¦ä¹ 是人工智能领域ä¸çš„一个åé›†ï¼Œæ˜¯äººå·¥æ™ºèƒ½çš„æ ¸å¿ƒï¼Œä¸“é—¨ç ”ç©¶è®¡ç®—æœº 如何模拟和实现人类的å¦ä¹ 行为。深度å¦ä¹ 是机器å¦ä¹ 领域ä¸çš„一个é‡è¦ç ”ç©¶æ–¹å‘。 任务实施 ç›®å‰æœºå™¨å¦ä¹ 包å«å¤šç§ç®—法,如监ç£å¦ä¹ ã€æ— 监ç£å¦ä¹ ã€èšç±»ç®—法和分类算法ç‰ã€‚按 ç…§ä¸åŒçš„划分方法,å¯ä»¥å¾—到ä¸åŒçš„分类。 æ¥éª¤1 按照å¦ä¹ 的过程分类 按照å¦ä¹ 的过程,机器å¦ä¹ 算法分为监ç£å¦ä¹ ã€åŠç›‘ç£å¦ä¹ ã€æ— 监ç£å¦ä¹ ã€ä¸»åŠ¨å¦ 4 机器å¦ä¹ 算法与应用(Python 版) ä¹ ã€å¼ºåŒ–å¦ä¹ ,如图1-1 所示。 图1-1 机器å¦ä¹ 算法按å¦ä¹ 的过程分类 监ç£å¦ä¹ åˆç§°æœ‰ç›‘ç£æœºå™¨å¦ä¹ ï¼Œå®ƒä½¿ç”¨å·²ç»æ ‡è®°çš„æ•°æ®é›†æ¥è®ç»ƒç®—法,以便对数æ®è¿› 行分类或准确预测结果。当数æ®è¾“入模型ä¸ï¼Œæ¨¡åž‹ä¼šè°ƒæ•´å…¶æƒé‡ï¼Œç›´åˆ°æ¨¡åž‹å¾—到适当的拟 åˆã€‚这个过程是交å‰éªŒè¯è¿‡ç¨‹çš„一部分。监ç£å¦ä¹ 有助于大规模地解决å„ç§çŽ°å®žé—®é¢˜ï¼Œä¾‹ 如,将垃圾邮件分类在收件箱的å•独文件夹ä¸ã€‚ åŠç›‘ç£å¦ä¹ ä½¿ç”¨å¤§é‡æœªæ ‡è®°çš„æ ·æœ¬è¿›è¡Œæ¨¡åž‹è®ç»ƒã€‚åŠç›‘ç£å¦ä¹ å¯ä»¥å‡å°‘大é‡äººä¸ºæ ‡è®° 工作,例如,用于生物å¦ä¸è›‹ç™½è´¨çš„特å¾é‰´å®šã€‚ æ— ç›‘ç£å¦ä¹ åˆç§°æ— ç›‘ç£æœºå™¨å¦ä¹ ,其用æ¥åˆ†æžå’Œèšç±»æœªæ ‡è®°çš„æ•°æ®é›†ã€‚这类算法ä¸éœ€ è¦äººå·¥å¹²é¢„å°±å¯ä»¥å‘现éšè—çš„æ¨¡å¼æˆ–æ•°æ®åˆ†ç»„。它能够å‘现信æ¯çš„相似性和差异性,是探 索性数æ®åˆ†æžã€äº¤å‰é”€å”®ç–略制定ã€å®¢æˆ·ç»†åˆ†å’Œå›¾åƒè¯†åˆ«çš„ç†æƒ³è§£å†³æ–¹æ¡ˆã€‚ 当数æ®é‡å¤ªå¤§è€Œæ— æ³•æ ‡è®°æ—¶ï¼Œå¯ä»¥ä½¿ç”¨ä¸»åЍå¦ä¹ ã€‚ä¸ºäº†æ›´å‡†ç¡®æœ‰æ•ˆåœ°æ ‡è®°æ•°æ®ï¼Œéœ€ è¦è®¾ç½®ä¸€äº›æ•°æ®çš„优先级。主动å¦ä¹ 与åŠç›‘ç£å¦ä¹ ç±»ä¼¼ï¼Œéƒ½é€‚ç”¨äºŽæ ‡æ³¨æˆæœ¬è¾ƒé«˜çš„场 景ä¸ã€‚ 强化å¦ä¹ 是一ç§è®ç»ƒæœºå™¨å¦ä¹ 模型åšå‡ºä¸€ç³»åˆ—决ç–,在ä¸ç¡®å®šçš„ã€æ½œåœ¨çš„夿‚çŽ¯å¢ƒä¸ å®žçŽ°ç›®æ ‡çš„æœºå™¨å¦ä¹ 算法。在强化å¦ä¹ ä¸ï¼Œè®¡ç®—机采用åå¤è¯•验的方法æ¥è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œ ä¾‹å¦‚ï¼Œè§£å†³æ— äººé©¾é©¶ã€æ£‹ç‰Œç±»åšå¼ˆç‰ç›¸å…³åº”用场景问题。 æ¥éª¤2 按照任务分类 从任务的角度,机器å¦ä¹ å¯ä»¥åˆ†ä¸ºèšç±»ç®—法ã€å›žå½’算法和分类算法这三类,如图1-2 所示。 èšç±»ç®—æ³•æ˜¯æŒ‡æŒ‰ç…§ä¸€å®šçš„æ ‡å‡†ï¼ˆå¦‚è·ç¦»ï¼‰ï¼Œ 将一个数æ®é›†åˆ’分为ä¸åŒçš„类或簇的机器å¦ä¹ 算法。åŒä¸€ç°‡ä¸æ•°æ®å¯¹è±¡çš„相似性è¦å°½å¯èƒ½ 大,ä¸åŒç°‡ä¸æ•°æ®å¯¹è±¡çš„差异性è¦å°½å¯èƒ½å¤§ã€‚ 常è§çš„应用场景如处ç†ç›®æ ‡ç”¨æˆ·ç¾¤ä½“åˆ†ç±»ç‰ é—®é¢˜ã€‚ 图1-2 机器å¦ä¹ 算法按任务分类 项目 1 走进机器å¦ä¹ 的世界 5 回归算法是一ç§ç”¨äºŽæ•°å€¼è¿žç»çš„éšæœºå˜é‡é¢„测和建模的有监ç£å¦ä¹ 算法。用例一般包 括æŒç»å˜åŒ–的情况,如房价预测ã€è‚¡ç¥¨è¶‹åŠ¿æˆ–æµ‹è¯•ç»“æžœã€‚å¸¸è§çš„回归方法包括线性回归〠逻辑回归和å²å›žå½’。常è§çš„åº”ç”¨åœºæ™¯å¦‚å¤„ç†æœºåœºå®¢æµé‡åˆ†å¸ƒé¢„测ç‰é—®é¢˜ã€‚ åˆ†ç±»ç®—æ³•æ ¹æ®æ ·æœ¬çš„ç‰¹ç‚¹ï¼Œå°†æ ·æœ¬åˆ’åˆ†ä¸ºé€‚å½“çš„ç±»åˆ«ã€‚å…·ä½“è€Œè¨€ï¼Œåˆ©ç”¨è®ç»ƒæ ·æœ¬è¿›è¡Œ è®ç»ƒï¼Œå¾—åˆ°æ ·æœ¬ç‰¹å¾åˆ°æ ·æœ¬æ ‡ç¾çš„æ˜ 射,å†åˆ©ç”¨æ˜ å°„å¾—åˆ°æ–°æ ·æœ¬çš„æ ‡ç¾ï¼Œæœ€åŽå°†æ ·æœ¬åˆ’分 为ä¸åŒçš„类别。常用的应用场景如处ç†å¸‚民出行选乘公交线路预测ç‰é—®é¢˜ã€‚ 任务1-3 软件库与框架 任务æè¿° 认识了机器å¦ä¹ 的应用场景和算法分类åŽï¼Œè®©æˆ‘们继ç»äº†è§£æœºå™¨å¦ä¹ 需è¦ä»€ä¹ˆ è½¯ä»¶åº“æ¥æ”¯æŒç®—法的è¿è¡Œã€‚ ä»»åŠ¡ç›®æ ‡ 了解目å‰ä¸»æµçš„æœºå™¨å¦ä¹ Python 开呿¡†æž¶å’Œè½¯ä»¶åº“。 任务实施 基于Javaã€Cã€Python ç‰ç¼–程è¯è¨€å¼€å‘的机器å¦ä¹ 常用库有很多,本任务主è¦ä»‹ç» 基于Python 的软件库。Python 软件库具有以下三个特点:其一,Python è¯è¨€çš„实现过程 相对简å•,å¯ä»¥å‡å°‘åœ¨å·¥ç¨‹å®žçŽ°è¿‡ç¨‹ä¸Šçš„æ—¶é—´ï¼Œå¢žåŠ åœ¨ç®—æ³•è®¾è®¡ä¸Šçš„æ—¶é—´ï¼Œæé«˜å·¥ä½œæ•ˆ 率;其二,Python è¯è¨€æœ‰éžå¸¸ä¸°å¯Œçš„库å¯ä»¥è°ƒç”¨ï¼Œå¦‚NumPyã€Sklearnã€Pandas ç‰ï¼›å…¶ä¸‰ï¼Œ Python 代ç 调试比较容易。以下是机器å¦ä¹ ä¸å¸¸ç”¨çš„Python 库åŠå¼€å‘框架。 æ¥éª¤1 认识NumPy NumPy 是Python è¯è¨€çš„一个扩展库,支æŒå¤§é‡çš„维数数组和矩阵è¿ç®—。æ¤å¤–,它还 为数组æ“作æä¾›äº†å¤§é‡çš„æ•°å¦å‡½æ•°åº“,è¿ç®—速度éžå¸¸å¿«ï¼Œæ‹¥æœ‰åœ¨çº¿æ€§ä»£æ•°ã€å‚…ç«‹å¶å˜æ¢å’Œ 矩阵领域工作的函数。NumPy 由特拉维斯·奥利芬特(Travis Oliphant)于2005 年创建。 它是一个开æºé¡¹ç›®ï¼Œå¯ä»¥ä¾›å¼€å‘者自由使用。 æ¥éª¤2 认识Sklearn Sklearn 是Python 䏿œ€å¥å£®çš„æœºå™¨å¦ä¹ 库。它通过Python 的一致性接å£ä¸ºæœºå™¨å¦ä¹ 和统计建模æä¾›äº†ä¸€ç³»åˆ—有效的工具,如图1-3 所示,包括分类ã€å›žå½’ã€èšç±»å’Œé™ç»´å›› 6 机器å¦ä¹ 算法与应用(Python 版) 类算法,å¯ä»¥ç›´æŽ¥è°ƒç”¨é‡Œé¢çš„æœºå™¨å¦ä¹ 方法。Sklearn ä¸»è¦æ˜¯ç”¨Python 编写的,是基于 NumPyã€SciPy å’ŒMatplotlib 构建的。 图1-3 Sklearn 包å«çš„æœºå™¨å¦ä¹ 方法 æ¥éª¤3 认识Matplotlib Matplotlib 是Python ä¸çš„一个低级图形打å°åº“,å¯ç”¨äºŽå¯è§†åŒ–。Matplotlib 是开æºçš„, å¼€å‘者å¯ä»¥å…费使用。Matplotlib 大部分是采用Python 编写的,为了与平å°å…¼å®¹ï¼Œæœ‰ä¸€äº› 片段是采用Cã€Objective-C å’ŒJavaScript è¯è¨€ç¼–写的。 æ¥éª¤4 认识SciPy SciPy 库ä¾èµ–于NumPy,它æä¾›äº†æ–¹ä¾¿å¿«æ·çš„N 维数组æ“作。SciPy 库是为使用 NumPy 数组而构建的,它æä¾›äº†å¾ˆå¤šå¯¹ç”¨æˆ·å‹å¥½ä¸”高效的数值计算功能,如用于数值积 分和优化的例程。 æ¥éª¤5 认识TensorFlow TensorFlow 是一个用于机器å¦ä¹ 端到端的开æºå¹³å°ã€‚它有一个由工具ã€åº“å’Œç¤¾åŒºèµ„æº ç»„æˆçš„å…¨é¢ã€çµæ´»çš„生æ€ç³»ç»Ÿï¼Œä½¿ç ”究人员能够推动深度å¦ä¹ 技术å‘展,开å‘人员å¯ä»¥è½» æ¾åœ°æž„建和部署基于深度å¦ä¹ 的应用程åºã€‚ TensorFlow æœ€åˆæ˜¯ç”±è°·æŒå¤§è„‘å›¢é˜Ÿçš„ç ”ç©¶äººå‘˜å’Œå·¥ç¨‹å¸ˆå¼€å‘的,用于进行机器å¦ä¹ 和神ç»ç½‘ç»œç ”ç©¶ï¼Œæä¾›ç¨³å®šçš„Python API å’ŒC++ API,以åŠå…¶ä»–è¯è¨€çš„éžä¿è¯å‘åŽå…¼å®¹ API。TensorFlow 具有足够的通用性,å¯ä»¥åº”用于许多领域。 æ¥éª¤6 认识CUDA CUDA 是NVIDIA 推出的通用并行计算框架,为图形处ç†å™¨ï¼ˆGraphics Processing Unit,GPU)上的通用计算而开å‘。有了CUDA,开å‘人员å¯ä»¥åˆ©ç”¨GPU çš„å¼ºå¤§åŠŸèƒ½æž é¡¹ç›® 1 走进机器å¦ä¹ 的世界 7 å¤§åœ°åŠ å¿«è®¡ç®—åº”ç”¨ç¨‹åºçš„速度。在GPU åŠ é€Ÿçš„åº”ç”¨ç¨‹åºä¸ï¼ŒCPU 针对å•线程进行了优化, å·¥ä½œè´Ÿè½½çš„é¡ºåºæŒ‡ä»¤æ‰§è¡Œçš„部分在CPU 上è¿è¡Œã€‚ æ¥éª¤7 认识cuDNN CUDA 深度神ç»ç½‘络(CUDA Deep Neural Network,cuDNN)库是GPU åŠ é€Ÿçš„æ·±åº¦ 神ç»ç½‘络原始库。cuDNN å¯ä»¥æžå¤§åœ°ä¼˜åŒ–æ ‡å‡†ä¾‹ç¨‹çš„å®žçŽ°ï¼Œå¦‚å·ç§¯å±‚ã€æ± 化层ã€è§„范化 层和激活层,用于å‰å‘å’ŒåŽå‘ä¼ æ’。 大多数的深度å¦ä¹ ç ”ç©¶äººå‘˜å’Œæ¡†æž¶å¼€å‘人员都ä¾èµ–cuDNN 实现高性能GPU åŠ é€Ÿã€‚æœ‰ 了cuDNNï¼Œç ”ç©¶äººå‘˜å’Œå¼€å‘人员å¯ä»¥ä¸“注于è®ç»ƒç¥žç»ç½‘络和开å‘软件应用程åºï¼Œè€Œæ— é¡» 花费时间进行低水平的GPU 性能调整。cuDNN å¯ä»¥åŠ é€Ÿè¯¸å¤šè¢«å¹¿æ³›ä½¿ç”¨çš„æ·±åº¦å¦ä¹ 框架, 包括Caff e2ã€Chainerã€Kerasã€MATLABã€Mxnetã€PyTorch å’ŒTensorFlow。 任务1-4 é…置机器å¦ä¹ å¼€å‘环境 任务æè¿° 机器å¦ä¹ 算法的è¿è¡Œéœ€è¦ä¸€å®šçš„软件环境支撑,本任务主è¦å¦ä¹ é…置机器å¦ä¹ 的开å‘环境。 ä»»åŠ¡ç›®æ ‡ ç†Ÿç»ƒæŽŒæ¡æœºå™¨å¦ä¹ å¼€å‘环境é…置的æ¯ä¸ªæ¥éª¤ã€‚ 任务实施 Anaconda 是一个围绕编程è¯è¨€Python 构建的数æ®ç§‘å¦å¹³å°ï¼Œä½œä¸ºä¸€ä¸ªä¸€ä½“åŒ–çš„æ•°æ® ç®¡ç†å·¥å…·ï¼Œå®ƒåˆ›å»ºäº†ä¸€ä¸ªæ–¹ä¾¿è®¿é—®å¤§é‡æ•°æ®çš„环境。在默认情况下,Anaconda å·²ç»åŒ…å« äº†Jupyter Notebook(Jupyter Notebook 是基于网页交互å¼çš„å¼€å‘工具,便于åˆå¦è€…调试程 åºï¼‰ã€‚Anaconda å¯é€šè¿‡å®˜ç½‘ä¸‹è½½ï¼Œè¯»è€…å¯æ ¹æ®ä¸ªäººè®¡ç®—机的æ“作系统æ¥é€‰æ‹©ç‰ˆæœ¬ã€‚本书选 æ‹©64-bit Graphical Installer(477 MB),里é¢å·²ç»åŒ…å«äº†Python 3.8。 æ¥éª¤1 安装Anaconda Anaconda 下载完毕åŽï¼Œæ‰“å¼€.exe 文件,进入安装界é¢ï¼Œå¦‚图1-4 所 ç¤ºã€‚æ ¹æ®å®‰è£…æç¤ºå•击Next 按钮,完æˆAnaconda 的安装。安装æˆåŠŸç•Œ é¢å¦‚图1-5 所示。 Anaconda 的安装 8 机器å¦ä¹ 算法与应用(Python 版) 图1-4 安装åˆå§‹ç•Œé¢å›¾1-5 安装æˆåŠŸç•Œé¢ æ¥éª¤2 å¼€å¯Jupyter Notebook 工具 安装完æˆåŽï¼Œåœ¨Windows 系统下的“开始â€èœå•æ 䏿‰“å¼€Anaconda Navigator。å¯åЍ åŽçš„界é¢å¦‚图1-6 所示。然åŽå•击Jupyter Notebook å›¾æ ‡ï¼Œæ‰“å¼€Jupyter Notebook 工具æ“作 界é¢ï¼Œå¦‚图1-7 所示。 图1-6 Anaconda Navigator å¯åŠ¨ç•Œé¢ é¡¹ç›® 1 走进机器å¦ä¹ 的世界 9 图1-7 Jupyter Notebook 工具æ“ä½œç•Œé¢ æ¥éª¤3 创建Python 脚本文件 在图1-7 ä¸å•击New 下拉按钮,在弹出的下拉框ä¸é€‰æ‹©â€œPython 3â€æ ‡ç¾ï¼Œå³å¯åˆ›å»º 一个Python 脚本文件,如图1-8 所示。 如图1-9 所示,从“开始â€èœå•ä¸é€‰æ‹©â€œAnaconda3(64-bitï¼‰â€æ–‡ä»¶å¤¹ï¼Œå•击“Jupyter Notebook(Anaconda3)â€ä¹Ÿå¯ä»¥ç›´æŽ¥è¿›å…¥å›¾1-8 所示的界é¢ã€‚ 图1-9 从文件夹Anaconda3 下直接进 å…¥Jupyter Notebook ç¼–è¾‘ç•Œé¢ å›¾1-8 Python 3 è„šæœ¬ç¼–ç¨‹ç•Œé¢ ä»»åŠ¡ 1-5 了解机器å¦ä¹ æ¥éª¤ 任务æè¿° æ ¹æ®æ‰€å¦ä¹ 到的机器å¦ä¹ 知识,了解机器å¦ä¹ 算法的实现æ¥éª¤ï¼Œä»¥åŠæ¯ä¸ªæ¥éª¤ 的作用与æ„义。 ä»»åŠ¡ç›®æ ‡ æŽŒæ¡æœºå™¨å¦ä¹ 算法æ¯ä¸ªæ¥éª¤çš„å«ä¹‰ã€‚ 10 机器å¦ä¹ 算法与应用(Python 版) 任务实施 机器å¦ä¹ ä¸çš„é¡¹ç›®å¼€å‘æ¥éª¤åŸºæœ¬ç±»ä¼¼ï¼Œå¦‚图1-10 æ‰€ç¤ºã€‚ç¬¬ä¸€æ¥æ˜¯æ”¶é›†æ•°æ®ï¼Œç¬¬äºŒæ¥ 是对数æ®è¿›è¡Œé¢„处ç†ï¼Œç¬¬ä¸‰æ¥æ˜¯æ ¹æ®æ•°æ®çš„特å¾é€‰æ‹©åˆé€‚çš„æ¨¡åž‹ï¼Œç¬¬å››æ¥æ˜¯ä½¿ç”¨æ•°æ®å¯¹é€‰ 择的模型进行è®ç»ƒï¼Œç¬¬äº”æ¥æ˜¯å¯¹æ¨¡åž‹è¯„ä¼°ï¼Œç¬¬å…æ¥æ˜¯æ¨¡åž‹çš„实际测试。 图1-10 机器å¦ä¹ çš„æ¥éª¤ 机器å¦ä¹ 的过程 æ¥éª¤ï¼‘ æ•°æ®æ”¶é›† ä¿—è¯è¯´â€œå·§å¦‡éš¾ä¸ºæ— 米之炊â€ï¼Œå¦‚果没有数æ®ï¼Œé‚£ä¹ˆæ— 论多么优秀的算法都没有æ„义。 机器å¦ä¹ ä¸çš„æ•°æ®å¯ä»¥é€šè¿‡ä¼ æ„Ÿå™¨ï¼ˆå¦‚æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ã€å›¾åƒä¼ 感器ã€çº¢å¤–ä¼ æ„Ÿå™¨ï¼‰èŽ·å–, 也å¯ä»¥é€šè¿‡ç½‘络爬虫进行收集。 æ¥éª¤2 æ•°æ®é¢„å¤„ç† å› ä¸ºèŽ·å–的数æ®ä¼šå‡ºçŽ°å¤šç§é—®é¢˜ï¼Œå¦‚æ•°æ®ç¼ºå¤±ã€åº¦é‡æ ‡å‡†ä¸ä¸€è‡´ã€æ•°æ®ç‰¹å¾å†—余较大 ç‰ï¼Œæ‰€ä»¥åœ¨è¿›è¡Œæœºå™¨å¦ä¹ 之å‰ï¼Œéœ€è¦è¿›è¡Œæ•°æ®å¤„ç†ï¼Œå¦‚通过主æˆåˆ†åˆ†æžæ¥æ¶ˆé™¤æ•°æ®ä¸çš„冗 余信æ¯ã€‚ æ¥éª¤3 选择模型 æ•°æ®å¤„ç†å®ŒåŽï¼Œé€‰æ‹©å¯èƒ½é€‚ç”¨äºŽæ¤æ•°æ®çš„æ¨¡åž‹ã€‚有时候å¯èƒ½åŒæ—¶é€‰æ‹©å¤šä¸ªæ¨¡åž‹ï¼Œåœ¨æ¨¡ 型的选择ä¸ï¼Œä¸€èˆ¬é€šè¿‡è§‚察数æ®çš„ç‰¹ç‚¹ï¼Œæ ¹æ®ç»éªŒé€‰æ‹©å¤šä¸ªå¯èƒ½é€‚åˆçš„æ¨¡åž‹ï¼Œå¦‚温度的预 测å¯ä»¥é€‰æ‹©ç¥žç»ç½‘ç»œã€æ”¯æŒå‘é‡å›žå½’ã€çº¿æ€§å›žå½’ç‰æ¨¡åž‹ã€‚ æ¥éª¤4 è®ç»ƒæ¨¡åž‹ 通过所æä¾›çš„æ•°æ®æ¥æ±‚解模型ä¸çš„傿•°ï¼Œæ¤è¿‡ç¨‹ç§°ä¸ºæ¨¡åž‹è®ç»ƒã€‚这个过程å¯èƒ½æ¯”较漫 长。例如,在深度神ç»ç½‘络ä¸ï¼Œéœ€è¦åå¤ä¸æ–地è¿ä»£æ¥æ±‚解网络模型ä¸çš„傿•°ã€‚当è¿ä»£æ¬¡ æ•°è¾¾åˆ°ä¸Šé™æˆ–者æŸå¤±å°äºŽè®¾å®šçš„æ ‡å‡†æ—¶åœæ¢è¿ä»£ï¼Œå¾—到è®ç»ƒå¥½çš„æ¨¡åž‹ã€‚ æ¥éª¤5 模型评估 模型è®ç»ƒå¥½ä¹‹åŽï¼Œéœ€è¦å¯¹é€‰æ‹©çš„æ¨¡åž‹è¿›è¡Œè¯„ä¼°ã€‚è¯„ä¼°çš„æ–¹å¼æœ‰ä¸»è§‚评价和客观评价,