数据科学自动化的进展

随着科技的飞速发展,数据科学在各个行业中的应用日益广泛。企业越来越依赖于数据驱动的决策。根据某就业网站发布的报告,数据科学家的需求在一年内增长了29%。然而,数据科学领域的专业人才增长并未达到预期,仅增长了14%。即使在数字化的今天,数据科学仍然需要大量的手工操作。从数据存储、清洗、探索性分析、数据可视化,到最终的模型拟合,以支持决策制定。这些手工操作在一定程度上可以自动化,因此数据科学的自动化时代已经到来。

除了业务理解和模型部署之外,数据科学流程的几乎所有方面都在自动化的过程中。让看看这个领域的一些发展。

数据是每项分析的基石,需要投入大量的时间来理解数据。不完整的数据可能导致模型不可靠或有偏见,如果业务基于这些模型做出决策,后果将不堪设想。

pip install -U dataprep

是一个开源的Python库,允许用几行代码准备数据。Dataprep允许可视化数据集中的任何缺失数据,发现缺失数据在准备数据时是必需的,以便可以用有用的数据替换它。

from dataprep.connector import *

是一个组件,旨在通过提供一组标准操作来简化从Web API的数据收集。它是一个开源的API包装器,通过使对多个API的调用变得更加快速,从而加快开发速度。通过一个直观的库来流线化对多个API的调用。

数据清洗是数据科学家最繁琐的任务之一,它占用了他们宝贵的时间。过去几年,这是一个专门研究的话题。初创公司和大型成熟公司都提供了自动化和数据清洗工具。

from dataprep.clean import *

旨在为Pandas中各种语义类型的数据清洗和标准化提供大量功能,具有统一的接口。

df = clean_headers(df)

将标题转换为蛇形大小写。

print(df.columns)

在dataprep.clean中还有更多功能,例如:

df = clean_phone(df, 'phone')

用于标准化电话号码格式。

df = clean_address(df, 'local_address')

用于标准化地址中的不一致性。

数据探索是指数据分析和模型构建中的初步步骤,数据分析师使用统计技术描述数据集的特征,如大小、质量、数量和准确性,并总结它以更好地理解数据的性质。

from dataprep.eda import plot_missing

是Python中最快、最简单的EDA工具。它允许数据科学家用几行代码在几秒钟内理解Pandas。

plot_missing(df)

使对缺失值及其对数据集的影响进行全面分析。

plot_correlation()

生成相关矩阵和相关系数。

plot(df)

为每个数值列绘制直方图,为每个分类列绘制条形图,并计算数据集统计信息。

它允许使用create_report函数从Pandas/Dask DataFrame创建详细报告。DataPrep.EDA比基于Pandas的分析工具快100倍,生成交互式可视化报告,使报告看起来更有吸引力,并且支持大数据,与以前不容易处理的数百万行数据一起工作。

数据科学生命周期中,下一个也是最受欢迎的步骤是模型拟合。自动化机器学习(AutoML)目前在数据科学社区是热门话题。AutoML为提供了工具,帮助在最小用户参与的情况下为给定数据集找到合适的机器学习模型。

from autosklearn.classification import AutoSklearnClassifier

是一个Python库,旨在执行各种任务,如二元/多类分类和回归,这些任务涉及包含不同类型数据的表格数据集,如数值、分类、文本等。

另一个例子是Auto-Sklearn。它是一个Python库,用于自动发现回归任务的顶级性能模型。它使用scikit-learn机器学习库中的机器学习模型。

Auto-Sklearn的好处在于,除了发现数据准备和对数据集表现良好的模型外,它还能够从在类似数据集上表现良好的模型中学习,并能够自动创建在优化过程中发现的顶级性能模型的集成。

model = AutoSklearnClassifier(time_left_for_this_task=5*60, per_run_time_limit=30, n_jobs=8)

配置为运行5分钟,8个核心,并限制每个模型评估为30秒。

model.fit(X_train, y_train)

执行搜索。

print(model.sprint_statistics())

一旦模型构建完成,就该检查模型的性能或模型工作的准确性了。如果准确性不符合标准,模型就不考虑适合该数据集。

y_hat = model.predict(X_test)

评估最佳模型。

acc = accuracy_score(y_test, y_hat) print("Accuracy: %.2f" % acc)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485