从头学习将Python用于数据科学的一个完整教程(三)

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

5. 使用Python中建立预测模型


  之后,我们已经使数据可以用于建模,现在让我们来看看Python代码,来在我们的数据集上创建一个预测模型。Skicit-kearn(sklearn)是Python中最常用于此目的的库,我们将跟随这条小径。我建议你通过这篇文章来复习进修sklearn。

  因为,sklearn要求所有输入都是数字,我们应该通过编码类别将我们所有的分类变量转换为数值型。这可以用下面的代码来完成:

blob.png

  下一步,我们将导入所需的模块。然后,我们将定义一个通用的分类函数,它需要一个模型作为输入,并确定准确性度和交叉验证分数。由于这是一篇介绍性文章,我将不会进入编码的细节。请参考这篇文章得到详细的算法以及R和Python的代码。此外,通过本文复习一下交叉验证会更好,因为它是一个非常重要的性能测量方法。

blob.png

blob.png

逻辑回归


  让我们做我们的第一个逻辑回归模型。一个方法就是把所有的变量都加入模型,这可能会导致过度拟合(如果你还不知道这个术语,不要担心)。简单的说,考虑所有的变量可能会导致模型的理解出比较复杂的关系,对于具体的数据,不能很好的概括。阅读更多关于逻辑回归

  我们可以很容易地作出一些直观的假设来设定启动资金。获得贷款的机会将更高:

  1. 有信用记录的申请人(记得我们在探索时观察到的?)

  2. 申请人或着共同申请人具有较高收入的申请

  3. 申请人具有较高的教育水平属性

  4. 在具有高增长前景的城市地区

  让我们使用credit_history建立我们的第一个模型。


blob.png

  准确度:80.946%   交叉验证得分:80.945%

blob.png

  准确度:80.946%   交叉验证得分:80.945%

  一般来说,我们期望通过增加变量来提高准确度。但这是一个更具挑战性的案例。准确度和交叉验证得分不受哪些影响较小变量的影响。credit_history主导模式。我们现在有两个选择:

  1. 工程特征:导出新信息并试图预测。我将把这留给你的创造力。

  2. 更好的建模技术。让我们探索这个下一个。


决策树


  决策树是建立预测模型的另一种方法。它能比逻辑回归模型提供更高的准确度。阅读更多关于决策树

blob.png

  准确度:76.656%  交叉验证得分:81.930%

  在这里,基于分类变量的模型是不能产生影响的,因为相比它们信用历史是占主导地位的。让我们尝试一些数值变量:

blob.png

  准确度:71.009%  交叉验证得分:92.345%

  在这里,我们观察到,虽然增加变量时提高了准确度,交叉验证错误下降。但这是模型对数据过拟合的结果。让我们尝试一个更复杂的算法,看看它是否有帮助:


随机森林


  随机森林是解决分类问题的另一种算法。阅读更多关于随机森林

  随机森林的一个优点是,我们可以使它与所有的功能,它返回一个功能的重要性矩阵,它可以用来选择功能。

blob.png

  准确度:78.179%交叉验证得分:100%

  在这里,我们看到的准确性是100%的训练集。这是过度拟合的最终情况,可以以两种方式解决:

  1. 减少预测的数量

  2. 调整模型参数

  让我们尝试这两个。首先,我们看到的特征重要度矩阵,从中我们将采取最重要的特点。

让我们使用前5个变量来创建一个模型。此外,我们将修改随机森林模型的参数有一点:

blob.png

  

  让我们使用前5个变量来创建一个模型。此外,我们将修改一点点随机森林模型的参数:

blob.png


  准确度:81.461%交叉验证得分:82.899%

  注意,虽然准确度降低,但交叉验证得分提高表明该模型推广良好。请记住,随机森林模型是不完全可重复的。不同的运行会导致轻微的变化,因为随机。但输出应该呆在球场。

  你会注意到,即使在随机森林的一些基本参数调整后,我们已经达到了一个交叉验证的准确性只有略优于原来的逻辑回归模型。这个练习给我们提供了一些非常有趣和独特的学习:

  1. 使用一个更复杂的模型并不能保证更好的结果。

  2. 避免使用复杂的建模技术作为一个黑盒子,不了解底层的概念。这样做会增加从而使你的模型过度拟合的趋势不可解释的

  3. 特征工程是成功的关键。每个人都可以用一个xgboost模型但真正艺术和创造力在于增强你的特征,以更好地适应模型。

  所以你准备好接受挑战了吗?用贷款预测问题开始你的数据科学之旅。


结尾


  当你开始将Python用于数据科学时,我希望本教程可以帮助你最大限度地提高你的效率。我相信这不仅给你一个基本的数据分析方法的想法,它也展示了你如何实现一些当下存在的更复杂的技术。

  Python确实是一个伟大的工具,并正在成为数据科学家之间一个越来越流行的语言。原因是,它很容易学习,可以很好地集成其他数据库和工具如:Spark和Hadoop。主要的,它有很大的计算强度,并且具有强大的数据分析库。

  所以,学习Python执行任何全生命周期的数据科学项目。它包括阅读,分析,可视化和最后的预测。

  如果在实践Python的时候,你遇到任何困难,或者你有什么想法/建议/反馈,请通过下面的评论请我提出。



英文原文:https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/
译者:jiajia123456
 

2月15日11:00到13:00网站停机维护,13:00前恢复