您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>数值算法/人工智能>

MLBox库的打开方式

大小:0.7 MB 人气: 2017-09-29 需要积分:1

  MLbox的整个管道模型分为3个部分/子包:预处理、优化、预测。

  下面我们来详细学习这三个子包。

  1.预处理

  运行下面的指令使用该子包内的所有功能:

  from mlbox.preprocessing import *

  该子包提供了与两个主要功能相关的部分:

  阅读和清理文件

  此软件包支持读取各种各样的文件格式,如csv,Excel,hdf5,JSON等,但在本文中,我们将主要看到最常见的“.csv”文件格式。 请按照以下步骤读取csv文件:

  Step1: 删除未命名的列。

  使用分隔符作为参数创建一个Reader类的对象。 “,”是csv文件的分隔符。

  s=“,”

  r=Reader(s) #initialising the object of Reader Class

  Step2: 删除重复项

  列出练习和测试文件的路径,并确定目标变量名称。

  path=[“path of the train csv file”,“path of the test csv file ”]

  target_name=“name of the target variable in the train file”

  Step3: 从“日期”列中提取月份,年份和星期

  执行清理操作并创建清理后的练习和测试文件。

  data=r.train_test_split(path,target_name)

  删除偏移变量

  Step1:创建一个Drift_thresholder类的对象

  dft=Drift_thresholder()

  Step2:使用创建对象的fit_transform方法来删除漂移变量。

  data=dft.fit_transform(data)

  2.优化

  运行下面的指令使用该子包内的所有功能:

  from mlbox.optimisation import *

  优化是该库的最强之处。从选择正确的缺失值插补方法到XGBOOST模型的深度,超参数优化方法使用超快速(hyperopt)库极速优化库中的 所有内容。该库创建了一个要优化的参数的高维空间,并选择了降低数据分数的参数最佳组合。

  以下是在MLBox库中完成的四个广泛优化的表格,其中有针对不同值优化的连字符术语。

  Missing Values Encoder(ne)(缺失值编码器)- numeric_strategy(数值策略)(估算的列是连续列,如平均值,中位数等), categorical_strategy(分类策略)(估算的列是分类列,如NaN值等)

  Categorical Values Encoder(ce) -strategy(分类值编码器策略)编译分类变量的方法,例如标签编码,实体模型,随机投影,实体嵌入)

  Feature Selector(fs)– strategy (功能选择器策略)(功能选择的不同方法,如l1,方差,rf_feature_importance), threshold(阈值)(废弃的功能的百分比)

  Estimator(est)–strategy(估计器策略)(用作估计器的不同算法,例如,LightGBM,xgboost等),params(参数)(使用特定于算法的参数eg- max_depth,n_estimators等)

  以创建一个要优化的超参数空间为例,在此先说明要优化的所有参数:

  要使用的算法:LightGBM

  LightGBM max_depth:[3,5,7,9]

  LightGBM n_estimators: [250,500,700,1000]

  功能选择: [方差,l1,随机森林功能重要性]

  缺失值插补:数值(平均值,中位数),分类(NAN值)

  分类值编码器:标签编码,实体嵌入和随机投影

  创建超参数空间前,需要记住的是超参数是键和值对应的代码字典,其中,值也是由语法给出的。

  {“search”:strategy,“space”:list},其中策略可以是““choice” ”或“uniform”,列表是值的列表。

  MLBox库的打开方式  使用以下几步找出从上面选择最佳组合的过程:

  Step1:创建一个Optimizer类的对象,它的参数是“scoring”和“n_folds”。 评分是优化超参数空间的指标,n_folds是交叉验证的文件夹个数。

  评分值

  MLBox库的打开方式

  Step2:使用上面创建的对象的优化函数,它的参数分别是超参数空间、由train_test_split创建的字典、迭代次数。 此函数从超参数空间回归最佳超参数。

  best=opt.optimise(space,data,40)

  3.预测

  运行下面的指令安装该子包内的所有功能:

  from mlbox.prediction import *

  该子包使用优化子包计算的最佳超参数来预测测试数据集。要对测试数据集进行预测,请执行以下步骤。

  Step1:创建一个Predictor类的对象

  pred=Predictor()

  Step2:使用上面创建的对象的fit_predict方法,该方法以一组train_test_split创建的超参数和字典作为参数。

  pred.fit_predict(best,data)

  上述方法将功能重要性,偏移变量系数和最终预测保存到名为“save”的独立文件夹中。

  使用MLBox构建机器学习回归器(Machine Learning Regressor)

  现在,我们将使用超参数优化在7行代码中构建机器学习分类器。以解决大型商场销售问题(Big Marts sales problem)为例。下载练习和测试文件并将它们保存在一个文件夹中。在不查看数据的情况下,使用MLBox库来提交首个预测。 你可以在下面的代码中找到该问题的预测。

  MLBox库的打开方式

  以下是LightGBM计算出的功能重要性的图像。

  MLBox库的打开方式

  偏移(Drift)的基本理解

  偏移不常见,但却很重要。关于它,应当用单独的一篇文章去阐述, 但在此我将尽量把Drift_Thresholder的功能解释清楚。

  一般来说,我们预设练习和测试数据集是通过相同的生成算法或过程创建的。但这个预设过于强大,现实世界中并非如此,数据发生器或过程可能会发生改变。 例如,在销售预测模型中,客户行为随时间变化,生成的数据将与用于创建模型的数据不同。 这就叫做偏移。

  还需要注意的是,在数据集中,独立功能和依赖功能都可能发生偏移。 当独立功能发生变化时,称为协变量;当独立和相关功能之间的关系发生变化时,称为概念偏移。 MLBox是处理协变量的。

  MLBox库的打开方式

 

  

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

MLBox库的打开方式下载

相关电子资料下载

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!