全文共2468字,预计学习时长7分钟
Dabl 是Data Analysis Baseline Library的缩写(数据分析基线库)。Dabl 背后的理念是使监督式学习自动化,以减少常见任务的样板。
在建立任何预测模型的时候,数据都必须经过清理、分析,并通过不同的参数调整,运行各种模型,从而获得最佳的准确率。这样的操作需要多行代码和人为操作,但如果由dabl处理,只需很少几行代码,就可以节省人们处理海量数据的时间和开销。
开发这个库的主要目的是留给数据科学家更多的时间去思考问题陈述和创建更多的惯例分析,而不是每次都重复相同的操作步骤。Dabl从scikit-learn和auto-sklearn中获得灵感。
安装及输入
只需要输入一个库,这个库dabl就可以完成所有必要的任务。
!pip install dabl
import dab
获取数据
Dabl 中几乎没有可以直接加载和使用的数据帧。我们也可以使用常规的Pandas 风格来读取外部数据,我们将在包含成人人口普查数据集的数据框架上工作。
df = dabl.datasets.load_adult()
df.head()
数据清理
数据清理是第一步。Dabl 尝试检测数据集中的数据类型并应用适当的转换。Dabl 的目标是为数据可视化和模型提供足够的数据清理。如果需要,也可以执行自定义清理。
dabl.clean(X, type_hints=None, return_types=False, target_col=None, verbose=0)
· X:数据帧
· type_hinta:如果语义类型(连续的、范畴的、顺序的、文本等)检测失败
· return_type:是否返回推断的类型
· target_colstring:Target 列永远不会被删除
data_clean = dabl.clean(df, type_hints={"capital-gain":"continuous"})
data_clean
描述数据集
传统意义上,在数据集上应用.info()可以获得初始分析。另外我们可以使用 dabl.data _ types ()来预测每个列的数据类型。
dabl.detect_types(X, type_hints=None, max_int_cardinality='auto', dirty_float_threshold=0.9, near_constant_threshold=0.95, target_col=None, verbose=0)
dabl.detect_types(df)
探索性数据分析
dabl.plot()能够快速分析数据。然而,dabl 并不能保证将数据所有有价值的部分都呈现出来。它提供了非常高层次的见解,比如重要特性、它们之间的交互以及问题的难易程度,人们不得不再次执行传统的自定义绘图来进行具体的分析。
dabl.plot(X, y=None, target_col=None, type_hints=None, scatter_alpha='auto', scatter_size='auto', verbose=10, plot_pairwise=True, **kwargs)
dabl.plot(df, target_col="income")
不可思议吧,只用了半行代码就得到了相当不错的结果。
模型构建
Simplecclassifier 被用来寻找最佳拟合模型,它对子采样数据应用几个基线。dabl的灵感来源于scikit-learn(由于dabl受到scikit-learn的启发),它帮助我们指定数据,以符合 scikit-learn 风格。方法有两种:
model = dabl.SimpleClassifier(random_state=0)
X = data_clean.drop("income", axis=1)
y = data_clean.income
model.fit(X, y)
或者:
model = dabl.SimpleClassifier(random_state=0).fit(data_clean,target_col="income")
输出:
正如你所看到的,它通过不同的参数调整应用了几个模型,找到最佳拟合模型和准确率。Simplecclassifier 还可以进行预处理缺失值插补和一次性编码等预处理,可以使用 dabl.explain ()检查模型:
dabl.explain(model)
Dabl的局限性
现在,dabl仍不能用于处理文本数据、时间序列数据、神经网络模型,图像、音频和视频数据也完全超出了应用范围。其未来目标是:
· 现成的可视化
· 模型诊断
· 高效模型搜索
· 类型检测
· 自动预处理
· 良好的管道组合
真的需要人类数据科学家吗?
Dabl 非常有趣,并且是自动化的,但是它仍然处于开发阶段,只有非常少的特性和功能。笔者建议你浏览一下dabl提供的API列表。我个人任务部署一个功能齐全、个性丰富的版本仍然需要很长时间,如果它能完成,业界必须信任和接受它。
数据科学就是这样一个领域,业界每天都会生成一个独特的数据集和问题陈述/需求,因此在某个时候,人类的干预是必要的。自动化数据科学将是未来的趋势,但不会立刻到来,所以你可以专注于提高技能或学习数据科学。
图源:《福布斯》
记住,一定要提高自己的技能,每当你认为自己已经掌握了足够的知识时,就把这篇文章当做一个警钟,它可以让你不停地学习新的技能。
一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)