版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第0章绪论BigData目录§0.1大数据简史§0.2大数据概念§0.3机器学习§0.1大数据简史本节通过标志性事件极简地介绍大数据发展的历史。美国:代表了大数据发展的世界水平,主要有以下6个标志性事件:11998年,“大数据”正式作为一个专用名词出现在《自然》杂志上22001年,麦塔集团和麦肯锡公司给出了大数据的4V特征:体量大(Volume),速度快(Velocity),类型多(Variety),价值高(Value)32006年~2009年,谷歌构建了完整的大数据技术生态:大数据文件系统→大数据计算引擎→大数据存储系统42012年,世界经济论坛发布《大数据大影响》的报告,向全球正式宣布大数据时代的到来52016年,DeepMind发布AlphaGo,展示了数据最大的价值——“智慧”:大数据让机器从此由“算”到“学”变得有了智慧,宣布“数据成为生产资料、算法成为生产力”的时代正式来临62022年,开放智能发布AI大模型ChatGPT3.5版,因其迄今最接近人类对话与思考方式的特点而风靡全球,标志着大数据驱动的机器智慧达到一个全新的高度这些标志性事件表明:毋庸讳言,美国是当前世界上大数据科学与技术贡献最大的国家。
中国:大数据发展起步较晚,但起点高、场景广、发展快。
我国大数据发展历程及相关重大事件简介如下:12008年,阿里巴巴确定“云计算”和“大数据”战略,决定自主研发大规模分布式计算操作系统“飞天”,开启中国的大数据征程22013年,我国的“大数据元年”,国家自然科学基金、973计划、核高基、863等重大研究计划都把大数据列为重大研究课题32014年,“大数据”首次写入我国《政府工作报告》,大数据上升为国家战略42015年4月,全国首个大数据交易所——贵阳大数据交易所,正式挂牌运营并完成首批大数据交易52015年8月,国务院印发《促进大数据发展行动纲要》,是我国促进大数据发展的第一份权威性、系统性文件,从国家大数据发展战略全局的高度,提出了我国大数据发展的顶层设计,是指导我国未来大数据发展的纲领性文件62016年,阿里云飞天系统入选2016世界互联网最有代表性的15项科技创新成果72017年,习近平在中共中央政治局第二次集体学习时强调:审时度势、精心谋划、超前布局、力争主动实施国家大数据战略,加快建设数字中国82022年,国家规划建设8个国家算力枢纽节点和10个国家数据中心集群,标志着全国一体化大数据中心体系完成总体布局,“东数西算”工程正式全面启动92024年,我国AI大模型DeepSeek横空出世,其颠覆性的训练方法创新与开源生态构建,使其技术栈在硬件适配层面对美国依赖度显著降低从十余年前美国一骑绝尘,演变为当前中美并驾齐驱、各具优势的竞争态势。总结:大数据科技发展格局§0.2大数据概念大数据概念的形成,有三个标志性事件:11998年,美国《自然》杂志上发表了一篇名为《大数据科学的可视化》的文章,大数据正式作为一个专用名词出现在公共刊物之中。22001年,麦塔集团和麦肯锡公司给出了大数据的4V特征:体量大(Volume),速度快(Velocity),类型多(Variety),价值高(Value)32011年,麦肯锡研究院第一次给大数据做出相对清晰的定义:“大数据是指其大小超出了常规数据库工具获取、储存、管理和分析能力的数据集。”含义:数据类型的多样
性和来源的广泛性,如1.数据类型的多样性:
(1)数值,文本,图片,音频,视频(2)xlsx,csv,json,xml,sql,...2.数据来源的广泛性:(1)电商交易数据(2)交通流数据...含义:大量、多样化的数据一定内蕴某种规律,这个规律能为企业或组织带来显著的经济效益或其他形式的价值。如:超市通过分析顾客购物数据,发现“买尿不湿的男性常顺手买啤酒”,于是调整货架布局,让两者相邻,啤酒销量提升30%。这就是从日常交易数据中
挖出了消费关联价值。含义:海量的数据规模,如1.社交平台:微信每天产生的数据量能装满数万个普通硬盘2.医疗领域:一家三甲医院每年医疗产生的病历、检验报告、诊疗记录等,数据量惊人含义:数据从触发到响应像“闪电流程”,强调实时性、高频率,慢一步就会失去价值,具体说来:1.数据产生的速度快2.数据流转的速度快3.数据分析的速度快4.数据处理的速度快4V特征:“大数据”区别于“数据”的显著特征体量大速度快种类多价值高定义所谓大数据,是指难以在可接受的时间内用传统数据库系统或常规应用软件处理的、巨量而复杂的数据集。本教材综合当前主流观点,给出大数据的定义如下:§0.3机器学习一、大数据从采集到应用全流程数据采集:多源异构数据的获取数据来源采集方式技术工具数据存储:海量数据的高效管理结构化数据非结构化/半结构化数据数据仓库与数据湖数据预处理:清洗、集成、转换与整合对原始数据进行清洗、集成、转换、整合,形成标准化数据集数据分析与挖掘:从数据中提取价值描述性分析预测性分析深度挖掘数据应用:价值落地与场景赋能企业决策支持精准营销智能风控工业与物联网智慧城市本教材主要介绍上述流程中的数据分析与挖掘。在上述流程中,数据分析与挖掘所用到的技术就是机器学习模型,这是本教材的核心内容。机器学习相关的第一个概念是1.变量二、机器学习注:定量变量可直接进行数学运算,通常可直接用于机器学习模型的输入;
定性变量则需要赋值(通过编码转换为实数)以后才能输入模型。2.分类:主要介绍两个大类——有监督学习和无监督学习(1)有监督学习:研究一个变量Y关于变量X1,…,Xp之间的相关关系,
其中Y称为监督变量(目标变量),X1,…,Xp
称为特征。(2)无监督学习:研究变量X1,…,Xp
的内在结构,比如分组结构、特
征关联、概率分布等,变量X1,…,Xp
也称为特征。维度有监督学习无监督学习数据类型有标签数据(X
与Y
配对)无标签数据(仅X)学习目标建立X到Y
的预测模型(如分类、回归)发现X
的内在结构(如聚类、降维)算法示例决策树、逻辑回归、支持向量机(SVM)K-means聚类、主成分分析(PCA)、自编码器(AE)、密度峰值聚类(DBSCAN)应用场景垃圾邮件分类、天气预报、图像识别客户分群、基因表达模式分析、图像压缩三、数据分析流程应用级的数据分析项目流程十分复杂,此处给出简易流程。1.有监督学习流程无监督学习流程,与有监督学习流程的区别主要在于数据模块,此处给出聚类分析的流程。2.无监督学习流程强调:上面列出的数据分析流程,是我们从数据分析小白到行家的门槛,务必理解并掌握,然后(1)面对任何数据分析任务我们都可照此流程执行;(2)按照流程,组织好语言可向deepseek寻求实现程序上的帮助,
这就大大降低了学习的难度。前面已提及,大数据最大的价值就是让机器拥有了“智慧”,即机器能从数据中学习到知识(数据内蕴的规律);至于是如何学习的,涉及高等数学、线性代数、概率论与数理统计、运筹学等数学课程,本教材从略。THANKS!第1章数据预处理BigData目录§1.1数据预处理的必要性及流程§1.2数据集成§1.3数据清洗§1.4数据变换§1.1数据预处理的必要性及流程原始数据为什么要预处理后才能用于分析?一、必要性二、数据预处理流程数据预处理框架如图所示:其中数据清洗、数据集成、数据变换、数据规约等含义后续逐一介绍。§1.2数据集成一、数据集成的定义简单说来,数据集成就是将多个数据集整合为一个数据集。我们讲最简单的数据集成——数据合并,即将两个或多个表的数据合并为一张表。二、数据合并的实现1.基于python的数据合并的库是pandas:2.相应语法:语法重要参数释义C=pd.concat([A,B],axis=?,join=?)jion=axis=innerouter0增加行列取交集增加行列取并集1增加列行取交集增加列行取并集语法合并方式C=A.combine_first(B)对A和B的列标签取并集合并,得C的列标签对A和B的行标签取并集合并,得C的行标签对C的(行标签,列标签)处的值按A或B的值进行填充merge的功能要强大一些,当然参数也要复杂一些:语法参数两表行为合并结果leftright行数列数C=pd.merge(left,right,how=?,on=?)
或
C=left.merge(right,how=?,on=?)how'inner'仅匹配仅匹配交集左表和右表列标签的并集'outer'全部保留全部保留并集'left'全部保留仅匹配=左表行数'right'仅匹配全部保留=右表行数'cross'全部组合全部组合=左行数×右行数on合并主键:左表和右表所共有的列标签
数据合并示例设有数据集A和B,如下表所示:数据集A序号idcpugpux11龙芯x2龙芯曦望x33景嘉微x4华为x55摩尔线程数据集B序号idcpux1飞腾y22海光x3y44兆芯x55申威(1)按aixs=1,join=‘inner’(增加列、行取交集)进行堆叠合并,结果如下:序号idcpugpuidcpux11龙芯飞腾x33景嘉微x55摩尔线程5申威(2)按how=‘inner’,on=‘cpu’(列取并集、行取交集)进行合并,结果如下:id_xcpugpuid_y1龙芯3景嘉微5摩尔线程(3)应用combine_first进行重叠合并,结果如下:序号cpugpuidx1飞腾龙芯1x2龙芯曦望x3景嘉微3x4华为x5申威摩尔线程5y2海光2y4兆芯4相应的示例程序:#%%数据合并示例importnumpyasnpimportpandasaspd#数据集AA=pd.DataFrame({'id':[1,np.nan,3,np.nan,5],'cpu':[np.nan,'龙芯',np.nan,'华为',np.nan],'gpu':['龙芯','曦望','景嘉微',np.nan,'摩尔线程']})A.index=['x1','x2','x3','x4','x5’]#数据集BB=pd.DataFrame({'id':[np.nan,2,np.nan,4,5],'cpu':['飞腾','海光',np.nan,'兆芯','申威']})B.index=['x1','y2','x3','y4','x5']#对A和B进行合并A_concat_B=pd.concat([A,B],axis=1,join='inner')A_combine_B=A.combine_first(B)A_merge_B=A.merge(B,how='inner',on='cpu')单击此处添加标题小结思政01本节介绍了关于数据集成的最直观概念及典型流程,是需要大家理解并掌握的内容。02数据集成不仅是技术融合,更是资源协同。如同国家推动数据要素市场化,我们也要学会在合规中实现价值共创。§1.3数据清洗一、数据清洗的定义简单说来,数据清洗就是检测并处理数据中的脏信息。二、数据清洗的流程数据清洗流程如右图所示。流程图中清洗项只是常见脏信息,还有其他意想不到的脏信息,具体问题具体分析。三、常规清洗项1.重复项的检测与处理对于n×p型截面数据通过pandas数据框的drop_duplicates方法进行检测与处理。语法主要参数含义
data.drop_duplicates(subset=None,keep='first’,
inplace=False)subset需要去重列的列名,默认表示删除重复的行keep
取值{fisrt,last,False},表示重复项的处理方法:first=保留第一个last=保留最后一个False=只要有重复,一个都不保留inplace
取值{True,False},表示是否在原表上进行操作其中data是pandas数据框(dataframe)或序列(Series)。2.缺失项的检测与处理设数据集data为n×p型截面数据。(1)缺失项的检测pandas为数据框提供了isnull方法来检测数据是否有缺失项:语法含义data.isnull()data中有缺失值的地方为true,否则为Falsedata.isnull().sum()统计data每列缺失值的数量(2)缺失项的处理pandas为数据框提供了两种方法:删除法和填充法
△删除法——dropna语法重要参数释义data.dropna(axis=0,how='any')axis:取值{0,1},其中0为删除行,1为删除列。how:取值{'any','all'},其中‘any’表示只要有缺失值就执行删除操作;'all’表示删除全部为缺失值的行或列。
△填充法——fillna语法重要参数释义
data.fillna(value=None,method=None,axis=1)value:用来填充缺失项的值method:取值{backfill/bfill,pad/ffill},表示填充方法,其中
method=bfill
表示使用后一个非缺失值填充缺失值
method=ffill
表示使用前一个非缺失值填充缺失值axis:取值{0,1},表示填充方向,其中axis=0,沿行方向填充axis=1,沿列方向填充缺失项的填充方法很多,此处仅介绍了pandas提供的方法。其他填充方法主要有针对定量变量的插值法,针对定性变量的随机填充法,等等。3.异常值的检测与处理(1)定义所谓异常值,是指其中过大或过小、偏离常态的值,也称为离群点。(2)检测异常值的检测pandas提供了boxplot方法,即应用箱线图检测异常值。
语句示例如下:box=data.boxplot(return_type='dict')sigulary=box['fliers'][0].get_ydata()其中box是一个字典,其‘fliers’键对应的值包含了奇异值的坐标;
get_ydata()是获取奇异值y坐标的方法;sigulary存储的就是奇异值。(3)处理关于异常值,有两种处理方法:
△直接删除,适合样本容量较大的情形
△光滑处理:通过插值法来校准数据;
通过pandas提供的rolling方法来平滑数据。四、案例分析
【实验1.2】自建点空气质量监测数据.xlsx是一段时间内某个空气质量监测站对空气所含“两尘四气”(PM2.5、PM10、CO、NO2、SO2、O3)浓度的监测数据,并同时监测了温度、湿度、风速、气压、降水等气象参数。数据共有234717行、12列,数据集的前6行如下表所示。时间PM2.5PM10CONO2SO2O3风速压强降水量温度湿度2018/11/1410:0250980.86215460.51020.689.815652018/11/1410:06501040.75716511.91020.789.815642018/11/1410:06521010.75715530.41020.789.815642018/11/1410:0949960.75815490.51020.689.815642018/11/1410:1049940.75915501.41020.689.815642018/11/1410:1448970.76215471.31020.489.81664………………………………请对该数据集进行常规清洗。【问题分析】常规清洗包括重复项、缺失项、奇异值等几个方面的检测和处理。此处的重复项,是指“时间”列中凡是重复时刻对应的数据都是重复记录的数据。经过前面关于数据清洗的学习,我们基本已成为这个方面的行家,然后组织语言向大模型寻求解决方案的求解程序。【组织语言就编程求助大模型】现有一个空气质量检测数据集,保存在文档“空气质量监测数据.xlsx”中。该数据集共有12列,第一列的标签是“时间”。现要对该数据集进行清洗:(1)请用pandas中drop_duplicates方法对“时间”列中的重复项进行检测,输出数据集的全部重复项,按保留第一条记录、删除其余重复记录进行处理;(2)请用pandas提供的方法对去重后的数据集中除“时间”列之外各列的缺失项进行检测,并按前向填充法进行填充;(3)请用pandas提供的方法对填充后的数据集中的奇异值进行检测,输出除“时间”列之外各列的全部奇异值,在同一画布上画出各列的箱线图,并用平滑方法对奇异值进行平滑处理;(4)请在程序中备注好需要我修改的地方。组织的语言将上述组织好的语句输入deepseek,就会得到我们需要的程序。运行后得到结果描述如下:(1)重复项:共有4488条(2)缺失值:整个数据集没有缺失值(3)奇异值:压强、降水量、温度、湿度,这四列没有奇异值,可视化如下:小结:本节介绍了数据清洗的典型流程;当然,数据中的脏信息远不止这些,大家在数据分析与挖掘过程中去发现它们,并处理它们。思政:数据清洗不是“洗白”,而是“求真”。我们处理的不仅是数据,更是对事实的尊重。§1.4数据变换一、数据变换的定义广义上看,凡是改变变量的值的操作都是数据变换。二、数据变换的流程三、案例分析
【实验1.3】来自体检的部分指标数据.xlsx是某社区一段时间内的体检信息中的部分数据,共有23516行、7列,数据集的前6行如下表所示。档案编号性别年龄体质指数锻炼频率饮食习惯吸烟情况200100402301男1929.4不锻炼荤素均衡从不吸烟200100402302男5023.1偶尔荤素均衡吸烟200100402303男5020.99偶尔荤素均衡吸烟200100402304男5020.99偶尔荤素均衡吸烟200100402305男2523.1不锻炼荤素均衡从不吸烟200100402306女6122每天荤素均衡从不吸烟…………………从表看出,“年龄、体质指数”是定量变量,“性别、锻炼频率、饮食习惯、吸烟情况”是定性变量。【注意,“档案编号”不是变量】
请对该数据集进行下述变换:(1)将年龄和体质指数按医学标准离散化为定性变量;(2)将所有定性变量进行赋值:名义变量按“独热编码”赋值,有序变量按“标签编码”赋值。【问题分析】“年龄”按世界卫生组织标准离散化,“体质指数”按中国标准离散化,结果如下:分组名称年龄范围分组名称BMI范围(kg/m²)青少年13~19体重过低<18.5成人20~59正常范围18.5~23.9年轻老年人60~74超重24.0~27.9中老年人75~84肥胖≥
28.0高龄老人≥85所以首先需要写两个分组函数分别应用与年龄和体质指数的离散化。【组织语言就编程求助大模型】现有一个体检数据集,保存在文档“来自体检的部分指标数据.xlsx”中。该数据集共有7列,第1列的标签是“档案编号”,不是变量;之后各列标签分别是“性别、年龄、体质指数、锻炼频率、饮食习惯、吸烟情况”。(1)年龄和体质指数是定量变量,请按医学标准离散化为定性变量;(2)年龄和体质指数离散化后,“性别、饮食习惯、吸烟情况”是名义变量,其余变量是有序变量,请按相应方法进行赋值,并保存赋值对应的映射;(3)请在程序中备注好需要我修改的地方。组织的语言档案编号性别年龄体质指数锻炼频率饮食习惯吸烟情况年龄分组BMI分组性别_编码饮食习惯_编码吸烟情况_编码锻炼频率_编码年龄分组_编码BMI分组_编码200100402301男1929.4不锻炼荤素均衡不吸烟成人肥胖010013200100402302男5023.1偶尔荤素均衡吸烟成人正常范围012111200100402303男5020.99偶尔荤素均衡吸烟成人正常范围012111200100402304男5020.99偶尔荤素均衡吸烟成人正常范围012111200100402305男2523.1不锻炼荤素均衡不吸烟成人正常范围010011200100402306女6122每天荤素均衡不吸烟年轻老年人正常范围110321200100402307女6113.22每天荤素均衡不吸烟年轻老年人体重过低110320输出结果如下:小结:数据变换是数据分析与挖掘所必经的流程,大家要深刻理解并熟练应用。思政:数据变换教会我们:面对复杂世界,既要尊重规律,也要勇于重构,以创新思维破解难题。二次开发:从实验1.2和实验1.3看出,正如之前所说,学习让我们成为了相关领域的行家,理解并掌握了相关领域知识后,组织好语言向deepseek等大模型寻求实现程序上的帮助,就能高效的完成数据分析和挖掘任务,并能大大地降低学习的难度。从实验1.2和实验1.3还看出,常规数据清洗和数据变换都是有套路的,这为我们二次开发提供了充分的条件。基于此,我们开发了数据清洗和数据变换自建库,适当设置后就可以像导入numpy等库一样使用,达到显著提升效率、大幅减少代码的效果。THANKS!第2章插值与拟合BigData目录§2.1插值§2.2拟合导言数据填充问题已知一对变量x,y的一组观测值:…………其中x1<x2<⋯<xn。
这就是数据填充问题。
表2.1表2.2§2.1插值
一、定义二、若干概念
三、应用场景插值的python实现模块为erpolate,主要插值函数请见下图:四、实现插值主要应用于数据填充、数据平滑、数据加细、预测,等。五、案例分析
【实验2.1】温度变化曲线从1:00到12:00的11个小时内每隔1小时测量一次温度,测得数据如下:试估计从0:00到14:00每隔0.1小时的温度值。时刻1:002:003:004:005:006:007:008:009:0010:0011:0012:00温度589152529313022252724
【实验2.2】平板温度分布曲面
测得平板表面3×5网格点处的温度分别为:
【实验过程】首先,建立平板温度空间直角坐标系:温度值对应的x坐标为[1,2,3,4,5],y坐标为[1,2,3];然后应用np.linspace加细x,y坐标值;最后应用griddata插值。结果可视化如下:828180828479636165818484828586小结:实验2.1是一维插值,既有内插值(插值点在区间[1,12]内),又有外插值(插值点在区间[1,12]外),推荐使用UnivariateSpline(单变量样条插值)来完成插值任务。实验2.2是二维插值,目的是将x,y坐标值加细后通过插值画出光滑的曲面。多维插值推荐使用griddata,这是个对初学者十分友好的插值函数。二次开发:总体上,因为插值需要可视化,代码量相对较答。为了显著提升效率、大幅减少代码,我们将二维插值二次开发为一个自建库供使用。课程思政:插值不仅是填补空白的技术手段,更是我们对真实世界的一种负责任的推测。§1.2拟合一、拟合原则与插值不同,拟合认为表2.1中的观测值是有偏差的。
二、拟合的概念
步骤应用拟合解决问题的步骤如下:
其中最难的是第二步,需要厚实的数学基础和数据分析经验;第三步的解决方案在scipy.optimize模块。三、实现
语法主要参数释义popt,pcov=curve_fit(fun,
xdata,ydata,
p0=None,
bounds=(-inf,inf))fun拟合函数簇xdata,ydata表2.1中的观测值p0参数迭代初值bounds参数的取值范围自行摸索least_squares,leastsq两个函数的语法,及主要参数的含义。四、案例分析【实验2.5】零件轮廓线问题现测得某零件局部轮廓线的坐标如下表所示:0.040.350.670.981.301.611.922.242.552.873.180.020.120.390.781.211.591.811.801.500.890.02试问该零件边沿线大致是一条什么曲线?【实验过程】按拟合步骤操作。第一步,描散点图,观察y随x的变化趋势:
参数值a-0.3827b1.2136c0.0027d-0.00541.参数估计值及拟合函数白化式2.拟合效果可视化
参数值a0.9977b-0.0156c0.9947d-0.02961.参数估计值及拟合函数白化式2.拟合效果可视化
问:两个拟合函数,谁更胜一筹?小结:插值和拟合,都是从数据填充问题引出的数据分析基础技术,主要应用领域基本相同:数据填充、数据平滑、数据加细(增加样本量)、预测。插值和拟合又明显不同:插值认为观测值无偏差,从而插值函数可底层设计好供调用就行;拟合则认为观测值有偏差,从而拟合函数需根据变化趋势自己拟定。从技术上看,拟合比插值要难。课程思政:学会在准确描述现有数据和预测未来趋势之间找到一个合适的平衡点,正如我们在生活中也需要在理想与现实之间寻求和谐。THANKS!第3章回归分析BigData目录§3.1线性回归分析§3.2非线性回归分析§3.1线性回归分析
一、定义
5.案例分析
【实验3.2】城乡居民收入与消费关系分析
现有我国内地31个省级行政单位2013年的农村居民家庭和城镇居民家庭人均工资收入、其他收入及生活消费支出数据,下表是数据集的前5行:地区农村居民城镇居民生活消费工资收入其他收入生活消费工资收入其他收入北京13553.212034.96302.626274.93027315000.8天津101559091.56749.521711.923231.912423.7河北6134.15236.73865.213640.614588.49554.4山西5812.74041.13112.413166.216216.47797.2内蒙古7268.31694.66901.119249.118377.98600.1…………………
试分析2013年我国内地农村居民与城镇居民不同的收入对生活消费的影响是否有显著差异。【实验过程】首先,对数据进行预处理。组织语言让大模型完成数据预处理:“附件中的数据集是我国内地31个省级行政单位的居民收入和生活消费数据。现在要对我国农村居民与城镇居民不同的收入对生活消费的影响是否有显著差异进行分析。以生活消费为被解释变量,以工资收入、其他收入、居民类型为解释变量建立回归分析模型。请对附件中的数据集进行预处理。”(预处理程序)地区生活消费工资收入其他收入居民类型居民类型_城镇工资收入_城乡交互其他收入_城乡交互北京13553.212034.96302.6农村000天津101559091.56749.5农村000河北6134.15236.73865.2农村000山西5812.74041.13112.4农村000内蒙古7268.31694.66901.1农村000……………………预处理结果如下表所示——自动添加了居民类型与两项收入的交互项。
最后,应用基于statsmodels库OLS类二次开发的linear_regressor自建库求解,结果如下:
(1)参数估计结果
解释变量估计值置信区间t值t概率值检验结果截距项1025.251-255.7252306.2261.6033280.114488不显著工资收入0.6761050.549260.80295110.677584.03E-15显著其他收入0.5958070.3367870.8548284.6079162.39E-05显著居民类型_城镇1573.895-296.6053444.3941.6855870.09744不显著工资收入_城乡交互-0.18959-0.348-0.03119-2.397710.019857显著其他收入_城乡交互0.005942-0.304840.3167260.0383010.969584不显著(2)模型评估结果
R方调整R方f值f概率值均方误差均方根误差0.9779850.97602497.55524.54E-45882881.5939.6177(3)可视化结果
(4)结果解读△变量显著性检验结果解读
首先,从变量的显著性看,工资收入、其他收入及交互项工资收入_城乡交互三个变量对生活消费影响显著,截距项、居民类型_城镇及交互项其他收入_城乡交互则对生活消费影响不显著。这就回答了我国农村居民与城镇居民不同的收入对生活消费的影响是否有显著差异这个问题。
然后,从参数估计值看,截距项表明,无论城乡居民基础生活保障支出为1025.25元,工资收入的67.6%和其他收入的59.6%用于了生活消费;城镇居民相比农村居民,平均起来要多消费1573.89元,工资收入用于消费的比例要小19%、其他收入用于消费的比例则要大5.9%。
小结:线性回归分析是分析一个变量与另一个(些)变量的线性依赖关系的方法论,描述的是“依赖关系”,未必是因果关系。二次开发:因为从statsmodels.api.OLS提取结果对初学者来说是一件相对困难的事情,我们基于OLS二次开发了线性回归模型的求解自建库,使用上代码相当简洁,输入输出也都十分友好,供大家参考。课程思政:即使是简单的线性关系,也可能蕴含着深刻的洞察,让我们学会从小处着眼,逐步揭开世界的奥秘。§3.2非线性回归分析非线性回归是经典数据分析中最难的技术之一。
一、概念
与线性回归相比,非线性回归的难度主要体现在下述几个方面:pipinstalllmfit-i/simple/非线性回归的求解推荐使用lmfit库,使用前需我们自己安装。下面是通过中国科技大学源安装lmfit的语句:二、求解为了减轻大家编程负担,我们基于lmfit库二次开发了非线性回归模型通用求解器nonlinear_regressor,使用流程是:模型准备=数据准备+定义模型建模=应用nonlinear_regressor中的NonlinearRegressor类建立一个非线性回归实例训练、评估=分别对应类的fit方法和evaluate方法应用(预测)=类的predict方法预测结果的可视化=类的plot_prediction方法【实验3.1】混凝土抗压强度与养护时间关系探索混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个测试块,记录了养护时间x(日)及抗压强度y(kg/cm2)的数据,见下表:三、案例分析234579121417212856354247535965687376828699试分析抗压强度y与养护时间x之间的关系。【实验过程】首先走曲线拟合流程,拟定回归函数;然后应用自建库按前面介绍的流程求解。散点图:
应用自建库NonlinearRegressor求解,结果如下:(1)
参数估计值参数名称估计值标准误差相对误差(%)0.9973置信区间0.9545置信区间0.6827置信区间k0.0377524130.0016654.409253139(0.0312,0.0443)(0.0340,0.0416)(0.0360,0.0395)b0.0108687740.0003453.175055101(0.0095,0.0122)(0.0101,0.0117)(0.0105,0.0112)
可视化回归结果:(3)模型评估统计检验指标检验结果统计检验指标检验结果均方根误差(RMSE)0.000728574赤池信息准则(AIC)-169.3861037平均相对误差(MAPE(%))4.006790227贝叶斯信息准则(BIC)-168.4162904拟合优度(R²)0.980929251预测区间覆盖率(PICP(%))66.66666667卡方统计量(χ²)6.37E-06预测区间平均宽度(MPIW)0.001452908(4)模型评价从模型评估结果看,除了预测效果稍弱以外,模型表现优良。但从可视化回归效果明显能看出模型曲线与样本点随x增大而趋势差异也变大,原因是,随着x增大样本点明显有上扬趋势,而所选模型有上界压制。所以倒数模型还可以改进。
参数名称估计值标准误差相对误差(%)0.9973置信区间0.9545置信区间0.6827置信区间a87.235912.0436392.34265818(80.0174,103.4648)(82.8782,93.5924)(85.1229,89.7193)b0.02610.0136152.1463248(-0.1110,0.1716)(0.0063,0.0817)(0.0140,0.0453)c-62.88181.9787943.14684508(-72.9070,-54.4142)(-67.5645,-58.1977)(-64.9922,-60.7711)d0.1093860.01150610.5190952(0.0597,0.1689)(0.0818,0.1401)(0.0967,0.1227)
统计检验指标检验结果统计检验指标检验结果均方根误差(RMSE)1.319312129赤池信息准则(AIC)14.65065167平均相对误差(MAPE(%))1.850704926贝叶斯信息准则(BIC)16.59027827拟合优度(R²)0.994792459预测区间覆盖率(PICP(%))83.33333333卡方统计量(χ²)20.88701392预测区间平均宽度(MPIW)4.366060774模型评估结果如下:从模型评估结果看,悬链线模型明显优于倒数模型。回归效果可视化:
模型评价无论从模型评估结果看还是回归效果看,在描述混凝土抗压强度与养护时间关系上,悬链线模型比倒数模型更优秀。【实验3.5】口罩销量与空气质量之间的关系为了研究空气质量、天气、地区等因素对口罩销量的影响,对甲、乙、丙三个地区进行调研,获得空气质量指标“两尘四气”、相应天气(晴、阴、雨)及相应的口罩销售数据,请见口罩销量与空气质量数据.xlsx。试由数据集完成下述问题:(1)根据所给因素建立口罩销量的回归分析模型;(2)对模型中的参数进行估计;(3)对模型进行统计检验以评价模型;(4)三个地区的空气质量及天气对口罩销量的影响是否有显著差异?(5)对新获得的甲乙丙三个地区的空气质量及天气数据对应的口罩销量进行预测。【实验分析】首先对数据进行预处理——(1)数据合并:将甲乙丙三表数据合并为一个表(2)对合并数据添加“地区”列,以区别数据来源(3)定性变量赋值:对“天气”和“地区”两个定性变量赋值,因要观察各种天气和各个地区对销量的影响,故采用独热编码方式赋值(4)对除被解释变量之外的定量变量执行数据标准化(5)对待预测数据执行(3,4)两步操作预处理好的数据如下表所示(前3行):PM2.5PM10CONO2SO2O3天气_阴天气_雨地区_乙地区_甲口罩销量(万只)-0.6864-0.2521-0.7381-0.97290.12960.5259100167.26-0.7153-0.2914-0.7788-0.9729-0.02020.6509000121.28-0.6864-0.3898-0.6406-0.97290.17960.6926010153.72……………………………【实验过程】教材上已说明多项式模型不能准确描述口罩销量与空气质量、天气、地区之间的依赖关系,此处直接建立二次有理模型:应用nonlinear_regressor求解没有成功,引入matlab求解,得回归函数的表达式如下(剔除了不显著的项):地区PM2.5PM10CONO2SO2O3天气口罩销量甲521010.7571553晴54.6143乙1202531.2731996雨42.22丙40790.6681482晴27.5565三个地区口罩销量的预测结果如下:从预测结果看,有理回归模型相对比二次完全多项式回归模型(等价于多元线性回归模型)预测结果合理。课程思政:如同非线性模型能够更好地捕捉现实世界的波动,我们也应该学会适应生活中的不确定性,灵活调整自己的策略。小结:回归分析=曲线拟合+模型评估(主要是统计检验)线性回归模型的回归函数(也称为回归方程)是确定的,无需再探索;非线性回归模型的回归函数是未知的,需要我们探索的,这也正是非线性回归分析的难点所在。基于python的非线性回归分析的求解也是难点之一:curve_fit等能完成参数估计任务,却没有参数的显著性检验等模型评估功能;lmfit库是python求解非线性回归模型的利器,但应用流程相对复杂,对初学者有较为陡峭的难度。我们基于lmfit二次开发了回归分析通用求解器nonlinear_regressor供大家调用(但面对较为复杂的模型也力有不逮)。THANKS!第4章logistic回归BigData目录§4.1logistic回归的分类§4.2logistic回归的概念§4.3logistic回归的实现§4.1logistic回归的分类
§4.2logistic回归的概念首先介绍最简单也最易理解的二分类logistic回归,此时定类变量Y的取值数值化为0或1,0对应的类称为0类,1对应的类称为1类。从三个方面介绍二分类logistic回归“是什么”:1.是一个经典的有监督机器学习模型,是一个分类器;2.已成为深度学习领域构建复杂非线性分类器的基础模型之一3.有明确的数学解析式:一、定义其中是Y=1的概率,简记为p。二、分类原理当k=1时称为一元logistic回归,此时logistic回归曲线如下图所示:三、logit模型将logistic回归模型变形如下:上式左边称为比值比(OR),有着丰富的含义。进一步取对数变换,得
§4.3logistic回归的实现Python实现logistic回归分析的函数是LogisticRegression,该函数在sklearn.linear_model模块中。一、LogisticRegression语法model=LogisticRegression(penalty='l2',C=1.0,multi_class='auto')输入参数:penalty:惩罚项,取值有4个{‘l1’,‘l2’,‘elasticnet’,None}C:描述正则化强度的一个量multi_class:多分类策略,取值有3个{‘auto’,‘ovr’,‘multinomial’}‘auto’:自动处理‘ovr’:
One-vs-Rest,是一种将多分类转换为多个二分类的策略‘multinomial’:使用Softmax回归直接处理多分类问题输出参数:class_:分类器已知的类标签列表coef_:决策函数中特征的系数intercept_:决策函数中的截距项【实验4.1】大气污染类别分析大气中氯、硫化氢、二氧化碳、碳4、环氧氯丙烷、环己烷等物质含量的多少可以描述大气污染情况。现某地采集到15个大气样品中这些物质的含量情况及相应的污染分类,见下表:二、案例分析氯硫化氢二氧化碳碳4环氧氯丙烷环已烷污染分类0.0560.0840.0310.0380.00810.02210.040.0550.10.110.0220.007310.050.0740.0410.0480.0710.0210.0450.050.110.10.0250.006310.0380.130.0790.170.0580.04320.030.110.070.160.050.04620.0340.0950.0580.160.20.02910.030.090.0680.180.220.03910.0840.0660.0290.320.0120.0412…………………在此地某大型化工厂的厂区及邻近地区挑选了4个有代表性的大气样本取样点,获得数据见下表:氯硫化氢二氧化碳碳4环氧氯丙烷环已烷污染分类0.0520.0840.02110.0370.00710.022待识别0.0410.0550.110.110.0210.00730.030.1120.0720.160.0560.0210.0740.0830.1050.190.021试识别这四个样品的污染类别。【实验过程】Logistic回归已是十分规范的机器学习方法,是有监督学习,分析流程相当模块化,这在绪论中已有介绍,粗框架就是:数据模块→分析模块→应用模块基于流程的程序请看链接。【实验结果】1.模型评估结果:模型表现优异,预测结果可信。准确率查准率查全率f1值11112.模型预测结果氯硫化氢二氧化碳碳4环氧氯丙烷环已烷污染分类0.0520.0840.02110.0370.00710.02210.0410.0550.110.110.0210.007310.030.1120.0720.160.0560.02120.0740.0830.1050.190.0212小结:Logistic回归仅能做分类,切记!Logistic回归是根据对象归属某个类别的概率大小来实现分类的。从Logistic回归开始,数据分析流程就基本完全模块化了:数据模块→分析模块→应用模块其中分析模块中评估部分我们基于sklearn.metric模块进行了二次开
发,得到模型评估自建库model_evaluator.py,减轻大家编程负担。
大多数数据分析任务可照此流程执行。课程思政:Logistic模型在医学领域贡献显著。在我国应对重大公共卫生事件的过程中,比如,无论2003年非典还是2020年新冠,我国科学家利用包括Logistic模型在内的多种工具,为疫情防控做出了重要贡献。THANKS!第5章树结构模型BigData目录§5.1决策树§5.2随机森林§5.3轻梯度提升机器导言树结构模型是指基于决策树的机器学习模型。
树结构模型有着十分优良而又独特的性质,比如一般都具有精度高、抗干扰、数据不必标准化等特点,具有评估变量重要性的功能。树结构模型中,决策树是基学习器。通过对决策树的集成又发展为丰富的集成学习方法。如右图所示:在最新的树结构模型开发中,我国学者和互联网公司走在了世界的前列。课程思政§5.1决策树从下述四个方面介绍决策树“是什么”:1.是一个经典的有监督机器学习模型,既可用于分类,也可用于回归;一、定义2.其决策过程形如一棵倒挂的树,右边就是一棵典型的决策树,鸢尾花的分类决策过程可以看出决策树包含节点、分支线,当然还包括分支条件,在节点框中;3.决策树的数学基础是信息论,决策依据的演进史:信息增益(ID3)→基尼不纯度(CART)→信息增益率(C4.5)→集成学习4.决策树没有明确的数学解析式。
Python实现决策树的模块是sklearn.tree,其中有分类器DecisionTreeClassifier和
回归器DecisionTreeRegressor,二者除了决策准则不一样,用法基本一致。下面是分类器的语法:二、实现model=DecisionTreeClassifier(criterion='gini',
splitter='best',)1.主要输入参数及其含义:(1)criterion:衡量一个分裂质量的准则,取值为{'gini','entropy','log_loss'},缺省值是'gini';(2)splitter:在每个节点上选择分割的策略,取值为{'best','random'},缺省值是'best';2.主要输出参数及其含义:(1)classes_:类标签(单输出问题)或类标签数组列表(多输出问题)(2)feature_importances_:特征的重要性,被计算为该特征所带来的(归一化后的)准则的总减少,也被称为基尼重要性。(3)tree_:所建立的树,可通过plot_tree可视化model=DecisionTreeRegressor(criterion='squared_error',splitter='best')1.主要输入参数及其含义:与分类器相比,仅有criterion含义不同。(1)criterion:衡量一个分裂质量的准则,取值为{'squared_error','friedman_mse','absolute_error','poisson'},缺省值是'squared_error';2.主要输出参数及其含义:与分类器相比,没有classes_输出项。(1)feature_importances_:同分类器。(2)tree_:同分类器。回归器的语法:三、案例分析【实验5.1】打网球影响因素分析
是否去打网球(play)主要由天气(outlook)、温度(temperature)、湿度(humidity)、是否有风(windy)等因素来确定。下表中的14条样本数据记录了天气对打网球的影响。
请建立决策树模型分析天气对打网球的影响。NO.outlooktemperaturehumiditywindyplay1sunnyhothighFALSEno2sunnyhothighTRUEno3overcasthothighFALSEyes4rainymildhighFALSEyes5rainycoolnormalFALSEyes6rainycoolnormalTRUEno7overcastcoolnormalTRUEyes8sunnymildhighFALSEno9sunnycoolnormalFALSEyes10rainymildnormalFALSEyes11sunnymildnormalTRUEyes12overcastmildhighTRUEyes13overcasthotnormalFALSEyes14rainymildhighTRUEno【实验过程】主要就是走流程,本案例只有两个模块:数据模块→分析模块。
数据模块主要是对数据进行预处理,即数据变换:定性变量数值化。应用数据变换自建库data_converter.py来完成,预处理结果如下:outlooktemperaturehumiditywindyplay2100021010010011200110101101100011122000201011210122111020110110112010其中赋值映射如下:分析模块
建模→训练→评估(1)模型训练完成后就可以提取相关结果了,首先是特征重要性:
特征名称outlookhumiditywindytemperature特征重要性0.3155560.280.2488890.155556可视化特征重要性,直观领会各因素对打网球影响的大小:然后可视化决策树:
结论从评估结果看,决策树模型对原始数据达到了100%的识别。
(2)模型评估结果
准确率查准率查全率f1_score1111小结:决策树是经典的有监督机器学习方法:分析一个变量与另一个(些)变量的依赖关系的方法论(特别是非线性依赖关系),既能承担分类任务,也能完成回归任务。本章的程序,是树结构模型的程序范本,随机森林、轻梯度提升机器等树结构模型数据分析程序只需在此基础上稍作修改即可。§5.2随机森林
1.随机森林是决策树经装袋所得的集成学习方法。2.决策机制:决策树是一棵树,其决策机制是“问某个人对某个问题的看法”;随机森林是多棵树的集成,决策机制是“问多个人对某个问题的看法”,然后按“多数”看法进行决策。下图形象的描述了这种机制:一、概念从三个方面介绍随机森林“是什么”。森林中仅有一棵树判断该动物是“狐狸”,而其他树都是“浣熊”,所以随机森林的决策是:该动物是浣熊。3.随机森林是多棵树,那么这些树是怎么来的呢?
这就是随机森林中“随机”二字的核心含义:一是随机选取m个特征,二是随机选择l个对象,这样就从原始数据中随机抽样出了一个子集,依此子集建立一棵决策树。这样就能生成很多棵树了。二、实现我是一棵树我是一片森林,树的数量由参数n_estimators来定义,每棵树的参数与决策树一致。随机森林的实现模块是sklearn.ensemble(机器学习库集成学习模块),其分类器是RandomForestClassifier,回归器是RandomForestRegressor,它们的第一个参数都是n_estimators,表示森林中树的数量,其他参数与决策树几乎一致。【实验5.2】白酒质量影响因素研究白酒质量数据集(WineQualityDataset)是python机器学习库sklearn自带的数据集,主要用于由白酒所含化学成分的度量值来预测白酒质量的研究。数据集前3行如下表所示:三、案例分析fixedacidityvolatileaciditycitricacidresidualsugarchloridesfreesulfurdioxidetotalsulfurdioxidedensitypHsulphatesalcoholquality70.270.3620.70.045451701.00130.458.866.30.30.341.60.049141320.9943.30.499.568.10.280.46.90.0530970.99513.260.4410.16试由数据集对描述白酒质量的11个化学成分的重要性进行评估。【实验过程】实际上按实验5.1的流程走一遍即可(程序)。特征名称特征重要性alcohol0.114138715density0.103156226volatileacidity0.099012593freesulfurdioxide0.093252051totalsulfurdioxide0.09144892residualsugar0.089229645pH0.086817608chlorides0.086804801citricacid0.081904022sulphates0.079242396fixedacidity0.074993022随机森林提取的特征重要性(降序)如下:对白酒质量影响最重要的因素是酒精度(alcohol)特征重要性(降序)可视化如下:随机森林模型的评估结果:评估项值准确率0.6694查准率0.6737查全率0.6694f1值0.659模型对白酒质量类别的识别能力不够良好森林中前4棵决策树§5.3轻梯度提升机器(lightGBM)1.lightGBM是决策树通过梯度提升算法集成而得的强学习器;2.lightGBM是在GBDT和XGBoost两个梯度提升树模型的基础上发展而来的,在技术上有巨大的改进:(1)基于单边梯度采样和互斥特征捆绑的数据预处理机制(2)基于直方图的决策树算法(3)带深度限制的决策树按叶生长策略(4)直接支持类别特征3.提供了两种方法评估特征的重要性:(1)分裂增益(gain):反映特征对模型的贡献程度(2)分裂次数(split):关注特征在模型训练中的使用频率一、概念二、实现LightGBM并非anaconda自动配置,需要安装后才能使用。pipinstalllightgbm安装流程:启动anacondaprompt,然后输入下述语句:LightGBM中的分类器是LGBMClassifier,回归器是LGBMRegressor。在使用中领略其输入输出。【实验5.2】白酒质量影响因素研究应用轻梯度提升机器来完成实验5.2.三、案例分析【实验过程】实际上按实验5.1的流程走一遍即可(程序)。随机森林提取的特征重要性(降序)如下:对白酒质量影响最重要的因素是酒精度(alcohol)特征名称分裂增益分裂次数fixedacidity3065.9632875volatileacidity5162.5082748citricacid3200.4172985residualsugar4533.1193527chlorides3286.3963064freesulfurdioxide5178.9663673totalsulfurdioxide4642.4874339density3799.8413396pH4038.5283305sulphates3660.9983065alcohol7496.9682838特征重要性(降序)可视化如下:lightGBM模型的评估结果:评估项值准确率0.6906查准率0.6914查全率0.6906f1值0.6831lightGBM比随机森林略好,但总体上识别能力也不够良好森林中前4棵决策树小结+课程思政:树结构模型是经典数据分析与挖掘技术中发展最枝繁叶茂的一支,直到现在包括我国学者和我国互联网公司在内的贡献者还在开发新的树结构模型,比如深度森林、GrootVL网络等。树结构模型的发展历程展示了科学研究中的不断探索与创新精神。每一步前进都源于对现有技术局限性的挑战和突破。THANKS!第6章支持向量机BigData目录§6.1数学原理§6.2Python实现§6.1数学原理支持向量机是一个具有完美数学理论、优雅数理逻辑的有监督学习模型。一、线性可分问题引出支持向量机的数学问题这就叫线性可分一切尽在这幅图中二、SVM核心原理原理图三、SVM优化问题求解步骤四、软间隔
为解决线性不可分问题而生!这是线性不可分软间隔五、核函数
升维:低维线性不可分→高维线性可分低维线性不可分→高维线性可分小结+课程思政:支持向量机的数学原理完整地介绍了支持向量机“是什么”及其工作原理:通过核函数将低维线性不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院大部室工作制度
- 医院内消杀工作制度
- 医院药药房工作制度
- 单位查验证工作制度
- 卫健局双拥工作制度
- 卫生站工作制度汇编
- 卫生院检验工作制度
- 印刷厂考勤工作制度
- 厨房蒸笼部工作制度
- 县委办信息工作制度
- 2026年消费维权竞赛试题及答案
- 2025年广东深圳市中考英语试卷真题及答案详解(精校打印版)
- 校医院内部财务管理制度
- 2026年兰考三农职业学院单招职业适应性测试题库附答案详解(黄金题型)
- 2025年一级建造师考试《矿业工程管理与实务》真题及答案
- 2025四川泸州市古蔺县考试选任聘副科级领导干部14人备考题库附答案
- 小学语文跨学科融合教学的实践探索课题报告教学研究课题报告
- 高校毕业生就业创业调查报告
- 山东省2026届高三12月大联考数学试题(含答案)
- 水晶产品采购合同范本
- 钢结构厂房组织方案
评论
0/150
提交评论