python数据分析(DOC46)

上传人:muj****520 文档编号:156903516 上传时间:2022-09-28 格式:DOC 页数:46 大小:834.50KB
收藏 版权申诉 举报 下载
python数据分析(DOC46)_第1页
第1页 / 共46页
python数据分析(DOC46)_第2页
第2页 / 共46页
python数据分析(DOC46)_第3页
第3页 / 共46页
资源描述:

《python数据分析(DOC46)》由会员分享,可在线阅读,更多相关《python数据分析(DOC46)(46页珍藏版)》请在装配图网上搜索。

1、Evaluation Warning:The document was created with Spire.Doc for.NET.pythonpython 数据分析数据分析(pandaspandas)几年后发生了。在使用 SAS 工作超过 5 年后,我决定走出自己的舒适区。作为一个数据科学家,我寻找其他有用的工具的旅程开始了!幸运的是,没过多久我就决定,Python 作为我的开胃菜。我总是有一个编写代码的倾向。这次我做的是我真正喜欢的。代码。原来,写代码是如此容易!我一周内学学会了 Pytho on 基础。并且且,从那时起起,我不仅深深度探索了这这门语言,而而且也帮助了了许多人学习习这门语

2、言。Pytho on 是一种通用用语言。但是是,多年来,具具有强大的社社区支持,这这一语言已经经有了专门的的数据分析和和预测模型库库。由于 Pyt thon 缺乏数据科科学的资源,我我决定写这篇篇教程来帮助助别人更快地地学习 Pytho on。在本教程程中,我们将将讲授一点关关于如何使用用Pytho on 进行数据分分析的信息,咀咀嚼它,直到到我们觉得舒舒适并可以自自己去实践。目录目录1.数据分析析的 Pytho on 基础o为什么学 Pyt thon 用来数据分分析oPython 2.7 v v/s 3.4o怎样安装 Pyt thono在 Python n 上运行一些些简单程序2.Pyth

3、hon 的库和数据据结构oPython 的的数据结构oPython 的的迭代和条件件结构oPython 库库3.在 Pyt thon 中使用 Panda as 进行探索性性分析o序列和数据框的的简介o分析 Vidhy ya 数据集贷款的预测测问题4.在 Pyt thon 中使用 Panda as 进行数据再再加工5.使用 Py ython 中建立预测测模型o逻辑回归o决策树o随机森林让我们开始吧1.1.数据分析数据分析的的的的 PythPytho o onon 基础基础为什么学为什么学 PyPyt t thonthon 用来数据用来数据分分分析分析很多人都有有兴趣选择Pytho on作为数据分

4、分析语言。这这一段时间以以来,我有比比较过 SAS 和 R。这里有一一些原因来支支持学习 Pytho on:开源免费安安装极好的在线社区区很容易学习可以成为一种通通用的语言,用用于基于 Web 的分析产品品数据科学和和生产中。不用说,它它仍然有几个个缺点:它是一种解释性性的语言,而而不是编译的的语言,因此此可能占用更更多的 CPU 时间。然而而,由于它节节省了程序员员的时间(由由于学习的方方便),它可可能仍然是一一个很好的选选择。PythonPython 2.72.7 v v v/sv/s 3 3.4.4这是关于 P Python n 的一个最具具争议的话题题。你可能总总是不能避免免遇到,尤其

5、其是如果你是是一个初学者者。这里没有有正确/错误的选择择。它完全取取决于具体情情况和你的需需要。我会尝尝试给你一些些建议,以帮帮助你做出明明智的选择。为什么选择为什么选择 P Py y ythonython 2.72.71.极好的社区支持持!这是你在在初期需要的的东西。Pytho on 2 发行于 2000 年末,已经经被使用超过过 15 年。2.很多第三方库!虽然许多库库已经提供了了 3.X 的支持,但但仍然有大量量的模块只工工作在 2.X。如果你计计划将 Pytho on 用于具体的的应用,如 Web 开发这种高高度依赖外部部模块的,你你选择2.7 可能会更好好。3.3.X 版本的一一些特

6、性有向向后兼容性,可可以使用 2.7 版本。为什么选择为什么选择 P Py y ythonython 3.43.41.更整齐和更快!Pytho on 开发者修正正了一些固有有的问题和小小缺点,以此此为未来建立立一个强大的的基础。这些些可能不是很很相关,但最最终会很重要要。2.这是未来!2.7 是 2.X 族发布的最最后一个版本本,并且最终终每个人都要要转移到 3.X 版本。Pytho on 3 在过去 5 年已经发布布的稳定版本本,并将继续续。没有明确的的赢家,但我我想,底线是是,你应该专专注于学习 Pytho on 语言。版本本之间的转换换应该只是一一个时间问题题。敬请期待待,不久的将将来一

7、个专门门对比 Pytho on 2.X X 和 3 X 的文章!怎样安装怎样安装 PyPyt t thonthon有两种方法安装装 Pytho on你可以直接从项项目网站下载载 Pytho on,然后单独独安装你想要要的组件和库库或者,你可以下下载并安装一一个包,它附附带了预装的的库。我建议议您下载 Anaco onda。另一种选选择是 Enth hought t Cano opyEx xpress s。第二种方法提第二种方法提供供供了一个避供了一个避免免免麻烦的安免麻烦的安装装装装,因此我因此我会会会推荐给初会推荐给初学学学者学者。这种方方法是你必须须等待整个包包进行升级,即使你只是是对一个

8、单一一的库的最新新版本感兴趣趣。它应该不不重要,直到到和除非,直直到和除非,你你正在做的尖尖端统计研究究。选择开发环境选择开发环境一旦你已经经安装了 Pytho on,选择环境境可以有很多多种选择。这这里是3 个最常见的的选择:终端/基于 Sh hellIDLE(默认认环境)iPython n note ebook 类似于 R 的 markd down而环境权取取决于你的需需要,我个人人更喜欢 iPyth hon no oteboo ok 一点。它提供了了许多良好的的功能,编写写代码的同时时还可以用于于记录,你可可以选择在上上面运行代码码块(而不是是一行一行的的执行)。我们在整个教程程中将使用

9、 Ipyth hon 环境热身:跑第一热身:跑第一个个个个 PythPytho o onon 程序程序你可以使用用 Pytho on 作为一个简简单的计算器器来开始:有一些事情需有一些事情需要要要注意:要注意:你可以在你的终终端/CMD 键入“IPyth hon no oteboo ok”来启动IPyth hon no oteboo ok,这取决于于你的工作在在操作系统你可以通过简单单地点击上面面截图中的名名字来对 IPyth honno oteboo ok 命名界面显示 In*代表输入和 Out*代表输出。你可以通过按“Shift t+En nter”或“ALT+Ente er”来执行代码码

10、,如果你后后面还想插入入一行。在我们深入入挖掘如何解解决问题之前前,让我们退退后一步,了了解 Pytho on的基本知识识。当我们知知道数据结构构和迭代和条条件结构是形形成任何语言言的关键。在在 Pytho on 中,这些包包括列表、字字符串、元组组、字典、for循环,while 循环,if-el lse 等等,让我我们来看看下下面的因素。2 2.在在 PyPyt t thonthon 上运行一上运行一些些些简单程序些简单程序PythonPython 的的的数据结构的数据结构以下是 Py ython 中使用的一一些数据结构构。你应该熟熟悉他们,以以便恰当的使使用它们。列表列表是是在 Pytho

11、 on 中最通用的的数据结构。列列表可以这样样简单的定义义:就是在方方括号中一系系列用逗号来来分隔的值。列列表可能包含含不同类型的的项,但它们们通常都有相相同类型的。Pytho on 列表是可变变的,列表中中的单个元素素是可以改变变的。这里是一个个快速的例子子,定义了一一个列表,然然后访问它:字符串字符符串可以简单单的使用单引引号()、双引号号(”)或三引号号()来定义。字字符串封闭三三引号()中可以跨跨越多行的代代码,在文档档字符串中是是很常用的(记记录功能的 Pytho on 方式)。作作为一个转义义字符。请注注意,Pytho on 中的字符串串是不可变的的,所以你不不能改变字符符串的部分

12、。元组元组由由一系列由逗逗号分隔的值值表示。元组组是不可变的的,输出的用用括号包围,目目的是嵌套结结构可以被正正确处理。此此外,尽管元元组是不可变变的,但它们们可以在必要要是含有可变变数据。因为元组是是不可变的,不不可改变的,他他们相对列表表来说可以处处理的更快。因因此,如果你你的清单是不不可能改变的的,你应该使使用元组,而而不是列表。字典字典是是键:值对一一个无序集合合,要求键是是唯一的(在在一个字典里里)。一对大大括号创建一一个空的字典典:。PythonPython 的的的迭代和条的迭代和条件件件结构件结构和大多数语语言一样,Pytho on 也有一个 FOR 循环,这是是最广泛使用用的迭

13、代方法法。它有一个个简单的语法法:这里的“P Python n 的迭代可以以是列表、元元组或其他先先进的数据结结构,我们将将在后面的章章节中探讨。让让我们来看看看一个简单的的例子,确定定一个数字的的因子。来看看条件件语句,它们们是用来基于于条件执行代代码片段。最最常用的结构构是 if-el lse,有以下语语法:例如,如果果我们想打印印出某个数字字 n 是偶数还是是奇数:既然你熟悉悉了 Pytho on 的基础,我我们来更近一一步。如果你你像完成以下下任务:1.乘 2 矩阵2.求二次方程的根根3.绘制条形图和直直方图4.建立统计模型5.访问网页如果你想从从零开始写代代码,它将是是一场噩梦,你你

14、使用 Pytho on 不会超过 2 天!但不要要担心这些。值值得庆幸的是是,有许多预预定义的库,我我们可以直接接导入到我们们的代码,使使我们的生活活很容易。例如,考虑我们们刚才看到的的因子的例子子。我们可以以一步就完成成:当然,为了了这样我们需需要导入的 math 库。让我们们探索下一个个不同的库。PythonPython 库库库库在开始我们们的学习 Pytho on 之旅之前,让让我们先一步步,了解一些些有用的 pytho on 库。第一步步显然是要学学会将它们导导入到我们的的环境中。在在 Pytho on 中有以下几几种方法:在第一种方方式中,我们们已经为 math 库定义了一一个别名

15、m。现在我们们可以使用数数学库的各种种功能(例如如阶乘,通过引用别别名m.fac ctoria al()。第二方式,你你需要导入 math 的整个命名名空间,你可可以直接使用用facto orial(),而不用提提到 math。提示:谷歌推荐荐您使用第一一种方式导入入库,因为您您将知道函数数来自何处。下面是一个个库列表,你你将在任何科科学计算和数数据分析中用用到:NumPNumPy y代表表数值Pytho on。NumPy最强大的功功能是n维数组。该该库还包含基基本的线性代代数函数,傅傅里叶变换,高高级的随机数数功能,以及及集成其他低低级语言如 Fortr ran,C 和 C+的工具。SciP

16、ySciPy 代表表科学的 Pytho on。SciPy 是基于 NumPy 的。它是最最有用的库之之一,具有各各种高层次的的科学和工程程模块,如离离散傅立叶变变换,线性代代数,优化和和稀疏矩阵。MatploMatplot t tlibtlib 用于于绘制各种各各样的图表,从从直方图到线线图,再到热热图。你可以以在 IPyth hon no oteboo ok 中使用 PyLab(IPyth honno oteboo okPyLab b=in nline)以此使用用这些绘图功功能的inlin ne。如果你忽忽略 inlin ne 选项,PyLa ab 会将 IPyth honno oteboo

17、 ok 环境转换成成类似于 Matla ab 的环境。你你也可以使用用Late ex 命令将 math 库添加到您您的绘图中。PandasPandas 对对于结构化数数据操作和控控制。它广泛泛用于数据再再加工和数据据准备。Panda as 说最近一直直在推动对 Pytho on Pyt thon 的使用数据据科学家共同同体的工具。ScikitScikit LearLearn n n n 机器学习库库。建立在 NumPy、SciPy 和matpl lotlib b 的基础上,这这个库包含了了机器学习和和统计模型包包括分类、回回归、聚类和和降维等很多多有效的工具具。StatsmStatsmo o

18、odelsodels 用用于统计建模模。stats smodel ls 是一个 Pytho on 模块,允许许用户探索数数据,估计统统计模型,并并进行统计检检验。一个广广泛的描述性性统计,统计计检验的列表表。绘图功能能,和结果统统计可用于不不同类型的数数据和每个估估计。SeaborSeaborn n n n 用于统计数数据的可视化化。Seabo orn 是 Pytho on 中用来绘制制让人喜欢的的并能提供大大量信息的统统计图形库。它它是基于matpl lotlib b。Seabo orn 旨在使可视视化成为探索索和理解数据据的核心部分分。BokehBokeh 创建建交互式图、仪仪表盘和现代代

19、 Web 浏览器上的的数据应用。它它允许用户生生成的优雅和和简洁的 d3.js 风格的图形形。此外,在在非常大的或或流媒体数据据集上,它具具有高性能的的交互性的能能力。BlazeBlaze 扩展展 NumPy 和 Panda as 的分布式和和流媒体数据据集。它可以以用来访问来来自多种来源源的数据,包包括 bcolz,Mongo oDB,SQLAl lchemy y,Apach he Spa ark,P PyTabl les 等等,结合 Bokeh,Blaze 可以作为一一个非常强大大的工具,用用于对大规模模数据创建高高效的的可视视化和仪表板板。ScrapyScrapy 用用于网络爬虫虫。它是

20、用于于获取特定数数据模式的一一个非常有用用的框架,。它它可以通过开开始的一个网网站主页的网网址,然后通通过挖掘网页页内的网站收收集信息。SymPySymPy 用于于符号计算。它它具有广泛的的功能,从基基本的符号运运算到微积分分,代数,离离散数学和量量子物理学。另另一个有用的的功能是将计计算的结果格格式化为 LaTeX 码的能力。RequesRequest t tsts 用于访问问网络。它的的工作原理类类似于 Pytho on 标准库 urlli ib2,但是更容容易编码。但但对于初学者者,你会发现现和urlli ib2 细微的差别别,Reque ests 可能更方便便。其它的库,其它的库,你你

21、你可能需要你可能需要:osos 用于操作作系统和文件件操作networnetwork k kxkx 和 igraigrap p phph 基于数据据操作绘制图图形regularegular r r r expexpr r ressiressio o onsons 用于在文本本数据中查找找模式BeautiBeautif f fulSofulSou u upup 将探索 Web。它不如 Scrap py,它一次运运行将从一个个单一的网页页中提取信息息。现在我们已已经熟悉 Pytho on 的基础和更更多的库,让让我们深入到到通过Pytho on 解决问题。是是的,我的意意思是做一个个预测模型!在这

22、个过程程中,我们使使用了一些强强大的库,也也遇到了下一一级的数据结结构。我们将将带你通过这这 3 个关键阶段段:1.数据探索从我我们所拥有的的数据中发现现更多2.数据修改清理理数据和并修修改它使它更更适合用来统统计建模3.预测建模运行行的实际算法法,自得其乐乐3.3.在在 PytPyth h honhon 中使用中使用 PandPanda a asas 进行探索进行探索性性性分析性分析为了进一步步探索我们的的数据,让我我把你介绍给给另一种动物物(好像Pytho on 是不够的!)Pand dasPanda as 是 Pytho on 最有用的一一种数据分析析库的我知道道这些名字听听起来很奇怪怪

23、,但坚持下下去!)它们们对于增加一一直在增加 Pytho on 在数据科学学界的使用量量起了很大的的作用。我们们现在将使用用 Panda as 从Analy ytics Vidhy ya 的竞赛中读读数据集,进进行探索性分分析,建立我我们的第一个个基本分类算算法来解决这这一问题。在加载数据据之前,让我我们了解 Panda as 中的 2 个关键的数数据结构序列和数据据框序列和数据框序列和数据框的的的简介的简介序列可以被被理解为一个个 1 维标记/索引数组。你你可以通过这这些标签访问问这个序列的的各个元素。一个数据框框类似于 Excel 工作簿你可以使用用列名来引用用列,可以通通过行号来访访问行

24、数据,本本质的区别是是,在数据帧帧中,列名和和行号是列和和行的索引。More:10 MMinute es to Panda as实践数据集实践数据集贷款预测贷款预测问问问题问题您可以从这这里下载数据据集。这里是是变量的描述述:让我们从数据让我们从数据探探探索开始探索开始开始,通过过在你的你的的终端/Win ndows 命令提示符符键入下面的的代码,来以以 Inlin ne Pyl lab 模式启动 IPyth hon 界面:这在 PyL Lab 环境下打开 IPyth hon no oteboo ok,其中有几几个有用的库库已经导入。此此外,你将能能够绘制您的的数据内联,这这对于互动的的数据分

25、析是是一个非常好好的环境。你你可以通过键键入以下命令令,检查环境境是否正确的的加载了(并并获得如下图图所示的输出出):plot(ar range(5)我目前在 Lin nux 上工作,并并已将数据集集存储在以下下位置:/home/k kunal/Downl loads/Loan_ _Predi iction n/trai in.csv v导入库和数据导入库和数据集集集:集:下面是我们将在在本教程中使使用的库:numpymatplot tlibpandas请注意,你你不需要导入入 matpl lotlib b 和 NumPy,因为是在 PyLab环境下。但但我仍然在代代码中保留了了它们,以防防你

26、在不同的的环境中使用用代码。导入库以后后,你可以使使用 read_ _csv()函数读数据据集。这是直直到这个阶段段的代码:快速数据探索快速数据探索一旦你读取取了数据,可可以通过使用用 head()函数查看一一下前几行的的数据:这应该打印印 10 行。或者,您您也可以通过过打印数据集集来查看更多多的行。接下来,你你可以使用 descr ribe()函数来查看看数值字段的的概要:descr ribe()功能将提供供计数、平均均、标准差(STD),最小值值,分位数值值和最大值(读读这篇文章来来更新基本统统计数据了解解人口分布)这里有几个个结论,你可可以通过查看看 descr ribe()函数的输出

27、出得出:1.LoanAmo ount 有(614 4 592)22 个缺失值2.Loan_Ammount_ _Term 有(614 600)14 个缺失值3.Credit_ _Histo ory 有(614 4 564)50 个缺失值4.我们还可以看到到 84%的申请者有 credi it_his story,怎么样,cred dit_hi istory y 的均值为 0.84(记住,credi it_his story 将那些有信信用历史的值值设置为 1,没有的设设置为 0)5.Applica antInc come 的分布似乎乎和 expec ctatio on 呈线性关系系,Coapp

28、plican ntInco ome 也是。请注意,我我们通过比较较的平均值和和中位数,即即 50%位数,来得得到偏差的概概念。对于非数值值(例如 prope erty_a area,credi it_his story 等),我们们可以看看频频率分布,了了解他们是否否有意义。频频率表可以通通过以下命令令打印:同样地,我我们可以看看看信用卡历史史的唯一值。注注意,dfnamme colummn_namme 是一个基本本的索引技术术,来访问一一个数据框的的特定的列。它它也可以是列列的列表。想想要了解更多多信息,参考考上面的“Panda as 10 分钟教程”的资源共享享。分布分析分布分析现在我们熟

29、熟悉了基本的的数据特征,让让我们研究不不同变量的分分布情况。让让我们从数字字变量开始即 appli icanti income e 和 LoanA Amount t我们通过绘绘制 appli icanti income e 的直方图开开始,使用下下面的命令:在这里,我我们观察到,有有几个极端值值。这也是分分箱值为 50 的原因,就就是为了清楚楚地描述它的的分布。下一步,我我们看箱线图图,了解分布布。fare 的箱图可以以使用下面代代码绘制:这证实了大大量的离群值值/极值的存在在。这可以归归因于社会上上的收入差距距。部分原因因源于这样一一个事实:我我们正在查看看不同的教育育水平的人。让让我们根据

30、他他们所受的教教育进行分组组:我们可以看看到,研究生生和非毕业生生的平均收入入之间没有实实质性的区别别。但是毕业业生中高收入入的人群更多多,它们出现现在异常值的的点中。现在,让我我们使用下面面的命令看看看 LoanA Amount t 的直方图和和箱线图:再次,有一一些异常的值值。显然,appli icanti income e 和 LoanA Amount t都需要进行行一定的数据据处理。Loan nAmoun nt 有一些缺失失值以及一些些异常的值,而 applicantincome 有一些异常值,需要更深入的了解。我们将在即将到来的部分完成这些。分类变量的分分类变量的分析析析析现在我们了

31、了解了 appli icanti income e 和 loani income e 的分布,让让我们了解更更多关于分类类变量的细节节。我们将使使用 Excel 数据透视表表和交叉制表表的风格。例例如,让我们们看看基于信信用记录,可可以获得贷款款的可能性。这这可以在微软软的 Excel 上使用一个个透视表实现现:注:这里的的贷款状况已已被编码,使使用 1 代表 yes,而 0 代表 no,因此,所所以均值代表表了获得贷款款的概率。现在我们将将看看使用 Pytho on 产生类似的的效果所需要要的步骤。请请参考这篇文文章,以使用用 Panda as 获得不同的的数据操纵技技术。现在我们可可以观察

32、到,我我们得到一个个像微软的 Exce el 的pivot t_tabl le。这可以使使用 matpl lotlib b 库绘制成条条形图,使用用下面的代码码:这表明,如如果申请人有有一个有效的的信用记录,获获得贷款的机机会是没有信信用记录的人人的八倍。你你可以根据 Marri ied,S Self-E Employ yed,P Proper rty_Ar rea 等绘制类似似的图。或着,这两两个图可以进进行组合以后后的可视化,使使用堆叠图表表示:你还可以再再上图中加入入性别变量(类类似于 Excel 中的数据透透视表)如果你还没没有意识到,我我们刚刚在这这里创建了两两个基本的分分类算法,一

33、一个基于信用用历史,而另另一个基于 2 个分类变量量(包括性别别)。你可以以在 AV Da atahac cks 上很快的编编写代码来创创建首次提交交。我们只看到到我们如何使使用 Pytho on 中的 Panda as 做探索性分分析。我希望望你对大熊猫猫(动物)的的爱现在增加加了给予一些帮帮助,这个库库可以为你提提供分析数据据集。接下来让我我们进一步探探讨 appli icanti income e 和 loans status s 变量,进行行数据修改和和创建一个数数据集并应用用各种建模技技术。我强烈烈要求你采用用另一个数据据集和习题,并并在进一步阅阅读之前完成成一个独立的的例子。在 P

34、ython n 中使用 Panda as 进行数据再再加工4.4.数据修改数据修改翻新的需翻新的需要要要要对于那些一直直跟下来的人人来说,这时时你必须穿上上鞋才能开始始跑。在我们的探探索数据期间间,我们发现现了数据集的的一些问题,在在数据准备好好建立一个好好的模型之前前需要解决。这这个练习通常常被称为“数据修改”。这里是问问题,我们已已经意识到的的:1.在一些变量中有有缺失值。我我们应该基于于丢失的值的的数量明智地地估计这些值值并评估该变变量的重要性性。2.当我们查看数据据的分布时,我我们看到,appli icanti income e 和LoanA Amount t 似乎在两端端都含有极端端

35、值。虽然他他们可能有直直观的感觉,但但应适当处理理。除了数值领领域的这些问问题,我们也也应该看看非非数值领域 Gende er,Pr ropert ty_Are ea,Ma arried d,Educa ation 和 Depe endent ts 这些变量,看看看它们是否否包含任何有有用的信息。如果你是 P Pandas s 的新手,我我建议在继续续前进之前阅阅读这篇文章章。它详细介介绍了一些有有用的数据处处理技术。检查数据集中检查数据集中的的的缺失值的缺失值让我们看看看所有的变量量中的缺失值值,因为大多多数模型不能能处理有缺失失值的数据,即即使他们可以以,输入它们们往往不能帮帮助更多。所所

36、以,让我们们看看数据集集中空值/NAN 值的数量:这个命令告告诉我们每一一列中缺失值值的数量,因因为如果值为为缺失值isnul ll()返回 1。虽然缺失值值数量不是很很多,但许多多变量都有缺缺失值,它们们中的每一个个都应该被估估计和补充。通通过这篇文章章对不同的插插值技术进行行详细了解。注:记住,缺缺失值可能并并不总是 NaN。例如,如如果loan_ _amoun nt_ter rm 是 0,它是有意意义的或者你你认为是缺失失的?我想你你的答案是缺缺失的,你是是对的。所以以我们应该检检查那些不切切实际的值。如何填补如何填补 LoLoa a anAmoanAmou u untunt 的缺失值的

37、缺失值?有许多方法法来填补价值值贷款金额的的缺失值,最最简单的就是是使用均值来来替换,可以以通过以下代代码实现:另一个极端是可可以建立一个个监督学习模模型来基于其其他变量预测测贷款金额,然然后使用年龄龄以及其他变变量来预测。既然,现在在的目标是讲讲述数据修改改的步骤,我我宁愿采取一一种方法,它它介于这 2 个极端方法法之间。一个个关键的假设设是,一个人人是否受教育育的或是否自自雇人士可以以结合起来,提提供一个很好好的贷款金额额的估计。首先,让我我们看看箱线线图看是否有有某种趋势存存在:因此我们看看到在每一组组中贷款金额额的中位数的的一些变化而而这可以用来来估计值。但但首先,我们们必须确保每每个

38、 self_ _emplo oyed 和Educa ation 变量 不应该有缺缺失值。如我们先前前所说,self_ _emplo oyed 有缺失值。让让我们看看频频率表:因为 8 86%的值是“No”,将缺失值值估计为“No”是比较可靠靠的,有很高高的成功概率率。这可以用用下面的代码码来完成:现在,我们们将创建一个个数据透视表表,它提供了了我们所有 Educa ation和 self_ _emplo oyed 变量的唯一一值分组的中中位数。接下下来,我们定定义了一个函函数,它返回回这些单元格格的值,并应应用它来填充充丢失的贷款款金额的值:这应该给你你提供了一个个估计贷款金金额的缺失值值好方

39、法。如何处理在如何处理在 L Lo o oanAmoanAmo o ountount 和和 applappli i icanticanti i incomincome e e e 分布中的分布中的极极极值?极值?让我们先分分析 LoanA Amount t。由于极端端值可能是现现实的的,即即一些人可能能会由于特定定的需求,申申请高额的贷贷款,。所以以,不把它们们当做离群点点对待,让我我们尝试对数数据转换从而而发挥它们的的作用:再看直方图图:现在的分布布看起来更接接近标准的,极极端值的影响响已经显着消消退。来看看 ap pplica antinc come。一种直觉觉可以是一些些申请人有较较低的

40、收入,但但有一个有力力的支持,共共同申请者。所所以将两者的的收入结合起起来作为总收收入可能是一一个好主意,并并采取相同的的对数变换。现在我们看看到,分布比比以前好多了了。我会把 Gende er,Ma arried d,Dep penden nts,L Loan_A Amount t_Termm,Cre edit_H Histor ry 等缺失值的的估计留给你你。此外,我我鼓励你考虑虑可能的额外外的信息,可可以来自数据据。例如,创创建一个 LoanA Amount t/Tota alInco ome 列可能会有有意义,因为为它能给你一一个关于申请请人如何偿还还他的贷款的的好想法。下一步,我我们

41、将研究预预测模型。5.5.使用使用 P Py y ythonython 中建立预中建立预测测测模型测模型之后,我们们已经使数据据可以用于建建模,现在让让我们来看看看 Pytho on代码,来在在我们的数据据集上创建一一个预测模型型。Skici it-kea arn(sklea arn)是 Pytho on 中最常用于于此目的的库库,我们将跟跟随这条小径径。我建议你你通过这篇文文章来复习进进修 sklea arn。因为,sk klearn n 要求所有输输入都是数字字,我们应该该通过编码类类别将我们所所有的分类变变量转换为数数值型。这可可以用下面的的代码来完成成:下一步,我我们将导入所所需的模块

42、。然然后,我们将将定义一个通通用的分类函函数,它需要要一个模型作作为输入,并并确定准确性性度和交叉验验证分数。由由于这是一篇篇介绍性文章章,我将不会会进入编码的的细节。请参参考这篇文章章得到详细的的算法以及 R 和 Pytho on 的代码。此此外,通过本本文复习一下下交叉验证会会更好,因为为它是一个非非常重要的性性能测量方法法。逻辑回归逻辑回归让我们做我我们的第一个个逻辑回归模模型。一个方方法就是把所所有的变量都都加入模型,这这可能会导致致过度拟合(如如果你还不知知道这个术语语,不要担心心)。简单的的说,考虑所所有的变量可可能会导致模模型的理解出出比较复杂的的关系,对于于具体的数据据,不能很

43、好好的概括。阅阅读更多关于于逻辑回归。我们可以很很容易地作出出一些直观的的假设来设定定启动资金。获获得贷款的机机会将更高:1.有信用记录的申申请人(记得得我们在探索索时观察到的的?)2.申请人或着共同同申请人具有有较高收入的的申请3.申请人具有较高高的教育水平平属性4.在具有高增长前前景的城市地地区让我们使用用 credi it_his story 建立我们的的第一个模型型。准确度:80.94 46%交叉验证得得分:80.94 45%准确度:8 80.946 6%交叉验证得得分:80.94 45%一般来说,我我们期望通过过增加变量来来提高准确度度。但这是一一个更具挑战战性的案例。准准确度和交叉

44、叉验证得分不不受那些影响响较小变量的的影响。credi it_his story 主导模式。我我们现在有两两个选择:1.工程特征:导出出新信息并试试图预测。我我将把这留给给你的创造力力。2.更好的建模技术术。让我们探探索这个下一一个。决策树决策树决策树是建建立预测模型型的另一种方方法。它能比比逻辑回归模模型提供更高高的准确度。准确度:7 76.656 6%交叉验证得得分:81.93 30%在这里,基基于分类变量量的模型是不不能产生影响响的,因为相相比它们信用用历史是占主主导地位的。让让我们尝试一一些数值变量量:准确度:7 71.009 9%交叉验证得得分:92.34 45%在这里,我我们观察到

45、,虽虽然增加变量量时提高了准准确度,交叉叉验证错误下下降。但这是是模型对数据据过拟合的结结果。让我们们尝试一个更更复杂的算法法,看看它是是否有帮助:随机森林随机森林随机森林是是解决分类问问题的另一种种算法。阅读读更多关于随随机森林。随机森林的的一个优点是是,我们可以以使它与所有有的功能,它它返回一个功功能的重要性性矩阵,它可可以用来选择择功能。准确度:7 78.179 9%交叉验证得得分:100%在这里,我我们看到的准准确性是 100%的训练集。这这是过度拟合合的最终情况况,可以以两两种方式解决决:1.减少预测的数量量2.调整模型参数让我们尝试试这两个。首首先,我们看看到的特征重重要度矩阵,从

46、从中我们将采采取最重要的的特点。让我们使用前 5 5 个变量来创创建一个模型型。此外,我我们将修改随随机森林模型型的参数有一一点:让我们使用用前 5 个变量来创创建一个模型型。此外,我我们将修改一一点点随机森森林模型的参参数:准确度:8 81.461 1%交叉验证得得分:82.89 99%注意,虽然然准确度降低低,但交叉验验证得分提高高表明该模型型推广良好。请请记住,随机机森林模型是是不完全可重重复的。不同同的运行会导导致轻微的变变化,因为随随机。但输出出应该呆在球球场。你会注意到到,即使在随随机森林的一一些基本参数数调整后,我我们已经达到到了一个交叉叉验证的准确确性只有略优优于原来的逻逻辑回

47、归模型型。这个练习习给我们提供供了一些非常常有趣和独特特的学习:1.使用一个更复杂杂的模型并不不能保证更好好的结果。2.避免使用复杂的的建模技术作作为一个黑盒盒子,不了解解底层的概念念。这样做会会增加从而使使你的模型过过度拟合的趋趋势不可解释释的3.特征工程是成功功的关键。每每个人都可以以用一个 xgboo ost 模型但真正正艺术和创造造力在于增强强你的特征,以以更好地适应应模型。所以你准备备好接受挑战战了吗?用贷贷款预测问题题开始你的数数据科学之旅旅。结尾结尾当你开始将将 Pytho on 用于数据科科学时,我希希望本教程可可以帮助你最最大限度地提提高你的效率率。我相信这这不仅给你一一个基本的数数据分析方法法的想法,它它也展示了你你如何实现一一些当下存在在的更复杂的的技术。Pytho on 确实是一个个伟大的工具具,并正在成成为数据科学学家之间一个个越来越流行行的语言。原原因是,它很很容易学习,可可以很好地集集成其他数据据库和工具如如:Spark 和 Hadoo op。主要的,它它有很大的计计算强度,并并且具有强大大的数据分析析库。所以,学习习 Pytho on 执行任何全全生命周期的的数据科学项项目。它包括括阅读,分析析,可视化和和最后的预测测。如果在实践践 Pytho on 的时候,你你遇到任何困困难,或者你你有什么想法法/建议/反馈,请通通过下面的评评论请我提出出

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!