MLBox库的打开方式
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”,列表是值的列表。
使用以下几步找出从上面选择最佳组合的过程:
Step1:创建一个Optimizer类的对象,它的参数是“scoring”和“n_folds”。 评分是优化超参数空间的指标,n_folds是交叉验证的文件夹个数。
评分值
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库来提交首个预测。 你可以在下面的代码中找到该问题的预测。
以下是LightGBM计算出的功能重要性的图像。
偏移(Drift)的基本理解
偏移不常见,但却很重要。关于它,应当用单独的一篇文章去阐述, 但在此我将尽量把Drift_Thresholder的功能解释清楚。
一般来说,我们预设练习和测试数据集是通过相同的生成算法或过程创建的。但这个预设过于强大,现实世界中并非如此,数据发生器或过程可能会发生改变。 例如,在销售预测模型中,客户行为随时间变化,生成的数据将与用于创建模型的数据不同。 这就叫做偏移。
还需要注意的是,在数据集中,独立功能和依赖功能都可能发生偏移。 当独立功能发生变化时,称为协变量;当独立和相关功能之间的关系发生变化时,称为概念偏移。 MLBox是处理协变量的。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%