摘要
本文讨论使用LazyPredict来创建简单的ML模型。LazyPredict创建机器学习模型的特点是不需要大量的代码,同时在不修改参数的情况下进行多模型拟合,从而在众多模型中选出性能最佳的一个。
本文包括的内容如下:
- 简介
- LazyPredict模块的安装
- 在分类模型中实施LazyPredict
- 在回归模型中实施
- 总结
简介
LazyPredict号称最先进的Python软件包,它的诞生正在彻底改变机器学习模型的开发方式。通过使用LazyPredict,可以快速创建各种基本模型,几乎不需要任何代码,从而腾出时间来选择最适合我们数据的模型。
LazyPredict的主要优点是可以使模型选择更加容易,而不需要对模型进行大量的参数调整。LazyPredict提供了一种快速有效的方法来寻找和适配数据的最佳模型。
接下来,让我们通过这篇文章探索和学习更多关于LazyPredict的用法。
LazyPredict模块的安装
LazyPredict库的安装是一项非常简单的任务。如同安装任何其他Python库一样,只需一行代码轻松搞定。
!pip install lazypredict
在分类模型中实施LazyPredict
在这个例子中,我们将利用Sklearn包中的乳腺癌数据集。
现在,让我们来加载数据。
from sklearn.datasets import load_breast_cancer
from lazypredict.Supervised import LazyClassifierdata = load_breast_cancer()
X = data.data
y= data.target
为了选择最佳分类器模型,现在让我们部署"LazyClassifier "算法。这些特征和输入参数适用于该类。
LazyClassifier(
verbose=0,
ignore_warnings=True,
custom_metric=None,
predictions=False,
random_state=42,
classifiers='all',
)
接着把该模型应用于加载好的数据并进行拟合。
from lazypredict.Supervised import LazyClassifier
from sklearn.model_selection import train_test_split# split the data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.3,random_state =0)# build the lazyclassifier
clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)# fit it
models, predictions = clf.fit(X_train, X_test, y_train, y_test)# print the best models
print(models)
执行上述代码之后,得到下面结果:
然后,我们可以进行以下工作,来看看模型的细节。
model_dictionary = clf.provide_models(X_train,X_test,y_train,y_test)
接下来,设置模型的名称来显示详细的步骤信息。
model_dictionary['LGBMClassifier']
在这里,我们可以看到SimpleImputer被用于整个数据集,然后是StandardScaler用于数字特征。在这个数据集中没有分类或序数特征,但如果有,就会分别使用OneHotEncoder和OrdinalEncoder。LGBMClassifier模型在转换和归类后接收数据。
LazyClassifier的内部机器学习模型使用sci-kit-learn工具箱进行评估和拟合。LazyClassifier函数在被调用时,会在我们的数据上自动建立和拟合各种模型,包括决策树、随机森林、支持向量机等。你提供的一组性能标准,如准确率、召回率或F1得分,被用来评估这些模型。训练集用于拟合,而测试集则用于评估。
在对模型进行评估和拟合后,LazyClassifier会提供一份评估结果总结(如上表),以及每个模型的顶级模型和性能指标列表。由于不需要手动调整或选择模型,你可以快速简单地评估许多模型的性能,并选择最适合数据的模型。
在回归模型中实施LazyPredict
使用"LazyRegressor "函数,可以再次为回归模型完成同样的工作。让我们导入一个适合回归任务的数据集(使用波士顿数据集)。
现在,让我们使用LazyRegressor来拟合我们的数据。
from lazypredict.Supervised import LazyRegressor
from sklearn import datasets
from sklearn.utils import shuffle
import numpy as np# load the data
boston = datasets.load_boston()
X, y = shuffle(boston.data, boston.target, random_state=0)
X = X.astype(np.float32)# split the data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.3,random_state =0)# fit the lazy object
reg = LazyRegressor(verbose=0, ignore_warnings=False, custom_metric=None)
models, predictions = reg.fit(X_train, X_test, y_train, y_test)# print the results in a table
print(models)
代码执行结果如下:
以下是对最佳回归模型的详细描述:
model_dictionary = reg.provide_models(X_train,X_test,y_train,y_test)
model_dictionary['ExtraTreesRegressor']
这里可以看到SimpleImputer被用于整个数据集,然后是StandardScaler用于数字特征。这个数据集中没有分类或序数特征,但如果有的话,会分别使用OneHotEncoder和OrdinalEncoder。ExtraTreesRegressor模型接收了转换和归类后的数据。
结论
LazyPredict库对于任何从事机器学习行业的人来说都是一种有用的资源。LazyPredict通过自动创建和评估模型的过程来节省选择模型的时间和精力,这大大提高了模型选择过程的有效性。LazyPredict提供了一种快速而简单的方法来比较几个模型的有效性,并确定哪个模型系列最适合我们的数据和问题,因为它能够同时拟合和评估众多模型。
阅读本文之后希望你现在对LazyPredict库有了直观的了解,这些概念将帮助你建立一些真正有价值的项目。
译者介绍
崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。
原文标题:LazyPredict: A Utilitarian Python Library to Shortlist the Best ML Models for a Given Use Case,作者:Sanjay Kumar