人工智能通识(基础、技术、前沿、伦理与实践)-课件 第1-5章 人工智能概述- 计算机视觉_第1页
人工智能通识(基础、技术、前沿、伦理与实践)-课件 第1-5章 人工智能概述- 计算机视觉_第2页
人工智能通识(基础、技术、前沿、伦理与实践)-课件 第1-5章 人工智能概述- 计算机视觉_第3页
人工智能通识(基础、技术、前沿、伦理与实践)-课件 第1-5章 人工智能概述- 计算机视觉_第4页
人工智能通识(基础、技术、前沿、伦理与实践)-课件 第1-5章 人工智能概述- 计算机视觉_第5页
已阅读5页,还剩454页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能通识——基础、技术、前沿、伦理与实践第1章人工智能概述01什么是人工智能目录02人工智能的发展历程03人工智能的影响04世界各国的人工智能发展战略05人工智能关键技术06人工智能应用07人工智能产业08人工智能底层的信息化基础设施09人工智能思维01什么是人工智能Partone1.1什么是人工智能什么是智能人工智能的定义人工智能的要素人工智能的类型智能是一个复杂的概念,它涉及到多个方面和层次。一般来说,智能是指生物一般性的精神能力,指人认识、理解客观事物并运用知识、经验等解决问题的能力,包括记忆、观察、想象、思考、判断等。智能也包括一些更高级的能力,如理解、分析、推理、学习、规划和自我改进等方面的能力多元智能理论是由美国教育学家和心理学家霍华德·加德纳(HowardGardner)博士提出的一种全新的人类智能结构的理论。这一理论认为,智能是一种创造力和解决问题的能力的体现,而智能本身是多元化的,每个人身上都存在着很多种类型的智能。根据多元智能理论,每个人至少有七种智能语言智能数理逻辑智能音乐智能空间智能身体运动智能人际关系智能人际关系智能1.1.1什么是智能人工智能目前还没有统一的定义麦卡锡(McCarthy)认为,人工智能就是要让机器的行为看起来像是人所表现出的智能行为一样尼尔逊(Nilsson)认为,人工智能是关于人造物的智能行为,包括知觉、推理、学习、交流和在复杂环境中的行为1.1.2人工智能的定义巴尔(Barr)和费根鲍姆(Feigenbaum)认为,人工智能属于计算机科学的一个分支,旨在设计智能的计算机系统,也就是说,对照人类在自然语言理解、学习、推理问题求解等方面的智能行为,设计的系统应呈现出与之类似的特征本书认为人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能知识体系涉及多个学科,包括数学、逻辑学、归纳学、统计学、系统学、控制学、计算机科学等1.1.2人工智能的定义人工智能的四个要素包括数据、算力、算法和场景。人工智能的智能都蕴含在大数据中,数据量越大,智能程度越高;算力为人工智能提供了基本的计算能力的支撑;算法是实现人工智能的根本途径,是挖掘数据智能的有效方法;大数据、算力、算法作为输入,只有在实际的场景中进行输出,才能体现出实际价值(1)数据。数据是人工智能的基础因为机器学习算法需要大量的数据进行训练和优化。数据的质量、数量和多样性,对人工智能的性能和准确性至关重要。为了获得更好的结果,需要收集和整合各种来源的数据,并进行预处理和清洗,以确保数据的准确性和一致性1.1.3人工智能的要素(2)算力。算力是指计算机的处理能力,包括CPU、GPU、TPU等硬件设备人工智能需要大量的计算资源来处理和分析数据,因此,算力是人工智能发展的重要因素之一。随着技术的不断发展,计算机的算力不断提高,为人工智能的发展提供了更好的支持1.1.3人工智能的要素(3)算法。算法是人工智能的核心,它是指引计算机如何处理和分析数据的指令它是指引计算机如何处理和分析数据的指令。不同的算法适用于不同的任务和数据类型,因此,需要根据具体的应用场景选择合适的算法。同时,算法也需要不断优化和改进,以提高人工智能的性能和准确性1.1.3人工智能的要素(4)场景。场景是指人工智能应用的具体环境和使用场景不同场景下的人工智能应用需要不同的技术和解决方案。例如,在医疗领域,人工智能可以用于疾病诊断和治疗方案的制定;在交通领域,人工智能可以用于交通管理和优化;在教育领域,人工智能可以用于教学辅助和学生评估等。因此,场景的选择和使用对于人工智能的发展和应用至关重要1.1.3人工智能的要素强人工智能强人工智能是指能够完全取代人类工作的人工智能,它具有自我思考和学习能力,能够模仿人类的决策和行为强人工智能的目标是创造能够像人类一样思考和感知的智能机器强人工智能特点学习适应性创造性自主性处理复杂的问题并提供创新的解决方案算法和技术机器学习深度学习自然语言处理计算机视觉模拟人类的思维和行为1.1.4人工智能的类型弱人工智能弱人工智能是指不能制造出真正地推理和解决问题的智能机器,这些机器只不过看起来像是智能的,但并不具备真正的智能和自主意识弱人工智能有许多应用,包括问题求解、逻辑推理与定理证明、自然语言理解、专家系统、机器学习、人工神经网络、机器人学、模式识别、机器视觉等在图像识别领域,基于深度学习的人脸识别、物体识别、行为识别等,在医疗、交通、教育等行业都有广泛的用途,能够有效提高安全防范水平,打击犯罪和恐怖主义,惩治交通违法行为,提升交通安全水平等“深度学习+数据”模式甚至在文学创作、司法审判、新闻编辑、音乐和美术作品创作等方面,也有惊人的表现,能够极大地提升工作效率和质量,降低人类的工作强度,激发人类的创作灵感,创作出更好的作品1.1.4人工智能的类型通用人工智能和超级人工智能1.1.4人工智能的类型AGI(ArtificialGeneralIntelligence),即通用人工智能,是一种能够执行与人类相当或超越人类的广泛认知任务的人工智能系统。与专注于特定任务的窄人工智能(NarrowAI,也被称为“弱人工智能”)不同,AGI的目标是具备广泛的认知能力,能够在多种不同的任务和环境中表现出高度的灵活性和适应性。AGI被认为是强人工智能的一种形式,旨在实现类人智能和自学能力,使其能够执行训练或开发目的之外的任务。简而言之,AGI是人工智能的目前阶段追求目标,即创造出一台能在各种领域思考和学习的机器,让它像人类一样聪明。ASI(ArtificialSuperIntelligence),即超级人工智能,是人工智能领域中的巅峰之作。它指的是一种智力水平远超人类的机器智能,具备前所未有的自主学习、创新能力和问题解决能力。ASI不仅拥有比人类更强大的计算能力、学习能力,还能在创造力、情感理解等方面超越人类。这一概念最早在人工智能技术的发展过程中被提出,旨在探索并实现机器智能的终极形态。ASI的实现将意味着机器智能在各个方面都大大超过人类,包括推理、创新、情感理解等,甚至可能具备意识或超越人类的情感理解,并在与人类的互动中发挥巨大影响。不同人工智能类型之间的关系1.1.4人工智能的类型弱人工智能是实现通用人工智能和超级人工智能的基础。通过设计和训练弱人工智能系统,可以逐步提高其性能和能力,最终实现更高级别的智能。强人工智能包括通用人工智能和超级人工智能两个阶段。通用人工智能是弱人工智能向超级人工智能过渡的中间阶段,它具备了更广泛的智能能力,但仍未达到超越人类智能的水平。超级人工智能则是通用人工智能发展的一个可能结果,代表了人工智能技术的最高水平,是人工智能发展的终极形态。02人工智能的发展历程Parttwo1.2人工智能的发展历程图灵测试人工智能的诞生人工智能的发展阶段未来人工智能发展的五个级别1950年,“计算机之父”和“人工智能之父”艾伦·图灵(AlanM.Turing)发表了论文《计算机器与智能》,这篇论文被誉为人工智能科学的开山之作。在论文的开篇,图灵提出了一个引人深思的问题:“机器能思考吗?”。这个问题激发了人们无尽的想象,同时也奠定了人工智能的基本概念和雏形在这篇论文中,图灵提出了鉴别机器是否具有智能的方法,这就是人工智能领域著名的“图灵测试”。如图所示,其基本思想是测试者在与被测试者(一个人和一台机器)隔离的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果被测试者机器让平均每个测试者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能1.2.1图灵测试人工智能的诞生可以追溯到20世纪50年代。当时,计算机科学刚刚起步,人们开始尝试通过计算机程序来模拟人类的思维和行为。在这个背景下,一些杰出的科学家和工程师们开始研究如何使计算机具备更高级的功能1956年8月,在美国达特茅斯学院举办的人工智能夏季研讨会,是人工智能领域具有里程碑意义的一次重要会议。这次会议汇聚了众多杰出的科学家和工程师,他们共同探讨和研究人工智能的发展和应用前景这次会议的主题围绕着人工智能的定义、研究方法和应用场景展开。与会者们深入探讨了人工智能的基本概念、算法和技术,以及其在各个领域的应用潜力。他们共同认识到,人工智能的研究和发展将为人类带来巨大的变革和进步1.2.2人工智能的诞生在这次会议上,“人工智能”这个词汇被约翰.麦卡锡(JohnMcCarthy)首次提出。与会者们不仅对人工智能的研究和应用前景进行了深入探讨,还提出了许多重要的观点和思路,为人工智能的发展奠定了基础。这次会议的召开标志着人工智能作为一个独立学科的正式诞生,因此,达特茅斯会议被称为“人工智能的开端”,1956年也被称为“人工智能元年”。这次会议不仅为人工智能的研究和发展奠定了基础,还为人类带来了巨大的变革和进步1.2.2人工智能的诞生从1956年人工智能元年至今,人工智能的发展历程经历了漫长的岁月,大致可以划分为以下6个阶段1.2.3人工智能的发展阶段1.2.4未来人工智能发展的五个级别DeepSeekR103人工智能的影响Partthree1.3人工智能的影响人工智能对工作、生活等方面的影响人工智能开启科学研究“第五范式”人工智能开启“人机共生”新时代1.3.1人工智能对工作、生活等方面的影响生活方式的变革工作模式的转变教育领域的革新经济结构的优化与产业升级环境保护与可持续发展社会伦理与隐私保护1.3.1人工智能对工作、生活等方面的影响会用AI的人会逐渐淘汰不会用AI的人AI将极大提升人类获取信息的效率AI手机开始普及,AI语音助理成为标配AI眼镜会成为最时髦的可穿戴设备自动驾驶成为汽车的标配AI智能管家走入千家万户AI补课老师普及,补课不用再去上补习班更多的人开始利用AI创造收入图灵奖获得者、著名数据库专家JimGray博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论、计算和数据四种范式实验理论计算数据1.3.2人工智能开启科学研究“第五范式”科学研究第一种范式:实验伽利略伽利略在比萨斜塔做两个铁球同时落地实验1.3.2人工智能开启科学研究“第五范式”科学研究第二种范式:理论几何理论牛顿三大定律1.3.2人工智能开启科学研究“第五范式”科学研究第三种范式:计算1.3.2人工智能开启科学研究“第五范式”科学研究第四种范式:数据大数据时代,以数据为中心1.3.2人工智能开启科学研究“第五范式”1.3.2人工智能开启科学研究“第五范式”图2-52024年诺贝尔奖官方插画——物理奖及化学奖获得者在科学研究上,AI展现出了令人瞩目的应用成果,极大程度帮助了科研工作者提升科研工作的质效,预示着“AIforScience”(或称为“智能科学”)正在成为赋能科学研究的“第五范式”(即利用人工智能加速科学发现的新方法)。与前四种范式(经验、理论、计算和数据)不同,AIforScience不仅充分运用已有的经验、理论和数据,而且生成全新的科学假设和逼真的自然现象,推导出未知的结论,提高科学研究的速度和准确性,探索更广阔的可能性空间。1.3.3人工智能开启“人机共生”新时代根据财新智库联合上海交通大学发布的报告,在人工智能新一轮大发展的浪潮之下,人们需要建立起新型的“三线”人机关系观人机协作是基准线人机共生是趋势线“人在机器之上”是底线04世界各国的人工智能发展战略Partfour1.4世界各国的人工智能发展战略美国中国欧盟其他国家1.4.1美国加大投资力度推动技术创新促进产业发展加强人才培养注重伦理治理图2-62025年1月21日美国特朗普总统宣布“星际之门”计划1.4.2中国出台政策法规推动产业融合加强基础设施建设培养专业人才注重应用场景1.4.3欧盟制定伦理准则推动技术创新加强国际合作增加投资力度1.4.4其他国家俄罗斯强调自主研发人工智能技术的重要性,以维护国家主权和安全1韩国希望利用人工智能巩固和扩大其在信息通信等领域的产业优势,加大人工智能芯片研发投入2日本希望通过人工智能解决养老、教育等国家难题,重点布局机器人、类脑科学、自动驾驶等领域3英国注重数据科学、智能能源等领域的研发,推动人工智能技术在医疗、教育等领域的应用4其他国家的人工智能战略05人工智能关键技术Partfive1.5人工智能关键技术机器学习知识图谱人机交互计算机视觉自然语言处理生物特征识别机器学习强调三个关键词:算法、经验、性能。在数据的基础上,通过算法构建出模型并对模型进行评估。评估的性能如果达到要求,就用该模型来测试其他的数据;如果达不到要求,就要调整算法来重新建立模型,再次进行评估。如此循环往复,最终获得满意的模型来处理其他数据1.5.1机器学习传统机器学习模型阶段深度学习模型阶段超大规模深度学习模型阶段机器学习模型的三个发展阶段处理大规模数据能力强处理复杂问题能力强具有更高的准确率和性能大模型的优点1.5.1机器学习知识图谱(KnowledgeGraph)又称为科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系1.5.2知识图谱自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法自然语言处理的应用包罗万象,例如:机器翻译、手写体和印刷体字符识别、语音识别、信息检索、信息抽取与过滤、文本分类与聚类、舆情分析和观点挖掘等1.5.3自然语言处理人机交互是一门研究系统与用户之间的交互关系的学科。系统可以是各种各样的机器,也可以是计算机化的系统和软件人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作人机交互是与认知心理学、人机工程学、多媒体技术、虚拟现实技术等密切相关的综合学科1.5.4人机交互1.5.4人机交互人机交互具有广泛的应用场景,比如,我国某高校已经成功研发了大指令集、高速、无创“脑-机接口打字系统”,使用者只需头戴脑电帽,双眼盯着电脑屏幕,就能用意念打字在国内,杭州强脑科技也在脑机接口领域取得了显著进展,成为比肩Neuralink的全球知名脑机接口企业,并且已经成功研制出了智能头环、智能康复系统、智能仿生手、新型智能膝关节假肢等产品,这些产品整合了脑机接口技术与人工智能算法,能够实时监测用户脑电波信号,并将其转化为控制指令强脑科技——杭州“六小龙”之一计算机视觉是一门研究如何使机器“看”的科学,更进一步地说,是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量的机器视觉,并进一步做图形处理,成为更适合人眼观察或传送给仪器检测的图像1.5.5计算机视觉生物特征识别技术涉及的内容十分广泛,包括指纹、掌纹、人脸、虹膜、指静脉、声纹、步态等多种生物特征,其识别过程涉及到图像处理、计算机视觉、语音识别、机器学习等多项技术1.5.6生物特征识别06人工智能应用Partsix智能制造(IntelligentManufacturing,IM)是一种由智能机器和人类专家共同组成的人机一体化智能系统,它在制造过程中能进行智能活动,诸如分析、推理、判断、构思和决策等1.6.1智能制造智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段1.6.2智能家居智能获客身份识别大数据风控智能投资顾问智能客服金融云1.6.3智能金融智能交通是未来交通系统的发展方向,它是将先进的信息技术、数据通讯传输技术、电子传感技术、控制技术及计算机技术等有效地集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的,实时、准确、高效的综合交通运输管理系统1.6.4智能交通1.6.4智能交通2024年,百度公司无人驾驶出租车“萝卜快跑”开始上路运行问界M9采用华为全自动驾驶技术智能安防是兼顾了整体城市管理系统、环保监测系统、交通管理系统、应急指挥系统等应用的综合体系特别是车联网的兴起,在公共交通管理上、车辆事故处理上、车辆偷盗防范上可以更加快捷准确的跟踪定位处理还可以随时随地的通过车辆获取更加精准的灾难事故信息、道路流量信息、车辆位置信息、公共设施安全信息、气象信息等等信息来源1.6.5智能安防借助于物联网/云计算技术、人工智能的专家系统、嵌入式系统的智能化设备,可以构建起完善的物联网医疗体系,使全民平等地享受顶级的医疗服务,解决或减少由于医疗资源缺乏,导致看病难、医患关系紧张、事故频发等现象1.6.6智能医疗1.6.6智能医疗图

清华大学AI医院上线使用智能搜索、推理规划、计算机视觉以及智能机器人等技术,实现货物运输过程的自动化运作和高效率优化管理,提高物流效率京东智能分拣1.6.7智能物流人工智能在零售领域的应用已经十分广泛,无人便利店、智慧供应链、客流统计等等都是的热门方向1.6.8智能零售07人工智能产业Partseven智能芯片智能传感器分布式计算框架1.7.1智能基础设施建设在人工智能数据采集、存储、处理和分析方面的企业主要有两种企业类型数据采集、存储、处理和分析综合性厂商数据集提供商1.7.2智能信息及数据平台与模型提供人工智能的技术平台和算法模型解决方案提供人工智能的整体解决方案在线服务提供人工智能在线服务1.7.3智能技术服务智能技术服务智能机器人智能运载工具智能终端自然语言处理计算机视觉生物特征识别VR/AR人机交互1.7.4智能产品08人工智能底层的信息化基础设施Parteight1.8人工智能底层的信息化基础设施网络设施算力设施空间设施电力设施1.8.1网络设施我国移动通信网络发展水平全球领先。我国4G网络已经实现了全面覆盖城乡的目标,截至2024年年底,我国4G基站数量已达711万个,占据全世界的60%以上,4G网络规模全球第一。5G网络作为新一代移动通信技术,具有以下特点:高速率低时延大连接......对于推动数字经济和各行各业数字化转型具有重要意义。我国高度重视5G网络建设,近年来取得了显著进展。我国的华为公司,是全球领先的5G设备供应商,也为我国自己的5G网络建设提供了强有力的支撑。据工信部最新数据(截至2024年12月底):425万个我国已累计建成5G基站数量+60%我国已建成5G基站数量全球占比+60%我国用户普及率1.8.2算力设施截至2024年9月底,数据中心规模已达到880万标准机架,全国一体化大数据中心体系加快构建,8个国家算力枢纽节点启动建设,算力总规模近五年年均增速超过25%,表明我国算力设施正处于快速发展阶段截至2024年9月底,中国算力总规模已达到268EFLOPS(每秒浮点运算次数),智能算力规模更是达到70EFLOPS,增速超过70%在“东数西算”战略的推动下,西部地区利用丰富的能源和土地资源,建设了一批大型数据中心和算力中心1.8.3空间设施1.8.4电力设施建设现状截至2024年12月底,全国累计发电装机容量约33.5亿千瓦,同比增长14.6%,其中,太阳能发电装机容量约8.9亿千瓦,同比增长45.2%,风电装机容量约5.2亿千瓦,同比增长18.0%2023年美国发电量达4.4万亿度,印度仅有1.9万亿度,而中国竟然高达9.4万亿度,占全球发电量30%。1.8.4电力设施电力即国力根据咨询机构麦肯锡2024年的最新研究,AI对算力需求的拉动将直接带动数据中心建设规模提速,同时带来对电力需求的爆发式增长。保守估算,到2030年,全球数据中心服务器的能耗将高达390GW,而其中70%是被AI算力所消耗碳能源(如煤、石油、天然气等)已经难以支撑起智能化时代大厦的基座,而以“中国新能源七子”为代表的硅能源逐渐脱颖而出中国新能源七子是指一群在新能源领域具有显著影响力和技术实力的企业(包括通威股份、协鑫科技、隆基绿能、天合光能、新特能源、晶澳科技、晶科能源),‌它们在光伏、‌新能源汽车等多个新能源子领域内取得了重要进展,‌甚至在某些方面已经超越了传统的石油公司,撼动了20世纪“石油七姊妹”的地位(包括埃克森、美孚、雪佛龙、德士古、海湾、壳牌和BP)09人工智能思维Partnine1.9人工智能思维了解每个人都应了解人工智能的基础运行模式区分具备区分人的能力和机器的能力协作拥有和人工智能协作的能力,懂得如何运用人工智能1.10本章小结本章全方位阐述了人工智能这一前沿领域。从概念上看,人工智能是模拟、延伸和扩展人类智能的理论、方法、技术及应用系统,其发展历经多个阶段,从早期的理论探索到如今的蓬勃发展,深刻影响着社会生活的方方面面,改变着人们的生产和生活方式。01在发展战略上,世界各国高度重视,纷纷布局。美国凭借强大的科研实力和完善的产业生态走在前列;我国积极推动人工智能与实体经济深度融合,出台多项政策支持产业发展。在关键技术方面,机器学习、深度学习等技术不断突破,推动人工智能实现质的飞跃。人工智能产业正蓬勃兴起,在医疗、交通、教育等领域广泛应用,创造巨大价值。尽管仍面临技术瓶颈、伦理挑战等问题,但人工智能的发展前景依旧广阔,未来有望持续为人类社会带来更多变革与惊喜。02谢谢观看!附录B:大数据学习路线图大数据学习路线图访问地址:/post/10164/附录C:林子雨大数据系列教材了解全部教材信息:/post/bigdatabook/谢谢!林子雨副教授厦门大学人工智能通识——基础、技术、前沿、伦理与实践第2章人工智能编程语言基础01Python简介目录02搭建Python开发环境03Python规范04Python基础语法知识01Python简介Partthree2.1

Python简介发展到今天,Python已经成为最受欢迎的程序设计语言之一在Python开发领域流传着这样一句话:“人生苦短,我用Python”Python(发音[ˈpaɪθən])是1989年由荷兰人吉多·范罗苏姆(GuidovanRossum)发明的一种面向对象的解释型高级编程语言0103Python的第一个公开发行版于

1991

年发行,在

2004

年以后,Python

的使用率呈线性增长,并获得“2024年TIOBE最佳年度语言”称号,这是Python第6次被评为“TIOBE最佳年度语言”0502Python的设计哲学是“优雅”“明确”“简单”0402搭建Python开发环境Partsecond2.2搭建Python开发环境安装Python设置当前工作目录使用交互式执行环境运行代码文件使用IDLE编写代码安装和使用Python扩展模块2.2.1

安装Python请到Python官方网站下载与自己计算机操作系统匹配的安装包python-3.12.2-amd64.exe运行安装包开始安装,在安装过程中,要注意选中“Addpython.exetoPATH”复选框2.2.1

安装Python安装完成以后,需要检测是否安装成功。可以打开Windows操作系统的cmd命令界面,然后执行如下命令打开Python解释器:>cdC:\python312>python如果出现图2-3所示信息,则说明Python已经安装成功:2.2.2设置当前工作目录Python的当前工作目录是指Python解释器当前正在使用的目录。当我们在cmd命令界面中使用“python”命令打开Python解释器时,在哪个目录下执行“python”命令,该目录就会成为Python的当前工作目录,比如,在cmd命令界面中执行如下命令:>cdC:\>python这时,进入Python解释器以后,当前工作目录就是“C:\”。再比如,在cmd命令界面中执行如下命令:>cdC:\python312>python这时,进入Python解释器以后,当前工作目录就是“C:\python312”。2.2.2设置当前工作目录进入Python解释器以后,可以使用Python的os模块来查看当前工作目录:>>>importos>>>print(os.getcwd())C:\python312虽然Python的当前工作目录在大多数情况下都是有用的,但在编写可移植和可维护的代码时,最好使用绝对路径或相对于某个固定点的相对路径来引用文件,而不是依赖于当前工作目录。2.2.3使用交互式执行环境>>>print("HelloWorld")HelloWorld>>>1+23>>>2*(3+4)14上图呈现的界面就是一个交互式执行环境(或称为“解释器”),可以在Python命令提示符“>>>”后面输入各种Python代码,回车后就会立即看到执行结果,比如:2.2.4运行代码文件假设在Windows操作系统的Python安装目录下已经存在一个代码文件hello.py,该文件里面只有如下一行代码:print("HelloWorld")现在我们要运行这个代码文件。可以打开Windows操作系统的cmd命令界面,并在命令提示符后面输入如下语句:>pythonC:\python312\hello.py执行结果如图所示。2.2.5使用IDLE编写代码Python安装成功以后,会自带一个集成式开发环境IDLE,它是一个PythonShell,程序开发人员可以利用PythonShell与Python交互在Windows操作系统的“开始”菜单中找到“IDLE(Python3.12

64-bit)”,单击进入IDLE主窗口,如图所示,窗口左侧会显示Python命令提示符“>>>”,在提示符后面输入Python代码,回车后就会立即执行并返回结果2.2.5使用IDLE编写代码如果要创建一个代码文件,可以在IDLE主窗口的顶部菜单栏中选择“File→NewFile”然后就会弹出图所示的文件窗口,可以在里面输入Python代码,最后,在顶部菜单栏中选择“File→SaveAs…”,把文件保存为hello.py2.2.5使用IDLE编写代码如果要运行代码文件hello.py,可以在IDLE的文件窗口的顶部菜单栏中选择“Run→RunModule”(或者直接使用快捷键“F5”),这时就会开始运行程序。程序运行结束后,会在IDLEShell窗口显示执行结果,如图所示需要注意的是,除了Python自带的IDLE以外,我们还可以选择第三方开发工具进行Python编程,比如PyCharm、Eclipse、JupyterNotebook、IntelliJIDEA等。2.2.6安装和使用Python扩展模块Python的强大之处在于它拥有非常丰富的第三方模块(或第三方库),可以帮我们方便、快捷地实现网络爬虫、数据清洗、数据分析、数据可视化和科学计算等功能。为了便于安装和管理第三方库和软件,Python提供了一个扩展模块(或扩展库)管理工具pip,Python3.12.2在安装的时候会默认安装pip。表2-1

常用pip命令的说明pip命令说明pipinstallSomePackage安装SomePackage模块piplist列出当前已经安装的所有模块pipinstall--upgradeSomePackage升级SomePackage模块pipuninstallSomePackage卸载SomePackage模块2.2.6安装和使用Python扩展模块例如,Matplotlib是著名的Python绘图库,它提供了一整套和Matlab相似的应用程序编程接口(ApplicationProgrammingInterface,API),十分适合交互式地进行制图。可以使用如下命令安装Matplotlib:>pipinstallmatplotlib安装成功以后,使用如下命令就可以看到安装的Matplotlib:>piplist可以在程序中使用import语句导入模块,语法格式如下:importmodulename[asalias]比如,导入Matplotlib的绘图模块可以使用如下语句:>>>import

matplotlib.pyplot

as

plt03Python规范Partthree2.3Python规范注释规则代码缩进2.3.1注释规则单行注释Python中使用“#”表示单行注释。单行注释可以作为单独的一行放在被注释代码行之上,或者也可以放在语句或表达式之后。【例2-1】单行注释作为单独的一行放在被注释代码行之上。pi=3.14r=2#使用面积公式求出圆的面积area=pi*r*rprint(area)当单行注释作为单独的一行放在被注释代码行之上时,为了保证代码的可读性,建议在“#”后面添加一个空格,再添加注释内容。2.3.1注释规则单行注释【例2-2】单行注释放在语句或表达式之后。length=3#矩形的长width=5#矩形的宽area=length*width#求出矩形的面积print(area)当单行注释放在语句或表达式之后时,同样为了保证代码的可读性,建议注释和语句(或注释和表达式)之间至少要有两个空格。2.3.1注释规则多行注释当注释内容过多,导致一行无法显示时,就可以使用多行注释。Python中使用三个单引号或三个双引号表示多行注释。【例2-3】使用三个单引号的多行注释。'''文件名:area.py用途:用于求解矩形的面积创建日期:2025年8月1日创建人:XMU'''2.3.2代码缩进Python和其他编程语言(比如C和Java)很不一样的地方在于,Python采用代码缩进和冒号来区分代码之间的层次,而Java和C语言则采用大括号来分隔代码块01如果我们有其他语言(如C或者Java)的编程经验,那么Python的强制缩进一开始会让我们很不习惯。但是,如果习惯了Python的缩进语法,就会觉得它非常优雅02缩进可以使用空格或者Tab键来实现(建议使用空格作为缩进)。当使用空格作为缩进时,建议使用4个空格作为一个缩进量032.3.2代码缩进【例2-4】Python的缩进语法。length=3#矩形的长width=5#矩形的宽area=length*width#矩形的面积ifarea>10:print("大矩形")常用的集成式开发环境(比如IDLE、PyCharm、Eclipse等)都具有自动缩进的机制,比如输入“:”号之后,按“回车”会自动进行缩进。04Python基础语法知识Partfour2.4Python基础语法知识基本数据类型组合数据类型控制结构函数2.4.1基本数据类型数字在Python中,数字类型包括整数(int)、浮点数(float)、布尔类型(bool)和复数(complex),而且,数字类型变量可以表示任意大的数值。整数整数类型用来存储整数数值。在Python中,整数包括正整数、负整数和0。按照进制的不同,整数类型还可以划分为十进制整数、八进制整数、十六进制整数和二进制整数布尔类型Python中的布尔类型主要用来表示“真”或“假”的值,每个对象天生具有布尔类型的True或False值。空对象、值为零的任何数字或者对象None的布尔值都是False。在Python3.x中,布尔值是作为整数的子类实现的,布尔值可以转换为数值,True的值为1,False的值为0,可以进行数值运算浮点数浮点数也称为“小数”,由整数部分和小数部分构成,比如3.14、0.2、-1.648、5.8726849267842等。浮点数也可以用科学计数法表示,比如1.3e4、-0.35e3、2.36e-3等复数复数由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。例如,一个复数的实部为2.38,虚部为18.2j,则这个复数为2.38+18.2j2.4.1基本数据类型字符串字符串是Python中最常用的数据类型,它是连续的字符序列,一般使用单引号('')、双引号("

")或三引号('''

'''或"""""")进行界定。其中,单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上,从而可以支持格式较为复杂的字符串。例如,'xyz'、'123'、'厦门'、"hadoop"、'''spark'''、"""flink"""都是合法字符串,空字符串可以表示为''、"

"或'''

'''。定义要点举例2.4.2组合数据类型列表列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。在形式上,只要把逗号分隔的不同的数据项使用方括号括起来,就可以构成一个列表,例如:['hadoop','spark',2021,2010][1,2,3,4,5]["a","b","c","d"]['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']2.4.2组合数据类型列表同其他类型的Python变量一样,在创建列表时,也可以直接使用赋值运算符“=”将一个列表赋值给变量。例如,以下都是合法的列表定义:student=['小明','男',2010,10]num=[1,2,3,4,5]motto=["自强不息","止于至善"]list=['hadoop',

'年度畅销书',[2020,12000]]可以看出,列表里面的元素仍然可以是列表。需要注意的是,尽管一个列表中可以放入不同类型的数据,但是,为了提高程序的可读性,一般建议在一个列表中只出现一种数据类型。2.4.2组合数据类型元组Python中的列表适合存储在程序运行时变化的数据集。列表是可以修改的,这对要存储一些要变化的数据而言至关重要。但是,也不是任何数据都要在程序运行期间进行修改,有时候需要创建一组不可修改的元素,此时可以使用元组。元组的创建和列表的创建很相似,不同之处在于,创建列表时使用的是方括号,而创建元组时则需要使用圆括号。元组的创建方法很简单,只需要在圆括号中添加元素,并使用逗号隔开即可,具体实例如下:>>>tuple1=('hadoop','spark',2008,2009)>>>tuple2=(1,2,3,4,5)>>>tuple3=('hadoop',2008,("大数据","分布式计算"),["spark","flink","storm"])2.4.2组合数据类型字典字典也是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据。字典相当于保存了两组数据,其中一组数据是关键数据,被称为“键”(key);另一组数据可通过键来访问,被称为“值”(value)。字典具有如下特性:字典是无序的对象集合,列表是有序的对象集合,两者之间的区别在于,字典当中的元素是通过键来存取的,而不是通过偏移量存取字典的元素是“键值对”,由于字典中的键是非常关键的数据,而且程序需要通过键来访问值,因此字典中的键不允许重复,必须是唯一值,而且键必须不可变字典不支持索引和切片,但可以通过“键”查询“值”030102字典是可变的,并且可以任意嵌套042.4.2组合数据类型字典字典用大括号{}标识。在使用大括号语法创建字典时,大括号中应包含多个“键值对”,键与值之间用英文冒号隔开,多个键值对之间用英文逗号隔开。具体实例如下:>>>grade={"语文":67,"数学":91,"英语":78}

#键是字符串>>>grade{'语文':67,'数学':91,'英语':78}2.4.2组合数据类型集合集合(set)是一个无序的不重复元素序列。集合中的元素必须是不可变类型。在形式上,集合的所有元素都放在一对大括号“{}”中,两个相邻的元素之间使用逗号分隔。可以直接使用大括号{}创建集合,实例如下:>>>dayset={'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'}>>>dayset{'Tuesday','Monday','Wednesday','Saturday','Thursday','Sunday','Friday'}在创建集合时,如果存在重复元素,Python只会自动保留一个,实例如下:>>>numset={2,5,7,8,5,9}>>>numset{2,5,7,8,9}2.4.3控制结构结构化程序设计的概念最早由艾兹格·迪科斯彻(E.W.Dijkstra)在1965年提出。该概念的提出是软件发展的一个重要里程碑,它的主要观点是采用“自顶向下、逐步求精”及模块化的程序设计方法。在结构化程序设计中,主要使用3种基本控制结构来构造程序,即顺序结构、选择结构和循环结构。使用结构化程序设计方法编写出来的程序在结构上具有以下特点:以控制结构为单位,每个模块只有一个入口和一个出口01能够以控制结构为单位,从上到下顺序地阅读程序文本02由于程序的静态描述与执行时的控制流程容易对应,所以阅读者能够方便、正确地理解程序的动作032.4.3控制结构Python程序的控制结构Python程序具有三种典型的控制结构:2.4.3控制结构选择语句选择语句也称为“条件语句”,就是对语句中不同条件的值进行判断,从而根据不同的条件执行不同的语句。选择语句可以分为以下3种形式:简单的if语句if…else语句if…elif…else多分支语句0201032.4.3控制结构选择语句【例2-5】使用if语句求出两个数的较小值。01

#two_number.py02

a,b,c=4,5,003

ifa>b:04

c=b05

ifa<b:06

c=a07

print("两个数的较小值是:",c)【例2-6】判断一个数是奇数还是偶数。01

#odd_even.py02

a=503

ifa%2==0:04

print("这是一个偶数。")05

else:06

print("这是一个奇数。")2.4.3控制结构选择语句【例2-7】判断每天上课的内容。01

#lesson.py02

day=int(input("请输入第几天课程:"))03

ifday==1:04

print("第1天上数学课")05

elifday==2:06

print("第2天上语文课")07

else:08

print("其他时间上计算机课")2.4.3控制结构循环语句循环语句就是重复执行某段程序代码,直到满足特定条件为止。在Python语言中,循环语句有以下两种形式:for循环语句02while循环语句012.4.3控制结构循环语句【例2-8】用while循环实现计算1~99的整数和。01

#int_sum.py02

n=103

sum=004

while(n<=99):05

sum+=n06

n+=107

print("1~99的整数和是:",sum)【例2-9】用for循环实现计算1~99的整数和。01

#int_sum_for.py02

sum=003

forninrange(1,100):#range(1,100)用于生成1到100(不包括100)的整数04

sum+=n05

print("1到99的整数和是:",sum)2.4.4函数函数是可以重复使用的用于实现某种功能的代码块。与其他语言类似,在Python中,函数的优点也是提高程序的模块性和代码复用性。【例2-10】定义一个带有参数的函数。01#i_like.py02#定义带有参数的函数03deflike(language):04'''打印喜欢的编程语言!'''05print("我喜欢{}语言!".format(language))06return07#调用函数08like("C")09like("C#")10like("Python")上面代码的执行结果如下:我喜欢C语言!我喜欢C#语言!我喜欢Python语言!本章小结人工智能程序设计需要借助于计算机语言,比如高级编程语言C、C++、Java、Python等01近年来,Python的受欢迎程度越来越高,Python的简单语法以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的首选编程语言02本章详细介绍了Python语言的基础知识,通过这些内容,读者可以顺利开展后续章节的人工智能实验林子雨副教授谢谢观看!厦门大学谢谢!林子雨副教授厦门大学人工智能通识——基础、技术、前沿、伦理与实践第3章机器学习目录01机器学习基本概念02sklearn简介03监督学习04无监督学习05强化学习06人工神经网络和深度学习01机器学习基本概念Partone3.1机器学习基本概念什么是机器学习机器学习的四大类型机器学习的基本过程3.1.1什么是机器学习机器学习是人工智能领域中的一项关键技术,它指的是计算机系统通过学习和经验积累来不断提升其性能的过程简单来说,机器学习就是让计算机具备自我学习和改进的能力,从而模拟人类的思考和行为。机器学习涉及多个学科领域,包括统计学、概率论、优化算法等。机器学习的核心在于构建一个能够从数据中学习的模型。这个模型通常是通过训练数据来构建的,训练数据包含已知的输入和输出,机器学习算法会利用这些数据进行模型的参数调整和优化,使得模型能够更好地拟合数据的内在规律。机器学习算法从大量数据中自动提取特征、发现规律根据规律对新数据进行预测或决策3.1.2机器学习的四大类型(有标签)(有评级标签)(无标签)(有部分标签)有监督学习无监督学习半监督学习增强学习3.1.3机器学习的基本过程数据探索性分析模型训练数据预处理建立模型特征工程交叉验证模型评估02机器学习工具包sklearnParttwo3.2机器学习工具包sklearnsklearn是一个Python的第三方模块,可以使用如下命令安装sklearn:基于sklearn的机器学习的一般流程为:数据获取—>数据预处理—>模型训练—>模型评估—>模型优化>pipinstallscikit-learn-i/simple/3.2机器学习工具包sklearn数据获取可以导入内部数据集、计算机生成的数据集、网络上的数据集和文件中的数据集等。这里导入sklearn自带的鸢尾花数据集,具体代码如下:importnumpyasnpimportpandasaspdfromsklearnimportdatasetsiris=datasets.load_iris()#导入鸢尾花数据集iris.data#数据集iris['target']#标签#利用DataFrame做可视化分析df=pd.DataFrame(iris.data,columns=iris.feature_names)#用鸢尾花的特征做列名df['target']=iris.target#把标签集插入最后一列print(df.head())#显示数据前五行3.2机器学习工具包sklearn数据预处理数据预处理包括:fromsklearnimportpreprocessingscaler=preprocessing.MinMaxScaler()#MinMaxScaler把样本缩放到0~1之间scaler.fit(iris.data)#fit()函数可以找到数据的整体指标,如平均值、方差等data=scaler.transform(iris.data)#根据数据的整体指标对数据进行归一化print(data)数据的标准化数据的归一化数据的二值化非线性转换数据特征编码处理缺失值具体代码如下:3.2机器学习工具包sklearn模型的训练需要根据问题特点,选择适当的模型。当前的问题是根据特征预测鸢尾花的类型,属于带标签的分类问题,并且样本个数为150个,小于100000,所以,可以选择Linear_SVC模型进行分类。具体代码如下:fromsklearn.model_selectionimporttrain_test_split#把样本划分为训练集和测试集X_train,X_test,y_train,y_test=train_test_split(data,iris.target,test_size=1/3)print(len(X_train))print(len(X_test))#查看训练集和测试集的样本数量fromsklearnimportsvmclf=svm.SVC(kernel='linear',C=1.0,probability=True)#linear表示线性核函数,probability表示是否采用概率估计clf.fit(X_train,y_train)#用训练集训练模型clf.predict(X_test)#预测测试集clf.get_params()#查看参数clf.predict_proba(X_test)#查看样本属于每个类型的概率print(clf.score(X_test,y_test))#查看模型预测的准确率,对不同类型的模型有不同的评分算法,由score方法内部定义3.2机器学习工具包sklearn模型的评估模型的评估和模型的优化相关功能在sklearn.model_selection中。除了使用estimator的score()函数简单粗略地评估模型的质量之外,sklearn.metrics模块针对不同的问题类型提供了各种评估指标,并且可以创建用户自定义的评估指标。可以采用交叉验证方法评估模型的泛化能力,有效地避免过度拟合。交叉验证的基本思想是将原始数据进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合,还可以从有限的数据中获取尽可能多的有效信息。使用sklearn.metrics模块进行评估的代码如下:fromsklearn.metricsimportclassification_reportprint(classification_report(iris.target,clf.predict(data),target_names=iris.target_names))#对全体数据集进行评估3.2机器学习工具包sklearn模型的评估采用k折交叉验证方法评估模型的泛化能力的代码如下:fromsklearn.model_selectionimportcross_val_score#cross_val_score可以用来做交叉验证scores=cross_val_score(clf,data,iris.target,cv=5)#采用五折交叉验证print(scores)#输出每次评分3.2机器学习工具包sklearn模型的优化优化模型的方法包括:网格搜索法随机搜索法模型特定交叉验证信息准则优化等网格搜索法在指定的超参数空间中对每一种可能的情况进行交叉验证评分并选出最好的超参数组合。具体代码如下:fromsklearnimportsvmfromsklearn.model_selectionimportGridSearchCVsvc=svm.SVC()#定义模型param_grid=[{'C':[0.1,1,10,100,1000],'kernel':['linear']},{'C':[0.1,1,10,100,1000],'gamma':[0.001,0.01],'kernel':['rbf']}]#超参数空间scoring='accuracy'#评分函数clf=GridSearchCV(svc,param_grid,scoring=scoring,cv=10)#得到一个优化后的分类器clf.fit(X_train,y_train)#用数据训练分类器print(clf.best_score_)#查看最优得分03监督学习Partthree3.3监督学习回归算法分类算法支持向量机KNN3.3.1回归算法回归算法线性回归岭回归套索回归弹性网络回归3.3.1回归算法——1.线性回归线性回归(LinearRegression)是最为人熟知的一种建模技术,是人们在学习预测模型时首选的技术之一。线性回归本来是统计学里的概念,现在经常被用在机器学习中。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。定义对于线性回归而言,如果2个或者多个变量之间存在“线性关系”,那么我们就可以通过历史数据,摸清变量之间的关系,建立一个有效的模型,来预测未来的变量结果。“线性关系”建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快,并且可以根据系数给出每个变量的理解和解释。它的缺点是不能很好地拟合非线性数据,所以需要先判断变量之间是否是线性关系。优点3.3.1回归算法——1.线性回归模型原理3.3.1回归算法——1.线性回归模型原理3.3.1回归算法——1.线性回归模型原理即找到一条直线使得它尽可能拟合数据的分布(如图所示),从而有一个新的样本点时,可以利用学习到的这条直线进行预测。线性回归用直线拟合散点3.3.1回归算法——1.线性回归模型原理既然是用直线拟合散点,就会存在多条直线都可以拟合数据的分布,毕竟数据不是真的落在一条直线上,而是分布在直线周围。因此,就要找到一个评判标准,用于评价哪条直线的拟合程度是最高的,这时就要用到“损失函数”。损失函数是衡量回归模型误差的函数,也就是判断哪条“直线”拟合效果更好的评价标准。这个函数的值越小,说明直线越能拟合数据分布。3.3.1回归算法——1.线性回归模型原理3.3.1回归算法——1.线性回归sklearn实现sklearn提供了sklearn.linear_model.LinearRegression类来实现线性回归,其定义如下:LinearRegression(*,fit_intercept=True,normalize=False,copy_X=True,n_jobs=None,positive=False)LinearRegression类的常用参数、方法分别如表所示。参数名称含义fit_intercept是否计算该模型的截距。默认为True,如果使用中心化的数据,可以考虑设置为False,不考虑截距normalize默认为False。当fit_intercept设置为False的时候,这个参数会被自动忽略。如果为True,模型会标准化输入参数copy_X可选参数,默认值为True;如果为True,x将被复制;否则被重写n_jobs可选参数,默认值为1;如果设为1,将启动所有CPUpositive默认为False。如果positive=True,则强制将系数设为正数LinearRegression类的常用参数3.3.1回归算法——1.线性回归sklearn实现方法功能fit(X,y,[sample_weight])拟合线性模型,即训练模型predict(X)利用训练好的模型进行预测,返回预测的函数值score(X,y,[sample_weight])返回模型的得分,分数不超过1,越接近1说明模型预测效果越好LinearRegression类的常用方法3.3.1回归算法——1.线性回归实验1:使用线性回归模型预测房价这里利用sklearn提供的LinearRegression类构建一个简单的线性回归模型,用于预测房价。具体代码如下:fromsklearn.linear_modelimportLinearRegressionimportnumpyasnp#构造样本数据x=np.array([2014,2015,2016,2017,2018,2019,2020,2021,2022,2023])y=np.array([248000,306000,267000,312000,288000,261000,342000,331000,312000, 274000])#将样本数据reshape为二维数组x=x.reshape((-1,1))#创建线性回归模型model=LinearRegression()#将模型拟合到样本数据上model.fit(x,y)#使用模型进行预测x_test=np.array([2024]).reshape((-1,1))y_predict=model.predict(x_test)#输出预测结果print("预测房价为:",y_predict)3.3.1回归算法——1.线性回归实验1:使用线性回归模型预测房价下面我们采用绘图的方式更加直观地呈现预测结果,具体代码如下:importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.linear_modelimportLinearRegression#生成样本数据x=np.array([2014,2015,2016,2017,2018,2019,2020,2021,2022,2023])y=np.array([248000,306000,267000,312000,288000,261000,342000,331000,312000,274000])model=LinearRegression()#创建线性回归模型model.fit(x.reshape(-1,1),y)#训练模型y_predict=model.predict(x.reshape(-1,1))#预测结果plt.scatter(x,y,color='blue')#绘制散点图plt.plot(x,y_predict,color='red')#绘制回归线图plt.xlabel('Year')#设置横轴的名称plt.ylabel('Price')#设置纵轴的名称plt.show()#显示图形,如图所示3.3.1回归算法——1.线性回归实验2:对糖尿病数据集进行线性回归分析下面再给出一个稍微复杂一点的应用实例,这里将使用sklearn库中自带的糖尿病数据集diabetes进行线性回归分析。这个糖尿病数据集主要包括442行数据,共有10个属性值,分别是Age(年龄)、性别(Sex)、Bodymassindex(体质指数)、AverageBloodPressure(平均血压)、S1(一年后疾病级数指标)、S2(一年后疾病级数指标)、S3(一年后疾病级数指标)、S4(一年后疾病级数指标)、S5(一年后疾病级数指标)、S6(一年后疾病级数指标)。数据集的目标变量是一年后患疾病的定量指标,因此,适合于线性回归分析。3.3.1回归算法——1.线性回归实验2:对糖尿病数据集进行线性回归分析importnumpyasnpimportmatplotlib.pyplotaspltx=np.random.randn(10)y=x*2+1plt.plot(x,y)#绘图plt.xlabel('X轴')#设置x轴的名称plt.ylabel('Y轴')#设置y轴的名称plt.xlim((-5,5))#设置x轴范围plt.ylim((-5,10))#设置y轴范围plt.rcParams['axes.unicode_minus']=Falseplt.show()fromsklearnimportdatasetsimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt3.3.1回归算法——1.线性回归实验2:对糖尿病数据集进行线性回归分析#导入diabetes数据集diabetes=datasets.load_diabetes()#将数据集转换为DataFrame格式diabetes_df=pd.DataFrame(data=diabetes.data,columns=diabetes.feature_names)diabetes_df['target']=diabetes.target#查看数据集的前几行print(diabetes_df.head())#准备自变量和因变量X=diabetes.datay=diabetes.targetprint(X[0],'\n',y[0])#把数据集分割成训练集和测试集fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)#test_size=0.2指定了测试集占总数据集的20%,剩余的80%将用作训练集#random_state=42确保了每次代码运行时数据集划分的方式都相同,这有助于实验的可重复性print(X_train.shape,X_test.shape,y_train.shape,y_test.shape)3.3.1回归算法——1.线性回归实验2:对糖尿病数据集进行线性回归分析#导入线性回归模型fromsklearn.linear_modelimportLinearRegression#创建线性回归模型对象model=LinearRegression()#在训练集上拟合模型model.fit(X_train,y_train)#在测试集上进行预测y_predict=model.predict(X_test)print(y_predict.shape)print(y_predict[:10])#计算模型的均方误差(MeanSquaredError)fromsklearn.metricsimportmean_squared_errormse=mean_squared_error(y_test,y_predict)print('均方误差:',mse)plt.rcParams['font.sans-serif']=['FangSong']#设置中文字体#绘制预测值与真实值的散点图plt.scatter(y_test,y_predict,color='blue')plt.plot([y_test.min(),y_test.max()],[y_test.min(),y_test.max()],'--k')plt.xlabel('真实值')plt.ylabel('预测值')plt.title('线性回归')plt.show()#显示图形,如下页图所示3.3.1回归算法——1.线性回归实验2:对糖尿病数据集进行线性回归分析3.3.1回归算法——2.岭回归模型原理3.3.1回归算法——2.岭回归sklearn实现sklearn提供了sklearn.linear_model.Ridge类来实现岭回归,其定义如下:Ridge(alpha=1.0,fit_intercept=True,normalize=False,copy_X=True,max_iter=None,tol=0.001,solver='auto', random_state=None)3.3.1回归算法——2.岭回归sklear

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论