大数据基础 课件汇 胡坚 4.3.3 Scala语法基础-8.6 利用信用评分机制进行金融风险控制_第1页
大数据基础 课件汇 胡坚 4.3.3 Scala语法基础-8.6 利用信用评分机制进行金融风险控制_第2页
大数据基础 课件汇 胡坚 4.3.3 Scala语法基础-8.6 利用信用评分机制进行金融风险控制_第3页
大数据基础 课件汇 胡坚 4.3.3 Scala语法基础-8.6 利用信用评分机制进行金融风险控制_第4页
大数据基础 课件汇 胡坚 4.3.3 Scala语法基础-8.6 利用信用评分机制进行金融风险控制_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

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

文档简介

浙江《大数据基础》.移动商务营销课程群4.3.1Scala简介4.3.3Scala语法基础4.3Scala语言4.3.2Scala安装与使用编程基础大数据大数据基础Unit44.3.3Scala语法基础1变量与常量Scala是一种静态类型语言,支持变量和常量的声明和定义。在Scala中,变量可以用var关键字声明,常量则是用val关键字声明,常量一旦被赋值就不能再修改。声明变量和常量的语法格式如下:var变量名:数据类型[=初始值]val常量名:数据类型[=初始值]4.3.3Scala语法基础1变量与常量valage:Int=25//声明一个val(常量)//age=30//这行代码会报错,因为无法改变age的值varname:String="张三"//声明一个var(变量)name="李四"//可以改变name的值指定类型声明变量和常量valpi=3.14//推断为Double类型vargreeting="Hello,world!"//推断为String类型自动推断类型声明变量和常量4.3.3Scala语法基础2数据类型整型(Int):表示整数值,取值范围为-2^31~2^31-1。长整型(Long):表示更大范围的整数值,取值范围为-2^63~2^63-1。浮点型(Float):表示带小数部分的实数值,占用32位空间。双精度浮点型(Double):表示更高精度的实数值,占用64位空间。布尔型(Boolean):表示逻辑上的真或假。字符型(Char):表示单个字符,使用单引号括起来。字符串型(String):表示一组字符,使用双引号括起来。4.3.3Scala语法基础2数据类型varage:Int=25//声明一个整型变量varbigNumber:Long=123456789012345L//声明一个长整型变量varpi:Float=3.14f//声明一个浮点型变量vare:Double=2.71828//声明一个双精度浮点型变量varisScalaFun:Boolean=true//声明一个布尔型变量varfirstLetter:Char='S'//声明一个字符型变量vargreeting:String="Hello,world!"//声明一个字符串型变量4.3.3Scala语法基础3运算符——算术运算算术运算符覆盖加(+)、减(-)、乘(*)、除(/)、求余(%)等几种运算,下面是这些运算符的示例代码:vala=10;valb=20valsum=a+b//加法运算,sum的值为30valdiff=b-a//减法运算,diff的值为10valproduct=a*b//乘法运算,product的值为200valquotient=a/b//除法运算,quotient的值为0,整除valremainder=a%b//求余运算,remainder的值为104.3.3Scala语法基础3运算符——比较运算比较运算符覆盖相等(==)、不等(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等几种运算,下面是这些运算符的示例代码:vala=10;valb=20;valc=10valisEqual=a==b//isEqual的值为falsevalisNotEqual=a!=b//isNotEqual的值为truevalisGreaterThan=b>a//isGreaterThan的值为truevalisLessThan=a<b//isLessThan的值为truevalisGreaterOrEqual=b>=a//isGreaterOrEqual的值为truevalisLessOrEqual=c<=b//isLessOrEqual的值为true4.3.3Scala语法基础3运算符——逻辑运算逻辑运算符覆盖与(&&)、或(||)、非(!)三种运算,下面是这些运算符的示例代码:vala=true;valb=falsevalresult=a&&b//result的值为falsevalresult=a||b//result的值为truevalresult=!a//result的值为false4.3.3Scala语法基础4选择语句——if语句if语句用于根据给定的条件决定是否执行某段代码。如果条件为真,则执行语句块;否则不执行。valx=10if(x<20){println("x小于20")//条件满足,输出该文本}4.3.3Scala语法基础4选择语句——if-else语句if-else语句用于根据给定的条件执行不同的代码块。如果条件为真,则执行if语句块;否则执行else语句块。valx=10if(x<20){println("x小于20")//条件满足,输出该文本}else{println("x大于等于20")//条件不满足,不输出}4.3.3Scala语法基础4选择语句——if-else语句嵌套通过if-else语句嵌套处理,程序可以在多个条件之间进行判断和选择,并根据不同的条件执行不同的代码块。valx=10if(x<0){println("x是负数")}elseif(x==0){println("x等于0")}else{println("x是正数")}4.3.3Scala语法基础5循环语句——while循环while循环语句用于在给定条件为true时执行某个代码块,当条件不再为true时,停止执行。vari=0while(i<10){println(i)i+=1}4.3.3Scala语法基础5循环语句——do-while循环do-while循环与while循环类似,不同之处在于do-while循环至少会执行一次代码块,然后再根据给定条件决定是否继续执行。vari=0do{println(i)i+=1}while(i<10)4.3.3Scala语法基础5循环语句——for循环for循环用于迭代集合中的元素,并重复执行特定的代码块。在Scala中,for循环可以遍历数组、列表、集合等类型的数据结构。vallist=List(1,2,3,4,5)for(num<-list){println(num)}4.3.3Scala语法基础6Scala大数据应用——操作步骤进入Linux系统,打开“终端”,进入Shell命令提示符状态。在“/usr/local/scala/bigdata”目录下,新建一个wordcount子目录在“/usr/local/scala/bigdata/wordcount”目录下新建两个文本文件word1.txt和word2.txt,在两个文本文件中随意输入一些单词,用空格隔开。在“/usr/local/scala/bigdata”目录下新建一个test.scala文件,并在test.scala中编写词频统计的Scala程序代码。Scala进行词频统计4.3.3Scala语法基础6Scala大数据应用——总体思路importjava.io.Fileimportscala.io.SourceobjectWordCount{defmain(args:Array[String]):Unit={//1、读取文件、设置分词结果存储变量

//2、遍历文件、切分单词并记录数量

//3、输出分词结果}}4.3.3Scala语法基础6Scala大数据应用——步骤1代码valdirfile=newFile("/usr/local/scala/bigdata/wordcount")valfiles=dirfile.listFilesfor(file<-files)println(file)vallistFiles=files.toListvalwordsMap=scala.collection.mutable.Map[String,Int]()读取文件、设置分词结果存储变量。4.3.3Scala语法基础6Scala大数据应用——步骤2代码对列表listFiles中的每个元素进行遍历,取出每个文件,并调用getLines()方法获取该文件的所有行,并针对每行执行foreach()方法进行遍历使用split()方法把一行语句切分成一个个单词,这些单词又构成一个集合,然后对这个集合中的每个元素,也就是每个单词,又通过foreach()方法进行遍历,对于遍历到的每个单词进行计数,存储在Map中listFiles.foreach(file=>Source.fromFile(file).getLines().foreach(line=>line.split("").foreach(word=>{if(wordsMap.contains(word)){wordsMap(word)+=1}else{wordsMap+=(word->1)}})))4.3.3Scala语法基础6Scala大数据应用——步骤3代码与执行println(wordsMap)for((key,value)<-wordsMap)println(key+":"+value)输出分词结果的代码如下。cd/usr/local/scala/bigdata//要确保当前工作目录是bigdata目录scalatest.scala程序编写完成后,在Shell命令提示符状态下,运行下面命令执行程序即可。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江训练4-1单元4Python语言店铺宝贝价格排序训练同步BigdataHadoop大数据基础pythonUnit4《大数据基础》.移动商务营销课程群训练4-1:店铺宝贝价格排序案例目标用户输入多个淘宝店铺宝贝的价格,程序对输入的价格数据进行处理,要求价格数据以升序形式输出。案例解释在一行内输入多个宝贝价格数值(正整数),使用冒泡排序等排序算法对价格数据进行处理,并输出排序后数据。运行效果实现思路基本步骤按实训要求创建工程并配置环境。接收用户控制台输入的多个价格:(1)定义列表变量用于保存价格数据。(2)使用input方法接受用户控制台的输入(一行输入所有价格)。(3)拆分输入字符串,转化成价格字符串列表。(4)循环将各个价格转化为整数,将获取的数值存储入价格列表中。升序排序思路:(1)思路:每次排序从左至右依次比较相邻两个列表元素,若左侧元素(下标较小)比右侧元素(下标较大)大,则交换两者位置,直至把本次待比较数据中的最大者置右。每次排序都确定本次排序数据中的最大者,并使下一次待排序数据个数减少1个。训练4-1:店铺宝贝价格排序运行效果实现思路基本步骤(2)例:对宝贝价格数列:418937进行升序排序,方法和过程如下:训练4-1:店铺宝贝价格排序运行效果实现思路基本步骤实现列表升序排序(冒泡排序):(1)创建用于遍历列表的外层for循环(设循环变量为i):1)循环范围:0~列表长度-2。(2)创建用于按大小关系交换列表成员的内层for循环(设循环变量为j):1)循环范围:0~列表长度-i-2。2)说明:循环范围的设计目的是,确保每次排序中相邻元素的比较次数。(3)依次判断当前列表成员(prices[j])是否大于右侧相邻列表成员(prices[j+1])。(4)如果prices[j]>prices[j+1],那么交换两个列表成员。训练4-1:店铺宝贝价格排序运行效果实现思路基本步骤输出结果:(1)向控制台输出:“排序后宝贝价格:”。(2)向控制台输出列表中的数据,数据间通过空格间隔,

并在一行中显示。训练4-1:店铺宝贝价格排序《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.1.1数据采集原理5.1数据采集5.1.2BeautifulSoup网络

数据采集与预处理数据采集大数据基础Unit5

为什么需要数据采集特征:随着人类活动的扩展,数据规模在急剧膨胀,数据类型也越来越多。需求:数据需要以简单的方式进行处理,又要十分准确且能迅速满足各种类型的数据需求。挑战:在大量分散的、异构的数据中收集需要的数据,以相对统一的方式存储。这也就是数据采集的任务。5.1.1数据采集原理系统日志采集工具很多互联网企业都有数据采集工具,多用于系统日志采集,如Flume,Kafka,Chukwa等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

5.1.1数据采集原理系统日志采集工具——FlumeFlume是一种分布式、可靠和可用的服务,用于高效地收集、聚合和移动大量日志数据。比如,将日志数据从各种网站服务器上汇集起来存储到HDFS、HBase等集中存储器中。

5.1.1数据采集原理

网络数据采集工具需求:通过网络爬虫和一些网站平台提供的公共API等方式从网站上获取数据。方法:将非结构化数据和半结构化数据的网页数据从网页中提取出来。并将其提取、清洗、转换成结构化的数据,将其存储为统一的本地文件数据。工具:用于网页爬虫的ApacheNutch、Scrapy等框架,另外有诸如BeautifulSoup、urllib、requests等底层工具包。5.1.1数据采集原理

网络数据采集流程5.1.1数据采集原理《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.1.1数据采集原理5.1数据采集5.1.2BeautifulSoup网络

数据采集与预处理数据采集大数据基础Unit5

BeautifulSoup简介BeautifulSoup提供一些简单的、Python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Anaconda已经安装了BeautifulSoup包,程序中导入包就可以直接使用。frombs4importBeautifulSoup5.1.2BeautifulSoup网络数据采集

获取网页内容

网页的原始内容可以使用requests包的get方法获取,在设置了编码之后就能获得html文本。而解析html文本的结构,获取指定的元素标签内容,这部分工作则可以通过BeautifulSoup实现。

下例获取百度首页内容importrequests#导入requests包res=requests.get('')#获取网页内容res.encoding='utf-8'#设置编码格式html=res.text#获取网页文本print(html)5.1.2BeautifulSoup网络数据采集

练习材料说明

为例便于讲解BeautifulSoup包的功能,本节不使用真实网页数据进行练习,而是使用以下html文本,文本存放在test_html.txt中。html="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"name="dromouse"><b>TheDormouse'sstory</b></p><pclass="story">Thereweretwolittlesisters;andtheirnameswere<ahref="/elsie"class="sister"id="link1">Elsie</a>and<ahref="/lacie"class="sister"id="link2">Lacie</a>.</p><pclass="story">...</p>"""5.1.2BeautifulSoup网络数据采集

创建BeautifulSoup对象

使用html.parser解析html文本内容,创建BeautifulSoup对象。frombs4importBeautifulSoupsoup=BeautifulSoup(html,'html.parser')5.1.2BeautifulSoup网络数据采集

根据标签名查找BeautifulSoup提供的select方法可以根据CSS选择器查找元素标签。查找结果存放在列表中,列表的每一个元素为匹配的元素标签,如果要访问标签可以使用列表的下标引用。

直接传递标签名给select方法,可以查找所有标签名相符的元素。soup.select('a')#查找所有a标签,结果为标签列表5.1.2BeautifulSoup网络数据采集

根据class或id查找

传递’.<class>’参数时,BeautifulSoup根据class属性进行查找;传递’#<id>’参数时,BeautifulSoup根据id属性进行查找。soup.select('.sister')5.1.2BeautifulSoup网络数据采集soup.select('#linke1')

根据上下级关系查找当查找条件之间用空格分隔时,以普通上下级关系进行查找;当查找条件之间以空格大于号空格分隔时,以直接上下级关系进行查找。soup.select('body#link1')5.1.2BeautifulSoup网络数据采集soup.select('p>a')

获取标签的内容

经过查找得到元素标签列表后,使用下标或迭代可以取出标签。然后可以进一步访问标签的内容,如文本、链接等。soup.select('a')[0]5.1.2BeautifulSoup网络数据采集>>>soup.select('a')[0].text#获取文本'Elsie‘>>>soup.select('a')[0]['href']#获取链接'/elsie'《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

数据预处理的意义与方法5.2.1数据预处理原理原始数据不一致重复不完整含噪声高维度数据预处理方法数据清洗数据集成数据变换数据归约

数据清洗5.2.1数据预处理原理干净数据填充空值、丢失值消除异常数据平滑噪声数据去掉数据中的噪音纠正不一致的数据

数据集成5.2.1数据预处理原理模式匹配整合不同数据源中的元数据。数据冗余数据中存在的直接冗余和间接冗余。数据值冲突对于一个现实世界实体,其来自不同数据源的属性值或许不同。

数据变换5.2.1数据预处理原理光滑去除数据中的噪声聚集对数据进行汇总或聚集数据泛化使用概念分层,用高层概念替换低层或“原始”数据规范化将属性数据按比例缩放,使之落入一个小的特定区间属性构造可以构造新的属性并添加到属性集中,以帮助挖掘过程

数据规约5.2.1数据预处理原理特征归约从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。样本归约从数据集中选出一个有代表性的样本的子集,从而减少成本、加快速度、拓宽范围、甚至提高精度。征值归约特将连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

Pandas简介Pandas是Python的一个数据分析包,Pandas中引入了两种新的数据结构:一维数组类型Series、二维表格类型DataFrame。Anaconda已经为我们安装好了Pandas,使用的时候只需要直接import就可以了。导入命令:importpandasaspd#导入pandas,并取个别名pd5.2.2Pandas数据预处理

练习用数据文件商品编号名称产地进价售价30101苹果新疆5630101苹果新疆5625211书包6010030102水晶梨浙江45.5商品编号名称产地进价售价30132凤梨广东7913704滑板车上海150200商品编号库存301011002521130301028030132401370415商品信息1.xlsx商品信息2.xlsx商品信息3.xlsx5.2.2Pandas数据预处理

读取数据文件Pandas提供了读取Excel文件的方法read_excel,参数中传递文件路径即可读取文件内容,并返回DataFrame类型的二维数据。

在数据文件存放路径新建程序文件data_preprocessing.py,在程序文件中添加以下代码读取数据。importpandasaspditem1=pd.read_excel('商品信息1.xlsx')item2=pd.read_excel('商品信息2.xlsx')item3=pd.read_excel('商品信息3.xlsx')print(item1)5.2.2Pandas数据预处理

重复值处理item1的前两行内容重复,可以使用Pandas的drop_duplicates方法去除重复项。item_drop_dup=item1.drop_duplicates()print(item_drop_dup)5.2.2Pandas数据预处理

删除缺失值item_drop_dup的第2行的产地列部分内容缺失,Pandas提供了直接删除缺失行/列的方法,使用dropna方法去除缺失项。item_dropna=item_drop_dup.dropna(axis=1)#axis=1表示删除列,0表示删除行print(item_dropna)5.2.2Pandas数据预处理

填充缺失值item_drop_dup的第2行的产地列部分内容缺失,除了dropna方法,还可以使用fillna方法填充缺失值,如下例直接填充固定值。item_fillna=item_drop_dup.fillna('未知')print(item_fillna)5.2.2Pandas数据预处理

字段抽取

商品编号中包含了商品品类信息,如30101的前3个字段表示品类。下面从item_drop_dup的商品编号截取字段,添加品类项。item_no=item_drop_dup['商品编号'].astype(str)#astype转换数据类型为stritem_drop_dup['品类']=item_no.str.slice(0,3)#截取前三个字段5.2.2Pandas数据预处理

记录抽取item_fillna数据中有多种商品信息,可以通过条件筛选取得进价在5元以上的商品信息。item_filter=item_fillna[item_fillna['进价']>=5]print(item_filter)5.2.2Pandas数据预处理《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群《大数据基础》.移动商务营销课程群5.2.1数据预处理原理5.2数据预处理5.2.2Pandas数据预处理与预处理数据采集大数据基础Unit5

按值排序item_fillna数据中有多种商品信息分布无序,可以通过排序进行重新整理。item_sorted=item_fillna.sort_values(by='进价',ascending=False)#by使用指定列的值进行排序,ascending指定排序方向5.2.2Pandas数据预处理

记录合并item_fillna和item2两组数据有不同商品信息,可以进行合并处理。item_concat=pd.concat([item_fillna,item2])#合并两组商品信息print(item_concat)5.2.2Pandas数据预处理

字段匹配合并item_concat和item3两组数据有不同的列属性,可以进行合并处理。item_merge=pd.merge(left=item_concat,right=item3,

left_on='商品编号',right_on='商品编号')5.2.2Pandas数据预处理

简单计算item_merge中的进价和库存,可以简单计算求得总成本。item_merge['总成本']=item_merge['进价']*item_merge['库存']print(item_merge)5.2.2Pandas数据预处理

数据标准化item_merge不同商品的库存,可以进行标准化处理。标准化是指将数据按照比例缩放,使之落入特定的区间,一般使用0-1标准化。公式如:X=(x-min)/(max-min)max_,min_=item_merge['库存'].max(),item_merge['库存'].min()item_scaled=(item_merge['库存']-min_)/(max_-min_)#标准化fororigin,scaledinzip(item_merge['库存'],item_scaled):print('{:>3d}->{:<5.2f}'.format(origin,scaled))#对比显示5.2.2Pandas数据预处理

数据分组item_merge中库存可以按段进行划分,即数据分组。数据分组:根据数据分析对象的特征,按照一定的数据指标,把数据划分为不同的区间来进行研究,以揭示其内在的联系和规律性。bins=[0,40,80,1000]#切分区间lbl=['少','正常','多']#[0-40)为少,[40-80)为正常,[80-1000)为多item_cut=pd.cut(item_merge['库存'],bins,right=False,labels=lbl)fororigin,cutinzip(item_merge['库存'],item_cut):print('{:>3d}->{}'.format(origin,cut))#对比显示5.2.2Pandas数据预处理《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练5-1单元5数据采集与预处理爬取二手房网站数据训练同步BigdataHadoop大数据基础pythonUnit5《大数据基础》.移动商务营销课程群训练5-1:爬取二手房网站数据案例目标程序访问二手房网站的房源信息页面,自动抓取最新的二手房信息并进行存储。案例解释使用BeautifulSoup抓取网页数据,内容涉及二手房的小区、户型、面积、单价、总价及链接。运行效果训练5-1:爬取二手房网站数据运行效果实现思路基本步骤按实训要求创建工程并配置环境。导入项目中用到的BeautifulSoup、requests、pandas包。二手房链接,:5000,获取网页内容并解码为文本格式,之后用html.parser解析为BeautifulSoup对象。使用浏览器的检查功能找到最新二手房列表对应的标签模式。使用BeautifulSoup的select方法获取元素标签列表,与网页内容进行对比验证。进一步使用select方法解析出第一套二手房的各项属性值。迭代处理所有30套二手房信息,将结果存放在列表中。将数据转换为DataFrame类型,使用to_excel方法存储数据。训练5-1:爬取二手房网站数据《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群与挖掘数据分析大数据基础Unit6《大数据基础》.移动商务营销课程群6.1.1数据分析简介6.1.2数据挖掘简介6.1.3pandas数据分析6.1数据分析与挖掘简介6.1.1数据分析简介1数据分析的定义数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。

数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。6.1.1数据分析简介2数据分析的分类

按统计学领域划分

描述性数据分析、探索性数据分析以及验证性数据分析。

描述性数据分析属于初级数据分析,常见的分析方法有对比分析法、平均分析法、交叉分析法。在日常学习和工作中涉及的数据分析主要是描述性数据分析。

探索性分析和验证性分析属于高级数据分析,常见的分析方法有相关分析、因子分析、回归分析等。探索性分析侧重于在数据中发现新的特征,验证性数据分析侧重于验证已有假设的真伪证明。6.1.1数据分析简介3数据分析的作用(1)现状分析(2)原因分析(3)预测分析就是告诉你过去发生了什么,一般通过日常通报完成,如日报、周报、月报等,开展频率频繁。就是在现状分析的基础上,就某一个特定现状为什么发生而发起的分析。比如:某年的2月份运营收入环比下降5%,是什么原因导致的?就是告诉你将来会发生什么。通常用于制定企业季度、年度计划等。开展频率低。6.1.1数据分析简介4数据分析流程(1)明确目的和思路数据分析必须有一个明确目的,再根据分析目的梳理分析思路,搭建分析框架,规划后续步骤所选择的分析方法等。(2)数据收集在明确目的和思路的基础上,有目的的收集必要的、可能来自多途径的数据。数据来源可能是数据库、公开出版物、互联网、市场调查等。但收集到的数据往往杂乱无章、难以理解、数量庞大。6.1.1数据分析简介4数据分析流程(3)数据处理对搜集的数据进行加工整理,形成对解决问题、数据分析有价值的数据。数据处理的方法包括数据清洗、数据转化、数据提取、数据计算等。(4)数据分析数据处理过后,就会依据分析目的和思路,选用合适的数据分析方法对数据开展分析。一般的数据分析可以通过excel完成,高级数据分析就要采用如专业分析软件spss、或python数据分析库等进行。6.1.1数据分析简介4数据分析流程(5)数据展现数据分析结果通过图、表进行可视化展现。一般情况下,能用图说明问题的就不要用表格,能用表格说明问题的不要用文字。(6)报告撰写数据分析报告把起因、过程、结果及建议完整的呈现出来,供决策者参考。报告通过对数据全方位的科学分析来评估运营质量,为决策者提供科学、严谨的决策依据,以降低企业运营风险,提高企业核心竞争力。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群与挖掘数据分析大数据基础Unit6《大数据基础》.移动商务营销课程群6.1.1数据分析简介6.1.2数据挖掘简介6.1.3pandas数据分析6.1数据分析与挖掘简介6.1.2数据挖掘简介1数据挖掘的定义数据挖掘是指从大量的数据中,通过统计学、人工智能、机器学习等方法,挖掘出未知的、且有价值的信息和知识的过程。数据分析可以分为广义的数据分析和狭义的数据分析。上一节所讲的数据分析就是狭义的数据分析,而广义的数据分析还包括数据挖掘。6.1.2数据挖掘简介2数据分析与数据挖掘的比较

相同点数据分析与数据挖掘的本质都是一样的,都是从数据里面发现关于业务的知识、有价值的信息,从而帮助业务运营、改进产品以及帮助企业做更好的决策,所以数据分析与数据挖掘一起构成了广义的数据分析。6.1.2数据挖掘简介2数据分析与数据挖掘的比较

目的的不同数据分析有明确的目标,先假设数据存在某种模型,然后通过统计分析方法来验证假设是否正确,或者有明确的统计指标,使用统计分析方法来得到这些指标值,从而结合业务得出结论。数据挖掘是事先对于数据中的模型难以假设,通过数据挖掘算法寻找未知的模型。6.1.2数据挖掘简介2数据分析与数据挖掘的比较

方法的不同数据分析会采用对比分析、分组分析、交叉分析、回归分析等常用统计分析方法。数据挖掘会采用决策树、关联规则、聚类、分类、神经网络等统计学、人工智能算法、机器学习算法等方法。6.1.2数据挖掘简介2数据分析与数据挖掘的比较

结果的不同数据分析一般都得到一些统计量结果,如总和、平均值等,这些数据都需要与业务结合进行解读,才能发挥出数据的价值。数据挖掘会输出挖掘到的模型,这个模型会被应用到对新的数据的预测上。6.1.2数据挖掘简介3数据挖掘的流程明确目的和思路数据收集数据处理构建模型模型评价模型发布数据分析流程:明确目的和思路->数据收集->数据处理->数据分析->数据展现->报告撰写6.1.2数据挖掘简介模型训练数据挖掘算法选择训练数据集模型评价测试数据集输入算法输入评估模型好不好?不好模型发布好新的数据输入预测结果输出4数据挖掘的模型创建过程《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群与挖掘数据分析大数据基础Unit6《大数据基础》.移动商务营销课程群6.1.1数据分析简介6.1.2数据挖掘简介6.1.3pandas数据分析6.1数据分析与挖掘简介6.1.3pandas数据分析1统计方法

Pandas库是进行数据预处理的强有力工具,也是开展数据分析的强有力工具。Pandas的DataFrame或Series对象都提供了大量的统计方法,用于实现数值型数据的各类型统计运算,注意这些方法都自动忽略缺失值。

常见的统计方法有统计个数count、最大值max、最小值min,总和sum、平均值mean,方差var和标准差std等。例如:data=pd.Series([2,3,5,7,11,13,17,19])

data.mean()6.1.3pandas数据分析2分组统计

前面的统计方法能够让我们对Series类型的一列数值型数据有个比较笼统的认识,但要呈现丰富的描述性数据分析,就需要开展分组统计。

分组统计需要有一个被分组的数据集,主要是数值类型的Series对象,分组统计还需要选择合适的标签作为分组键,作为分组键的数据会选用能够呈现类别的Series对象。6.1.3pandas数据分析2分组统计

如图所示,图中最左侧两列数据分别是分组键和待分组数据,分组统计需要经过拆分、应用、合并3个步骤:

第一步,根据分组键进行拆分,将同一个键的数据合并成小的数据集。

第二步,根据分析需要,对每个小的数据集选用一个统计分析方法,这就是应用,最终,每个小的数据集各会得到一个统计值。

第三步,最后是合并,将各组的统计值合并在一起。6.1.3pandas数据分析2分组统计pandas的DataFrame或Series对象都提供了方法groupby用于处理分组,返回一个DataFrameGroupBy或SeriesGroupBy对象,它的基本格式为:

DataFrame.groupby(by,….)或Series.groupby(by,…)其中DataFrame或Series对象是待分组的数据集,都能调用方法groupby,方法内的参数by是分组键。例如:data=pd.Series([0,5,10,5,10,15,10,15,20])key=pd.Series([‘A’,‘B’,‘C’,‘A’,‘B’,‘C’,‘A’,‘B’,‘C’])data.groupby(key).sum()《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群与挖掘数据分析大数据基础Unit6《大数据基础》.移动商务营销课程群6.2.1数据挖掘算法分类6.2.2数据挖掘算法典型应用6.2数据挖掘常用算法6.2.1数据挖掘算法分类1数据挖掘算法概述在数据挖掘的模型创建过程中,数据挖掘算法在模型训练中起到了非常重要的作用。国际权威的学术组织theIEEEInternationalConferenceonDataMining(ICDM)在2006年12月评选出了数据挖掘领域的十大经典算法:C4.5,k-Means,SVM,Apriori,EM,PageRank,AdaBoost,kNN,NaiveBayes,和CART。其实参加评选的18种算法,随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。

还有很多数据挖掘算法在特定场合下发挥着作用。6.2.1数据挖掘算法分类是指对数据的若干特征与若干标签之间的关联性进行建模的过程。包括分类、回归两大类算法。例如:描述一个人的身高、体重是特征、是否肥胖是标签。有监督学习是指对只带若干特征而不带任何标签的数据进行建模,去分析数据本身的内在特点和结构。包括聚类、降维两大类算法。例如:只描述一个人的身高和体重。无监督学习介于有监督学习和无监督学习之间,通常用在数据标签不完整的情况。包括了半监督分类、半监督回归、半监督聚类、半监督降维算法。

半监督学习2数据挖掘常用算法的分类6.2.1数据挖掘算法分类3有监督学习算法划分分类回归12有监督学习算法划分分类任务中,标签都是离散值。比如决策树算法、朴素贝叶斯算法等。回归任务中,标签都是连续值。比如线性回归算法等。6.2.1数据挖掘算法分类4无监督学习算法划分聚类降维12无监督学习算法划分聚类任务中,没有标签,主要是将数据分成不同的组别。如kmeans聚类算法等。降维任务,主要是为了用更简洁的方式表示数据。如主成分分析等。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群与挖掘数据分析大数据基础Unit6《大数据基础》.移动商务营销课程群6.2.1数据挖掘算法分类6.2.2数据挖掘算法典型应用6.2数据挖掘常用算法6.2.2数据挖掘算法典型应用问题描述:已知某银行的一批用户数据,涉及贷款申请情况,包含年龄、是否有工作、是否有房子、信用等级等4个特征,而是否允许贷款申请(只有两个离散值,Yes或No)构成了1个标签。当有一个新的贷款申请者提供了4个特征的值,请构建模型预测是否会允许贷款?1有监督学习之分类算法案例6.2.2数据挖掘算法典型应用问题描述:已知坐标系的点的坐标(x,y)表示的分别是面积为x的房屋的销售价格是y。现有一批点表示不同面积的房屋的销售价格。当有一个新的房屋面积为X,请构建模型预测销售价格Y?(注:房屋面积是特征、价格是标签,且价格是连续值。)2有监督学习之回归算法案例6.2.2数据挖掘算法典型应用问题描述:如果坐标系的点的坐标(x,y)仍旧表示的分别是面积为x的房屋的销售价格是y。x,y都看成特征。现有一批点表示不同面积的房屋销售价格时,那么,可以通过什么方式将这批房屋分成3组呢?(注:x,y都是特征,没有标签)3无监督学习之聚类算法案例6.2.2数据挖掘算法典型应用4无监督学习之降维算法案例问题描述:已知某银行的一批用户数据,包含年龄、是否有工作、是否有房子、信用等级等4个特征,没有标签。假设为了减少分析的复杂度和减少存储容量,试分析能否在保留较大的有效信息的情况下,删除一个字段?6.2.2数据挖掘算法典型应用5用scikit-Learn实现KNN分类应用《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练6-1单元6数据分析与挖掘python电商统计分析训练同步Bigdataeclipseeclipse大数据基础pythonUnit6《大数据基础》.移动商务营销课程群训练6-1:python电商数据分析训练目标已知某电商公司在2010-2013年的销售数据表(含6000条数据),试分析历年的销售总额和利润的总额。训练解释基于python数据分析,分别统计2010-2013年间每年的销售总额和利润总额。案例效果实现思路基本步骤按实训要求准备好销售数据表,存放的路径设定为D:/销售数据.xlsx打开Anaconda的Spyder,并选择Ipythonconsol,在控制台依据命令行依次操作。(1)导入包pandas。

(2)导入销售数据表为DataFrame对象。(3)从“发货日期”抽取“年份”。

(4)依据“年份”分组统计销售总额和利润总额。(5)将统计的各年份的销售总额和利润总额输出显示。训练6-1:python电商数据分析《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群数据可视化大数据基础Unit7《大数据基础》.移动商务营销课程群7.1.1什么是数据可视化7.1数据可视化7.1.2可视化的重要作用7.1.1什么是数据可视化1数据可视化

现状:随着互联网技术的发展,尤其是移动互联网技术的发展,网络空间的数据量呈现出爆炸式增长。问题:如何从这些数据中快速获取自己想要的信息,并以一种直观、形象的方式展现出来?

数据可视化直观形象的展示数据7.1.1什么是数据可视化1数据可视化是一门关于数据视觉表现形式的科学技术研究指借助于图形化手段传达信息,对数据进行交互分析通过图表形式展现数据,帮助用户快速、准确理解信息2数据可视化的基本特征易懂性:可视化使得碎片化的数据转换为具有特定结构的知识,从而为决策支持提供帮助必然性:大数据所产生的数据量必然要求人们对数据进行归纳总结,对数据的结构和形式进行转换处理片面性:数据可视化的片面性特征要求可视化模式不能替代数据本身,只能作为数据表达的一种特定形式专业性:专业化特征是人们从可视化模型中提取专业知识的环节,它是数据可视化应用的最后流程7.1.1什么是数据可视化《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit7《大数据基础》.移动商务营销课程群7.1.1什么是数据可视化7.1数据可视化7.1.2可视化的重要作用数据可视化1数据可视化的作用

数据可视化的作用主要包括数据表达、数据操作和数据分析等三个方面。数据表达:表达数据,方便人们阅读、理解和运用数据。

7.1.2可视化的重要作用可视化数据表达利用系列线型图来可视化展示某网站的运营推广数据7.1.2可视化的重要作用1数据可视化的作用数据操作

数据操作是以计算机提供的界面、接口、协议等条件为基础完成人与数据的交互需求,数据操作需要友好的人机交互技术、标准化的接口和协议支持来完成对多数据集合或者分布式的操作。

数据分析

数据可视化是数据分析和机器学习的重要环节,比如数据清洗、特征工程、机器学习、数据分析、评估等环节都会用到“数据可视化”技术。7.1.2可视化的重要作用7.2.3

Matplotlib数据可视化可视化数据分析在本例图中,我们展示出了如何通过数据可视化工具来分析数据。上面四张子图分别展示了两个数据集中数据间的相关关系。7.1.2可视化的重要作用《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit7《大数据基础》.移动商务营销课程群7.2.1ECharts数据可视化7.2可视化工具7.2.2PyECharts数据可视化7.2.3Matplotlib数据可视化数据可视化7.2.1ECharts数据可视化1Echarts简介ECharts已经可以支持包括折线图、柱状图、散点图、K线图、饼图、雷达图、地图等图表,同时提供标题、图例、值域、时间轴、工具箱等可交互组件,支持多图表、组件的联动和混搭展现。

ECharts制作的图表7.2.1ECharts数据可视化2数据可视化来源访问(次)视频广告300搜索引擎1048邮件580联盟广告484……某网站访问来源相关数据样例

接下来,我们通过对某个网站的访问来源相关的数据进行可视化,来详细介绍一下ECharts的使用方法。如右图所示是这个网站的访问来源的数据样例。7.2.1ECharts数据可视化数据可视化展示在本例中,我们利用Echarts实现了某站点访问来源的数据可视化展现,展现结果如上图所示。7.2.1ECharts数据可视化数据可视化展示

点击右侧工具箱中的数据视图按钮,可以得到数据视图页面,展示效果如上图所示。7.2.1ECharts数据可视化

vardom=

document.getElementById('container');varmyChart=echarts.init(dom,null,{renderer:'canvas',useDirtyRect:false});varoption;option={title:{text:'某站点访问来源',subtext:'测试数据',left:'center'},tooltip:{trigger:'item'},

示例程序toolbox:{show:true,orient:'vertical',x:'right',y:'center',feature:{mark:{show:true},dataView:{show:true,readOnly:false}}},legend:{orient:'vertical',left:'left'},7.2.1ECharts数据可视化series:[{name:'访问来源',type:'pie',radius:'50%',data:[{value:1048,name:'搜索引擎'},{value:735,name:'直接访问'},{value:580,name:'邮件'},{value:484,name:'联盟广告'},{value:300,name:'视频广告'}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:'rgba(0,0,0,0.5)'}}}]};示例程序

if(option&&typeofoption==='object'){myChart.setOption(option);}window.addEventListener('resize',myChart.resize);《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit7《大数据基础》.移动商务营销课程群7.2.1ECharts数据可视化7.2可视化工具7.2.2PyECharts数据可视化7.2.3Matplotlib数据可视化数据可视化7.2.2PyECharts数据可视化1PyEcharts简介PyEcharts是一个用于生成Echarts图表的类库,实际上就是Echarts与Python的对接PyECharts同样支持Echarts中各类图表的绘制

7.2.2PyECharts数据可视化2数据可视化使用PyECharts展示2011年全国GDP数据的图表。如图所示是2011年全国GDP数据。城市GDP(亿元)西藏605.83青海1

670.44宁夏2102.21海南2522.66……2011年中国全国GDP

7.2.2PyECharts数据可视化importrefrompyechartsimportMap#省和直辖市province_distribution={'河南':26931.03,'北京':16251.93,'河北':24515.76,'辽宁':22226.7,'浙江':32318.85,……}provice=list(province_distribution.keys())values=list(province_distribution.values())map=Map("2011年全国GDP数据",'2011年全国GDP数据',width=600,height=300)map.add("ChinaMap",provice,values,visual_range=[0,50],maptype='china',is_visualmap=True,visual_text_color='#000')map.render(path="2011年全国GDP数据.html")示例程序7.2.2PyECharts数据可视化数据可视化展示结果在本例中,我们利用PyEcharts实现了2011年全国各地区GDP数据的展示。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit7《大数据基础》.移动商务营销课程群7.2.1ECharts数据可视化7.2可视化工具7.2.2PyECharts数据可视化7.2.3

Matplotlib数据可视化数据可视化7.2.3

Matplotlib数据可视化1Matplotlib简介Matplotlib是一个Python绘图库。只需几行代码即可生成柱状图,直方图,功率谱,条形图,极线图,饼图,散点图等。

7.2.3

Matplotlib数据可视化数据可视化使用Matplotlib绘制折线图、柱状图、水平柱状图、堆积柱状图、箱线图、散点图。7.2.3

Matplotlib数据可视化frommatplotlib.pyplotimport*x=[1,2,3,4]y=[5,4,3,2]figure()#线形图subplot(231)plot(x,y)#柱状图subplot(232)bar(x,y)#水平柱状图subplot(233)barh(x,y)示例程序#堆积柱状图subplot(234)bar(x,y)y1=[7,8,5,3]bar(x,y1,bottom=y,color='r')#绘制箱型图subplot(235)boxplot(x)#绘制散点图subplot(236)scatter(x,y)7.2.3

Matplotlib数据可视化数据可视化使用Matplotlib可视化某在线教育网站教程点击量数据7.2.3

Matplotlib数据可视化importmatplotlib.pyplotaspltx_data=['2013','2014','2015','2016','2017','2018','2019']#定义2个列表分别作为两条折线的Y轴数据y_data=[58000,60200,63000,71000,84000,90500,107000]y_data2=[52000,54200,51500,58300,56800,59500,62700]#指定折线的颜色、线宽和样式plt.plot(x_data,y_data,color='red',linewidth=2.0,linestyle='--',label='Java基础')示例程序plt.plot(x_data,y_data2,color='blue',linewidth=3.0,linestyle='-.',label='Python基础')#用来正常显示中文plt.rcParams['font.sans-serif']=['SimHei']#调用legend函数设置图例plt.legend(loc='best')#设置两条坐标轴的名字plt.xlabel("年份")plt.ylabel("教程点击量")#设置数据图的标题plt.title('某在线教育网站教程点击量')7.2.3

Matplotlib数据可视化#设置Y轴上的刻度值#第一个参数是点的位置,第二个参数是点的文字提示plt.yticks([50000,100000,150000],[r'良好',r'优秀',r'火爆'])ax=plt.gca()#设置将X轴的刻度值放在底部X轴上ax.xaxis.set_ticks_position('bottom')#设置将Y轴的刻度值放在左边轴上ax.yaxis.set_ticks_position('left')#设置右边坐标轴线的颜色(设置为none表示不显示)ax.spines['right'].set_color('none')示例程序#设置顶部坐标轴线的颜色(设置为none表示不显示)ax.spines['top'].set_color('none')#定义底部坐标轴线的位置(放在100000数值处)ax.spines['bottom'].set_position(('data',100000))#调用show()函数显示图形plt.show()《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练

7-1单元7

数据可视化利用PyECharts展示电商交易数据训练同步BigdataHadoop大数据基础pythonUnit7《大数据基础》.移动商务营销课程群训练

7-1:利用PyECharts展示电商交易数据案例目标程序根据用户输入的电商交易数据,按要求绘制出可视化图表,用于展示、分析交易数据。案例解释用户输入两个经过处理后的列表,列表1为商品名称列表,列表2为交易成功数量列表,分别绘制出柱状图、饼图等。运行效果实现思路基本步骤配置PyECharts做数据可视化的工程环境,我们这里使用jupyter编写程序

接收经过清洗的商品交易数据

(1)定义列表变量用于保存商品名称数据。

(2)定义列表变量用于保存商品交易量数据。

(3)调用PyECharts库的add方法。训练7-1:利用PyECharts展示电商交易数据3.输出结果:(1)用柱状图展示交易数据。(2)用饼图展示各商品交易数量所占总体交易数量的比例。运行效果实现思路柱状图:训练7-1:利用PyECharts展示电商交易数据运行效果实现思路饼图:训练7-1:利用PyECharts展示电商交易数据《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练

7-2单元7

数据可视化利用Matplotlib展示死亡谷地区气温变化训练同步BigdataHadoop大数据基础pythonUnit7《大数据基础》.移动商务营销课程群训练

7-2:利用Matplotlib展示死亡谷气温变化案例目标文件sitka_weather_07-2014.csv是2014年七月死亡谷的气温数据,编写程序读取csv文件并对其进行数据可视化。案例解释读取

温馨提示

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

评论

0/150

提交评论