欢迎来到天天文库
浏览记录
ID:33874108
大小:152.50 KB
页数:7页
时间:2019-03-01
《【6A版】用Python建立预测模型的方法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、7A版优质实用文档用Python建立预测模型的方法由于近几年来,Python用户数量上涨及其本身的简洁性,使得这个工具包对数据科学世界的Python专家们变得有意义。本文将帮助你更快更好地建立第一个预测模型。绝大多数优秀的数据科学家和kagglers建立自己的第一个有效模型并快速提交。这不仅仅有助于他们领先于排行榜,而且提供了问题的基准解决方案。预测模型的分解过程我总是集中于投入有质量的时间在建模的初始阶段,比如,假设生成、头脑风暴、讨论或理解可能的结果范围。所有这些活动都有助于我解决问题,并最终让我设计
2、出更强大的商业解决方案。为什么你要在前面花费这段时间,这有充分的理由:1.你有足够的时间投入并且你是无经验的(这是有影响的)2.你不带有其它数据观点或想法的偏见(我总是建议,在深入研究数据之前做假设生成)3.在后面的阶段,你会急于完成该项目而没有能力投入有质量的时间了。这个阶段需要投入高质量时间,因此我没有提及时间表,不过我建议你把它作为标准的做法。这有助于你建立建立更好地预测模型,在后面的阶段的只需较少的迭代工作。让我们来看看建立第一个模型的剩余阶段的时间表:1.数据描述性分析——50%的时间2.数据预
3、处理(缺失值和异常值修复)——40%的时间3.数据建模——4%的时间4.性能预测——6%的时间让我们一步一步完成每个过程(每一步投入预测的时间):阶段1:描述性分析/数据探索77A版优质实用文档7A版优质实用文档在我刚开始成为数据科学家的时候,数据探索占据了我大量的时间。不过,随着时间的推移,我已经把大量的数据操作自动化了。由于数据准备占据建立第一个模型工作量的50%,自动化的好处是显而易见的。这是我们的第一个基准模型,我们去掉任何特征设计。因此,描述分析所需的时间仅限于了解缺失值和直接可见的大的特征。在
4、我的方法体系中,你将需要2分钟来完成这一步(假设,100000个观测数据集)。我的第一个模型执行的操作:1.确定ID,输入特征和目标特征2.确定分类和数值特征3.识别缺失值所在列阶段2:数据预处理(缺失值处理)有许多方法可以解决这个问题。对于我们的第一个模型,我们将专注于智能和快速技术来建立第一个有效模型。·为缺失值创建假标志:有用,有时缺失值本身就携带了大量的信息。·用均值、中位数或其它简单方法填补缺失值:均值和中位数填补都表现良好,大多数人喜欢用均值填补但是在有偏分布的情况下我建议使用中位数。其它智能
5、的方法与均值和中位数填补类似,使用其它相关特征填补或建立模型。比如,在Titanic生存挑战中,你可以使用乘客名字的称呼,比如:“Mr.”,“Miss.”,”Mrs.”,”Master”,来填补年龄的缺失值,这对模型性能有很好的影响。·填补缺失的分类变量:创建一个新的等级来填补分类变量,让所有的缺失值编码为一个单一值比如,“New_Cat”,或者,你可以看看频率组合,使用高频率的分类变量来填补缺失值。由于数据处理方法如此简单,你可以只需要3到4分钟来处理数据。77A版优质实用文档7A版优质实用文档阶段3:
6、数据建模根据不同的业务问题,我推荐使用GBM或RandomForest技术的任意一种。这两个技术可以极其有效地创建基准解决方案。我已经看到数据科学家通常把这两个方法作为他们的第一个模型同时也作为最后一个模型。这最多用去4到5分钟。阶段4:性能预测有各种各样的方法可以验证你的模型性能,我建议你将训练数据集划分为训练集和验证集(理想的比例是70:30)并且在70%的训练数据集上建模。现在,使用30%的验证数据集进行交叉验证并使用评价指标进行性能评估。最后需要1到2分钟执行和记录结果。本文的目的不是赢得比赛,而
7、是建立我们自己的基准。让我们用python代码来执行上面的步骤,建立你的第一个有较高影响的模型。让我们开始付诸行动首先我假设你已经做了所有的假设生成并且你擅长使用python的基本数据科学操作。我用一个数据科学挑战的例子来说明。让我们看一下结构:步骤1:导入所需的库,读取测试和训练数据集。#导入pandas、numpy包,导入LabelEncoder、random、RandomForestClassifier、GradientBoostingClassifier函数importpandasaspdimpo
8、rtnumpyasnpfromsklearn.preprocessingimportLabelEncoderimportrandomfromsklearn.ensembleimportRandomForestClassifierfromsklearn.ensembleimportGradientBoostingClassifier77A版优质实用文档7A版优质实用文档#读取训练、测试数据集train=pd.read_csv('
此文档下载收益归作者所有