数据探索的综合指南
没有任何捷径能一步掌握数据探索.如果你想要提高模型的准确性,你会发现数据探索会极大地帮助你提高模型的准确度.
我可以很自信地说,因为我经历过很多这样的情况。
本教程帮助您理解数据挖掘的底层技术。和往常一样,我尽力用最简单的方式来解释这些概念。为了更好的理解,我举了几个例子来演示复杂的概念。
数据准备
记住一点,我们输入的数据的质量决定了我们输出的质量,因此,一旦你拿到了你的业务准备,是值得花费时间和精力在这上面的。根据我个人的经验而言,数据探索、清洗和准备能耗费整个项目的70%的时间。下面是为建立你的预测性模型所做的数据理解、清洗和准备工作:
变量识别
单变量分析
双变量分析
缺失值处理
异常值检测
变量转换
变量创造
最终,我们将需要在提出我们的模型之前重复前面步骤4-7多次
现在让我们从每个步骤的细节学起
变量识别
首先,搞明白自变量(predictor(input))和因变量(target(output))。下一步,清楚数据类型和变量类别.
让我们通过一个例子更清楚的理解这个步骤:
Example:-假设,我们要预测学生是否将会打板球(参考下面的 ...
hyperopt-调参模块
超参数优化是实现模型性能最大化的重要步骤。为此大神们专门开发了几个Python包。scikitt -learn提供了一些选项,GridSearchCV和RandomizedSearchCV是两个比较流行的选项。在scikitt之外,Optunity、Spearmint和hyperopt包都是为优化设计的。在这篇文章中,我将重点介绍hyperopt软件包,它提供了能够超越随机搜索的算法,并且可以找到与网格搜索相媲美的结果,同时也能找到更少的模型。
接口说明
具体的详细文档: http://www.coxlab.org/pdfs/2013_bergstra_hyperopt.pdf
fmin接口:需要定义一个概率分布,确保能在变化的超参中找到一个可信的值。就像scipy中的optimize.minimize借口。因此需要我们提供一个优化的目标函数。很多优化算法都要假设在一个向量空间里面搜索最佳值,hyperopt可以对搜索空间进一步细化,比如说使用log话活着均匀分布随机获取之类。
hyperopt需要定义的主要有四个地方:
1.需要最小化的目标函数
2.优化所需要搜索的搜 ...