文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

机器学习和人工智能数据预处理和建模的工具Slik-wrangler

2024-12-02 01:20

关注

为了解决这个问题,必须预先对数据进行数据清洗和预处理,而这却是数据科学中最繁琐,最恼人的工作。算法的学习可以在一行代码中完成,模型的训练工作也可能需要几秒钟或几天不等的时间内自动完成。而历来数据的处理缺失需要人工长时间来处理,如果自动对这些数据处理成了数据科学工作者迫切的需求,本文我们就介绍这样一个工具Slik-wrangler。

在本文中将展示Slik-wrangler的一些基本用法。在介绍一些概念的同时,还会演示一些有用的函数,这些函数有助于数据清理和整理。

概述

为解决数据研究中的数据处理的烦恼产生了Slik-wrangler。它旨在帮助解决在处理任何形式的数据时基本数据整理和预处理的问题。Slik-wrangler项目有助于快速启动监督学习,它自带多种工具,可以轻松加载任何格式的数据、并进行清理和检查。它提供了一种预处理数据和执行特征工程的快速方法。

数据预处理

数据预处理是将原始数据转换为易于理解的格式的过程,这也是数据挖掘中的最重要一步。因为原始数据很难处理。在应用机器学习或数据挖掘算法之前,都需要检查数据的质量。

在数据开学中,经常会提及一个概念“脏进脏出”(Garbage In、Garbage out)即如果你使用的是“坏”或“脏”数据来训练模型,即使你的算法再高明,模型再好,出现的结果也是错误的。

所以原始数据必须做预处理,保证数据真实、正确且具有统计学意义。

数据预处理步骤

要对数据做预处理,必须遵循一定的步骤,以确保成功预处理数据:

  1. 数据加载(Data Loading)。
  2. 数据质量评估(Data quality assessment)。
  3. 数据清洗(Data cleaning)。
  4. 数据转换(Data transformation)。
  5. 数据裁剪(Data reduction)。

下面我们以这些基本步骤为示例,介绍Slik-wrangler的基本功能。

安装部署

Slik-wrangler支持安装在Linux、MacOS和Windows。在支持版本Python(3.5+)环境下可以通过pip包管理器直接安装。

pip install slik-wrangler

也可以在的多版本Python环境中安装,比如通过Anaconda。首先,确认已安装 Anaconda:

conda --version

创建新的虚拟环境并安装Python 3.5 及更高版本:

conda create -n yourenvname python=3.7

激活环境:

source activate yourenvname

然后安装Slik-wrangler和项目所需的其他软件包

pip install slik_wrangler

测试安装:

python
Python 3.7.1 (default, Dec 14 2018, 19:28:38)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
import slik_wrangler

数据加载

数据加载(导入)是处理任何数据集的第一步。Slik-wrangler提供loadfile模块实现高效地读取数据文件。

使用Pandas读取文件时,需要指定要读取的文件的特定扩展名。例如CSV、excel、parquet等。而使用loadfile载入数据,可以直接读取具有不同文件扩展名的多个文件,无需指定扩展名。可以用函数read_file 加载 CSV、excel和parquet等不同类型的文件。只需指定的文件路径,对不同扩展名数据文件loadfile可以自动适配处理。

from slik_wrangler import loadfile as lf
lf.read_file(path_to_dataset)

假设有一个包含大数据集的文件,比如有几百万行的数据集,可能需要将其拆分为较小文件(数据集),比如2w行。可以使用split_csv_file来进行处理。这对需要从文件中读取的有限行数据进行分析的情况很有用。

from slik_wrangler import loadfile as lf
lf.split_csv_file(path_to_dataset, row_limit=20000)

数据质量评估 (DQA)

数据质量评估(DQA)是判定数据(或数据集)质量的过程。判定数据质量的过程可确保数据适合使用并满足项目或业务流程所需的质量。slik-wrangler中提供了专门的模块dqa用来进行数据质量评估,slik-dqa包含了用于数据质量检查的多个功能。

其中data_cleanness_assessment ,用来检查并显示数据清洁程度的总体程度。

from slik_wrangler.dqa import data_cleanness_assessment
data_cleanness_assessment(dataset)

结果显示数据集的干净程度以及是否有任何需要解决的数据问题,比如示例数据集中主要存在数据缺失的问题,其中Cabin缺失数据高达77.2%。

slik-dqa还提供了用于检查数据集特定问题独立函数,例如:

数据清洗

数据清理是格式化/清理数据以使其适合分析的过程。它包括处理缺失值、替换重复项以及更正、修复或删除不相关的数据。这是实现数据满足业务需求的最重要的预处理步骤。是slik-wrangler提供了一个有价值的API来清理的数据集,称为预处理(约定import为pp):

from slik_wrangler import preprocessing as pp

识别和修复异常值

异常值会对数据分析和建模结果产生巨大影响。例如,如果对人群的年龄进行调查,并且如果有人输1000作为他的年龄。这明显就是错误的,如果不删除或纠正,它会极大地扭曲结果(比如求平均年龄)。

slik-wrangler目前主要依靠四分位距方法来检测数据集中存在的异常值,还使用不同的方法修复数据中存在的异常值,例如用数据点的平均值或中值替换异常值。可以自定义要筛选的数字特征,并显示一个表格,该表格连续标识至少“n”个异常值。

from slik_wrangler import preprocessing as pp
pp.detect_fix_outliers(data,target_column='Age',n=1)

识别缺失值

要检查我们的数据集是否包含缺失值,可以使用check_nan函数。上面的dqa模块中slik_wrangler.preprocessing也可显示缺失数据信息的概述。我们可以对其缺失占比图示显示:

from slik_wrangler import preprocessing as pp
pp.check_nan(train, plot=True)

图示方法比直接数字的效果要明显得多。

处理缺失值

有几种方法可以处理缺失值,可以删除缺失值或用特定的值替换缺失值。slik-wranglerz使用handle_nan模块智能高效地处理数据中的缺失值。handle_nan函数通过选择一种策略来处理的数字特征,为fillna参数传递一个值来处理分类特征或默认使用mode填充。还可以使用threshold参数跨行和列删除缺失值。

删除缺失值可以使用以下替代方法之一:

用另一个值替换缺失值。通常采用以下策略:

from slik_wrangler import preprocessing as pp
data = pp.handle_nan(
dataframe=titanic, target_name='Survived', strategy='mean',
fillna='mode', drop_outliers=True, thresh_x=50, thresh_y=75,
display_inline=True
)

以上示例中,我们设置去除掉记录(行)阈值thresh_x中缺失值超过50%的值。设置一个字段(列)中thresh_y阈值thresh_y缺失值超过75%的列。

结果中对缺失超过75%的一列数据清除,原始数据由12列变为11列。

data.shape
(890, 11)

slik.preprocessing模块用来进行对数据预处理,它可以实现一行代码中清理数据。该函数通过删除数据中存在的异常值、处理缺失值、特征化DateTime 列和映射相关列来清理您的数据。

from slik_wrangler import preprocessing as pp
pp.preprocess(
data= titanic, target_column='Survived', train=True,
display_inline=True, project_path='./Titanic', logging='display'
)

将预处理结果文件保存在指定的项目路径中,本例中为当前路径下的Titanic目录。

总结

在机器学习ML和人工智能AI数据准备阶段,数据预处理过程将其进行数据整理,评估,清洗和异常处理的过程。统计数据表明,数据科学家在数据预处理花费的时间大概占整个项目的80%还多。如果能将这部分繁琐和耗时的过程自动化,这样可以大大增加研究人员在数据分析EDA、算法和模型研究等其他事情的时间。

slik-wrangler非常适合从初学者到专家级数据科学家。通过使用 Slik-wrangler 进行数据预处理,可以实现自动评估数据质量和存在的问题,有效处理缺失值、处理异常值和列管理,从而建立数据模式,为进一步数据分析做好准备。

来源:虫虫搜奇内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯