基于Python的世界各个国家的幸福度的公开数据集的数据挖掘

目录
一. 问题背景 1
二. 准备工作 2
三. 具体实施 2
1.数据存储及基本加载 2

数据整理到数组之中 2

2.数据清洗 2
① 多余列清除 2
② 列属性归一 3
③ 空值处理 4
3.数据挖掘算法 6
① 基本特征 6
② 总体热力图分析 7
③ 对指定数据的热力图分析 8
④ 离散图分析 9
⑤ 点线图分析经济与健康横向对比 10
⑥ 地区划分得到幸福度指数 12
⑦ 深究每个地区的最大因素: 15
四. 总结汇总 16
一.问题背景
《世界幸福报告》是对全球幸福状况的一次里程碑式的调查。第一份报告于2012年发布,第二份于2013年发布,第三份于2015年发布,第四份报告于2016年更新。3月20日,在联合国举行的庆祝国际幸福日的活动上,根据155个国家的幸福水平,发布了《2017年世界幸福》。随着各国政府、组织和民间社会越来越多地使用幸福指数来指导其决策,该报告继续得到全球的认可。经济学、心理学、调查分析、国家统计、卫生、公共政策等领域的权威专家描述了如何有效地利用幸福感来评估国家的进步。这些报告回顾了当今世界的幸福状况,并展示了新的幸福科学如何解释个人和国家在幸福方面的差异。
二.准备工作
小组选择的公开数据集为kaggle上的公开数据集Factors affecting happiness,即一个关于各个国家的幸福度的公开数据集,从2015-2019每一年都有一个数据集。列出了各个国家的幸福度指数,经济情况,健康,宗教信仰,家庭等。
三.具体实施
1.数据存储及基本加载
1)原理分析
通过os库提供的getcwd方法返回当前工作目录,后面跟上每个数据集的相对路径,得到每个数据集的路径。而为open方法指定路径以及编码方式(此处为utf-8)即可获取到数据集文件。同样地,pandas库也为我们提供了专为csv文件提供的读取方法read_csv。为了后续的方便整理和调用,这里将每一年的数据全部放到一个数组之中,通过对下标的引用即可获取到数据集。
本文转载自:http://www.biyezuopin.vip/onews.asp?id=16524

import matplotlib.pyplot as plt# 定义matplotlib的字体
# plt.rcParams['font.sans-serif'] = ['Droid Sans Fallback']
# boxstyle为文本框的类型,sawtooth是锯齿形,fc是边框线粗细,也可写作 decisionNode={boxstyle:'sawtooth',fc:'0.8'}
decisionNode = dict(boxstyle="round", fc="0.8")
# 定义决策树的叶子结点的描述属性
leafNode = dict(boxstyle="circle", fc="0.8")
# 定义决策树的箭头属性
arrow_args = dict(arrowstyle="<-")
plt.rcParams['font.sans-serif'] = ['KaiTi']# nodeTxt为要显示的文本,centerPt为文本的中心点,箭头所在的点,parentPt为指向文本的点def plotNode(nodeTxt, centerPt, parentPt, nodeType):createPlot.ax1.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction',xytext=centerPt, textcoords='axes fraction',va="bottom", ha="center",bbox=nodeType, arrowprops=arrow_args)# 获取叶节点的数目
def getNumLeafs(myTree):# 定义叶子结点数目numLeaf = 0# 得到根据第一个特征分类的结果nodes = myTree.child_nodes# 遍历得到的子节点for node in nodes:# 如果node为一个决策树结点,非子节点if node.child_nodes:# 则递归的计算nodes中的叶子结点数,并加到numLeafs上numLeaf += getNumLeafs(node)else:numLeaf += 1# 返回求的叶子结点数目return numLeaf# 获取树的层数
def getTreeDepth(myTree):# 定义树的深度maxDepth = 0# 得到第一个特征分类的结果nodes = myTree.child_nodesfor node in nodes:# 如果node为一个决策树结点if node.child_nodes:thisDepth = 1 + getTreeDepth(node)# 如果node为一个决策树结点,非子节点else:# 则将当前树的深度设为1thisDepth = 1# 比较当前树的深度与最大数的深度if thisDepth > maxDepth:maxDepth = thisDepth# 返回树的深度return maxDepth# 绘制中间文本
def plotMidText(cntrPt, parentPt, txtString):# 求中间点的横坐标xMid = (parentPt[0] - cntrPt[0]) / 2.5 + cntrPt[0]# 求中间点的纵坐标yMid = (parentPt[1] - cntrPt[1]) / 2.5 + cntrPt[1]# 绘制树结点createPlot.ax1.text(xMid, yMid, txtString)# 绘制决策树
def plotTree(myTree, parentPt, nodeTxt):# 定义并获得决策树的叶子结点数numLeafs = getNumLeafs(myTree)# 得到第一个特征firstStr = myTree.keyword# 计算坐标,x坐标为当前树的叶子结点数目除以整个树的叶子结点数再除以3,y为起点cntrPt = (plotTree.xOff + (1.0 + numLeafs) /len(myTree.child_nodes) / plotTree.totalW, plotTree.yOff)# 绘制决策树结点,也是当前树的根结点if parentPt == (0, 0):parentPt = cntrPtplotMidText(cntrPt, parentPt, nodeTxt)plotNode(firstStr, cntrPt, parentPt, decisionNode)# 根据第一个特征找到子节点nodes = myTree.child_nodes# 因为进入了下一层,所以y的坐标要变 ,图像坐标是从左上角为原点plotTree.yOff = plotTree.yOff - 1.0 / plotTree.totalD# 遍历字节带你for node in nodes:# 如果node为一棵子决策树,非叶子节点if node.child_nodes:# 递归的绘制决策树plotTree(node, cntrPt, node.parent)# node为叶子结点else:# 计算叶子结点的横坐标plotTree.xOff = plotTree.xOff + 1.0 / plotTree.totalW# 绘制叶子结点plotNode(node.keyword, (plotTree.xOff,plotTree.yOff), cntrPt, leafNode)# 特征值plotMidText((plotTree.xOff, plotTree.yOff), cntrPt, node.parent)# 计算纵坐标plotTree.yOff = plotTree.yOff + 1.0 / plotTree.totalD# 主函数 绘图
def createPlot(inTree):# 定义一块画布fig = plt.figure(1, facecolor='white')# 清空画布fig.clf()# 定义横纵坐标轴,无内容axprops = dict(xticks=[], yticks=[])# 绘制图像,无边框,无坐标轴createPlot.ax1 = plt.subplot(111, frameon=False, **axprops)# plotTree.totalW保存的是树的宽plotTree.totalW = float(getNumLeafs(inTree))# plotTree.totalD保存的是树的高plotTree.totalD = float(getTreeDepth(inTree))# 决策树起始横坐标plotTree.xOff = -0.5 / plotTree.totalW# 决策树的起始纵坐标plotTree.yOff = 1.0# 绘制决策树plotTree(inTree, (0, 0), '')# 显示图像plt.savefig('tree.jpg')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53869.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【博览群书】《实战大数据》——属于我的第一本大数据图书

文章目录 前言简介目录其他 前言 Hello家人们&#xff0c;博主前不久参加了CSDN图书馆和机械工业出版社联合举办的图书类活动&#xff0c;很荣幸在活动中获得了属于自己的第一本大数据图书&#xff0c;《实战大数据—— 分布式大数据分析处理系统开发与应用》。作为大数据专业…

大数据与AI的16个实践分享

↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习&#xff0c;不错过 Datawhale活动 主办方&#xff1a;DataFun&#xff0c;指导单位&#xff1a;北京智源研究院 文章作者&#xff1a;Hoh Xil 出品平台&#xff1a;DataFunTalk 导读&#xff1a;12.19-20&…

用最诙谐的语言提升你对大数据的认知

写在前面 本文隶属于专栏《100个问题搞定大数据理论体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见100个问题搞定大数据理论体系 引子 小明又来了~ …

大数据平台技术回忆版

liu老师当时也没给我们怎么画重点 我主要是到mooc上面 还有刷题软件上找了题做做 确实有原题 怎么说呢 光看ppt是不太行的 因为有的知识点出的很细。 可以到刷题神器上看看做做题 简单举几个例子 比如这种是吧 选择题跟判断题也是到网上找找题做 确实碰到了原题目 是吧 …

hahabet05:com浅谈大数据一之认识大数据

浅谈大数据一之认识大数据 ***数据&#xff0c;相信在大部分人的脑海中会有一个大概的意识。没错&#xff0c;数据并不是一个新的概念&#xff0c;在这几天年的发展中&#xff0c;人类一直在利用着数据做着记录&#xff0c;而数据的价值&#xff0c;特别是大数据的价值却是近几…

话题讨论征文--谈论大数据时我们在谈什么 获奖名单公布

从社会发展趋势的角度&#xff0c;很明显大数据会是目前肉眼可及的视野范围里能看到的最大趋势之一。从传统IT 业到互联网、互联网到移动互联网&#xff0c;从以智能手机和Pad 为主要终端载体的移动互联网到可穿戴设备的移动互联网&#xff0c;然后再到万物互联的物联网&#x…

从图像处理到语音识别,25款数据科学家必知的深度学习开放数据集

选自Analytics Vidhya&#xff0c;作者&#xff1a;Pranav Dar&#xff0c;机器之心编译。 本文介绍了 25 个深度学习开放数据集&#xff0c;包括图像处理、自然语言处理、语音识别和实际问题数据集。 介绍 深度学习&#xff08;或生活中大部分领域&#xff09;的关键在于实践…

程序人生 - 祝贺登榜《大数据领域内容榜》NO.20

博客文章传送门&#xff1a;LeetCode&#xff08;数据库&#xff09;- 报告系统状态的连续日期

【大数据模型】LeonardoAi让心中所想跃然纸上

汝之观览&#xff0c;吾之幸也&#xff01; 本文主要聊聊LeonardoAi绘图工具 一、注册Discord账号 不管LeonardoAi还是midjourney&#xff0c;都需要注册一个Discord账号&#xff0c;Discord是一个社区软件&#xff0c;在这里可以进行讨论和交流使用心得 LeonardoAi官网地址 …

《数据分析咖哥十话》包邮送3本

文末留言包邮送三本 小雪求职记 入秋以来&#xff0c;市场就开始不景气&#xff0c;我们的女主人公小雪从一家互联网公司的运营岗毕&#xff08;cai&#xff09;业&#xff08;yuan&#xff09;以来&#xff0c;三个月都没接到任何面试。冬天到了&#xff0c;表姐小冰告诉她&am…

微信小程序通讯地址授权拒绝后的处理方式

在小程序开发时&#xff0c;在用户拒绝获取通讯地址的授权后&#xff0c;在一段时间内将无法在弹出授权提示导致无法获取通讯地址。通过看微信的api文档&#xff0c;发现其中有一个wx.openSetting()方法可以打开设置页面进行授权。但wx.openSetting()方法打开的设置页面只能显示…

微信第三方平台对接小程序发版

微信第三方平台对接小程序发版&#xff08;工作笔记&#xff09; 微信第三方平台是商家把公众号或小程序代交给服务商来管理&#xff0c;当商家把小程序授权给第三方平台后&#xff0c;同时授权小程序开发与数据分析&#xff0c;小程序后台就无法发版&#xff0c;必须开发人员…

针对小程序wx.getUserProfile接口将被收回后做出的授权调整

小程序文档中提出的调整说明 调整说明: 自 2022 年 10 月 25 日 24 时后&#xff08;以下统称 “生效期” &#xff09;&#xff0c;用户头像昵称获取规则将进行如下调整&#xff1a; 自生效期起&#xff0c;小程序 wx.getUserProfile 接口将被收回&#xff1a;生效期后发布…

【微信小程序】图片违法违规内容鉴别

微信小程序通过云调用校验一张图片是否含有违法违规内容。官方参考文档 选择图片 wx.chooseImage({count: 6,sizeType: [compressed], // 可以指定是原图还是压缩图&#xff0c;默认二者都有sourceType: [album, camera], // 可以指定来源是相册还是相机&#xff0c;默认二者都…

小度智能音箱=高灵敏度窃听器

智能音箱的运行原理&#xff1a;录制用户房间的声音&#xff0c;上传至百度语音识别服务器&#xff0c;语音识别服务器根据识别结果向用户反馈相应的语音内容。 手机APP无时不刻都在窃取用户信息&#xff0c;那么智能音箱呢&#xff1f; 智能的音箱的原理决定着音箱自身无时不…

小度和天猫精灵哪个好?这次我站小度

之前家里已经有一个天猫精灵了在客厅&#xff0c;想买一个智能音箱放在卧室&#xff0c;然后就入手了一个小度在家。以前只有一个音箱没有对比&#xff0c;也就没有伤害&#xff0c;但是两个音箱都在家使用&#xff0c;才知道原来还是小度在家要好很多。 首先就说音质吧&…

亲测89元小度智能音箱,这或许是国民级智能音箱应有的姿态

作者&#xff5c;震霆 出品&#xff5c;遇见人工智能 公众号&#xff5c;GOwithAI 会场突然好一阵躁动&#xff0c;仔细一看&#xff0c;原来是蔡康永来了&#xff01; ▲图注&#xff1a;蔡康永现身“小度智能音箱发布会” 他来干嘛&#xff1f;难道不是走错…

小度C1可以改语言吗,小度音箱怎么更改唤醒词

小度音箱行业版2.3.6安卓版 类型&#xff1a;生活服务大小&#xff1a;13.6M语言&#xff1a;中文 评分&#xff1a;5.0 标签&#xff1a; 立即下载 小度音箱是通过语音进行唤醒的&#xff0c;唤醒词是默认的&#xff0c;用户说唤醒词来唤醒小度音箱&#xff0c;有小伙伴想更改…

大学里挂了一科MySQL_那些在大学中,学生容易“挂科”的科目,学生:挂柯南也帮不了我...

文/ 高中时期的课业繁重&#xff0c;为了考上家长和老师口中&#xff0c;大学中的“伊甸园”&#xff0c;为此很多学生不得不背负沉重的学习压力努力向前。 记得上高中的时候&#xff0c;上学的压力很大&#xff0c;而家长和老师总是将大学描绘的“生动多彩”。于是我们看着理想…

linux shell两条命令,Linux最常用的18个Shell命令

有些人仍然会有这中愚蠢的想法&#xff0c;他们认为使用Linux就必须使用Linux shell命令。胡说&#xff01;你可以不懂得任何Linux命令&#xff0c;比如说ps&#xff0c;grep&#xff0c;ls等&#xff0c;但是你仍然可以使用很多现代的Linux桌面发行版。 Linux的系统管理员与桌…