面向数据科学家的懒惰Python 库

你今天感到昏昏欲睡吗?使用这五个库来提高您的工作效率

一、介绍

        数据科学既鼓舞人心,又具有挑战性。通过绘制各种图表以及微调模型以获得最佳结果来执行数据预处理和清理并从数据中生成见解是相当费力的。

        在这篇博客中,我将向您介绍五个 Python 库,它们为您自动化这些过程,从而节省您的时间并提高您的工作效率。

        只需几行代码即可生成全面的报告、调整超参数,甚至部署机器学习模型。事不宜迟,让我们从博客开始。

        出于数据分析和模型构建的目的,我们将使用鸢尾花数据集。您可以在此处找到数据。我将使用此存储库来预览 HTML 文件。

#Importing the pandas 
import pandas as pd

#Loading the data
data = pd.read_csv('Iris.csv')

以下是提高工作效率的五个库:

二、sweetviz(甜蜜可视化)

        这是一个开源的 Python 库,主要用于探索性数据分析 (EDA)。只需几行代码,该库就能够生成带有图形和视觉效果的综合报告。

        这些报告以 HTML 或 Jupyter Notebook 格式生成,便于查看和共享。此外,该报告还包括相关性分析(热图)、直方图和各种其他可视化效果。

        还可以通过指定目标变量、更改图表类型甚至更改布局来自定义报表。此外,您将能够比较两个不同的数据集并因此生成有用的见解。

        若要安装库,请在命令提示符下键入以下代码:

pip install sweetviz

        若要生成数据集的报告,可以使用分析函数。

#Importing SweetViz
import sweetviz

#Generating report
report = sweetviz.analyze(data)
#To save the HTML format of the report, use this:
report.show_html()

#To view the report inside a Jupyter Notebook, use this:
report.show_notebook()

HTML 报告如下所示:

网页报告

SweetViz HTML Report(来源:作者)

要了解有关该库及其功能的更多信息,可以在此处查看文档。您可以在此处找到报告的预览。

三、pandas分析

        Pandas 库中有各种函数可用于分析数据,包括 data.info()、data.isnull()、data.describe() 等。 但是,单独应用这些功能可能需要相当长的时间。

        通过使用 Pandas 分析库可以自动执行这些过程,该库只需几行代码即可生成全面的报告。该库与SweetViz非常相似,但它提供了更多功能。

        若要安装库,请在命令提示符下键入以下代码:

pip install pandas-profiling

        我们可以通过使用配置文件报告生成报告。

#Importing ProfileReport
from pandas_profiling import ProfileReport

#Generating Report
report = ProfileReport(data)

该报告分为许多部分,分别是:

  1. 概述部分:
    在本节中,我们找到诸如变量类型、重复行、缺失值和观测值总数等信息。
  2. 警报部分:
    在本节中,我们将了解变量的分布、变量之间的相关性以及与数据集相关的问题。
  3. 复制:
    它提供有关分析开始和结束日期的信息。此外,它还告诉我们执行整个分析需要多长时间。
  4. 变量
    可以对本节中选择的任何要素执行单变量分析。它提供有关特征的信息,例如其平均值、中位数、非重复值的数量等。
  5. 交互作用:
    本节的目的是执行双变量分析。使用它,我们可以绘制任意两个特征之间的散点图。
  6. 相关性
    此部分包括显示两个变量之间相关性的热图。
  7. 缺失值:
    在本节中,我们提供了一个缺失值矩阵,使我们能够可视化数据集中的缺失值
  8. 示例:
    允许我们查看数据集的前 10 行和后 10 行,类似于 data.head(10) 和 data.tail(10)。

要了解有关该库及其功能的更多信息,可以在此处查看文档。 您可以在此处查看个人资料报告。

四、lazypredict懒惰预测

        在某些情况下,我们希望将不同的机器学习模型应用于数据集,并确定哪个模型可提供最佳结果。手动导入它们并训练它们可能被证明是一个费力的过程。在这种情况下,LazyPredict库很有用。

        这是一个开源的 Python 库,允许在不调整超参数的情况下比较各种模型。在几行中,可以训练和比较各种机器学习模型。它既可用于分类问题,也可用于回归问题。

        若要安装库,请在命令提示符下键入以下代码:

pip install lazypredict

        使用此库,要查找鸢尾花数据集的最佳模型,请执行以下操作:

# Separating the target variable and rest of the data.
y = data['Species']
data.drop('Species',inplace=True,axis=1)
X = data

# Splitting the dataset into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.5,random_state =1)


clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)

#Training the models
models,predictions = clf.fit(X_train, X_test, y_train, y_test)

# Printing the output
models

懒惰预测输出(来源:作者)

它根据各种指标(包括准确性、F1 分数和执行时间)比较模型。

要了解有关库及其功能的更多信息,您可以查看此 GitHub 存储库。 此外,您可以查看我的博客,其中我已经在烟雾检测数据上实现了LazyPredict。

六、FLAML机器学习模型 

        与LazyPredict一样,FLAML允许我们比较不同的机器学习模型,但它也帮助我们调整超参数并选择最佳模型。

        它由Microsoft开发,并使用Microsoft研究开发的超参数优化和模型选择系统。

        在 FLAML 中,LightGBM、XGBoost、Random Forest 等是默认模型。我们还能够添加模型并指定训练模型的时间限制。

        若要安装库,请在命令提示符下键入以下代码:

pip install flaml

        使用 FLAML 查找最佳模型:

from flaml import AutoML
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split

# Separating the target variable and rest of the data.
y = data['Species']
data.drop('Species',inplace=True,axis=1)
X = data

#Using Label Encoder to convert categorical variables to numerical variables
label_endcoder = LabelEncoder()
y = label_endcoder.fit_transform(y)

# Splitting the dataset into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.5,random_state =1)

automl = AutoML()

#Training the models
automl.fit(X_train, y_train, task="classification")

要找出最佳模型,请使用以下代码:

automl.best_estimator

在这种情况下,最好的模型是xgb_limitdepth。

若要获取有关最佳模型的超参数的信息,请键入以下代码:

automl.best_config 
 

最佳模型的超参数信息(来源:作者)

要了解有关该库及其功能的更多信息,可以在此处查看文档

七、PyCaret模型

        它的开发目的是花更少的时间编码,花更多的时间分析数据。它是一种端到端的模型管理工具,可帮助我们自动化机器学习过程。

        PyCaret 可自动执行特征工程、缺失值插补、超参数调整,甚至部署。

        作为数据准备过程的一部分,PyCaret 允许我们使用主成分分析 (PCA) 执行归一化、缩放、特征选择、异常值去除和许多其他功能。

        在训练阶段,我们可以添加和删除模型,指定时间约束,比较不同的模型,并绘制各种图形,例如ROC曲线。

该模型可以部署在AWS,Google Cloud Platform(GCP)或Microsoft Azure上。还可以将转换管道和训练的模型对象另存为 pickle 文件,并随时检索它们。

若要安装库,请在命令提示符下键入以下代码:

pip install pycaret 

准备数据:

from pycaret.classification import *

#Loading the data, defining the target varaible and performing normalizing 
#the data using z-score
clf = setup(data = data, target = 'Species',normalize=True,
             normalize_method='zscore'))

设置数据(来源:作者)

寻找最佳模型:

# compare models
compare_models()

最佳模特(来源:作者)

绘制逻辑回归的 ROC 曲线:

lr = create_model('lr')

# plotting the ROC Curve
plot_model(lr, plot = 'auc')

ROC Curve (Source: Author)

Saving the model:

#Saving the model in a pikle file (pipeline.pkl)
save_model(lr,'pipeline')
 

保存模型(来源:作者)

要了解有关该库及其功能的更多信息,可以在此处查看文档

八、结论

·        不过,我建议手动执行从数据准备到部署的所有过程。通过这些过程,您可以增强您的知识并获得经验。

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/132221324