现在人工智能AI和机器学习已经走进了我们的日常生活,正在逐渐改变我们的生活。让生活更便捷、更人性化、更智能、更美好。但是,现阶段的人工智能(弱智)并不完美,存在这样那样的问题。除了算法、模型和计算能力的问题,最大的问题是数据不准确的问题。训练模型的数据是缺失的,是有噪音的,往往就是这一点点的数据噪音,都会让结果“出错”。为了解决这个问题,必须提前对数据进行清洗和预处理,这是数据科学中最繁琐和烦人的工作。算法的学习可以一行代码完成,模型的训练也可能需要几秒或几天自动完成。但缺乏数据处理,传统上长期需要人工处理。如果自动处理这些数据成为数据科学家的迫切需求,我们将在本文中介绍这样一个工具Slik-wrangler。在本文中,将展示Slik-wrangler的一些基本用法。在介绍一些概念的同时,它还演示了一些有助于数据清理和整理的有用功能。概述Slik-wrangler的诞生是为了解决数据研究中数据处理的烦恼。它旨在帮助处理任何形式的数据时进行基本的数据整理和预处理。Slik-wrangler项目使用可以轻松加载、清理和检查任何格式的数据的工具,帮助启动监督学习。它提供了一种预处理数据和执行特征工程的快速方法。数据预处理数据预处理是将原始数据转换成易于理解的格式的过程,这也是数据挖掘中最重要的步骤。因为原始数据很难处理。在应用机器学习或数据挖掘算法之前,需要检查数据的质量。在数据学习中,经常会提到一个“垃圾输入,垃圾输出”(GarbageIn,Garbageout)的概念,即如果你使用“坏”或“脏”的数据来训练模型,无论你的算法多么聪明就是,模型再好,结果也是错误的。因此,必须对原始数据进行预处理,以保证数据的真实性、正确性和统计显着性。数据预处理步骤要预处理数据,必须遵循某些步骤以确保数据预处理成功:数据加载。数据质量评估。数据清洗。数据转换。数据缩减。下面我们以这些基本步骤为例,介绍一下Slik-wrangler的基本功能。安装部署Slik-wrangler支持在Linux、MacOS和Windows上安装。在支持的版本Python(3.5+)环境下,可以直接通过pip包管理器安装。pipinstallslik-wrangler也可以在多版本Python环境下安装,比如通过Anaconda。首先确认安装了Anaconda:conda--version新建一个虚拟环境,安装Python3.5及以后版本:condacreate-nyourenvnamepython=3.7激活环境:sourceactivateyourenvname然后安装项目需要的Slik-wrangler等软件包pipinstallslik_wrangler测试安装:pythonPython3.7.1(默认,2018年12月14日,19:28:38)[GCC7.3.0]::Anaconda,Inc.onlinuxType"help","copyright","credits"或“license”获取更多信息。importslik_wrangler数据加载数据加载(导入)是处理任何数据集的第一步。Slik-wrangler提供了loadfile模块来高效读取数据文件。使用Pandas读取文件时,需要指定要读取的文件的具体扩展名。如CSV、excel、parquet等。使用loadfile加载数据时,可以直接读取多个不同扩展名的文件,无需指定扩展名。可以使用函数read_file加载不同类型的文件,例如CSV、excel和parquet。只需指定文件路径,加载文件就可以自动适配不同扩展名的数据文件。fromslik_wranglerimportloadfileaslflf.read_file(path_to_dataset)假设有一个包含大数据集的文件,比如有几百万行的数据集,可能需要拆分成更小的文件(数据集),比如2w行.您可以使用split_csv_file进行处理。这对于需要对从文件中读取的有限行数据进行分析的情况很有用。fromslik_wranglerimportloadfileaslflf.split_csv_file(path_to_dataset,row_limit=20000)数据质量评估(DQA)数据质量评估(DQA)是判断数据(或数据集)质量的过程。确定数据质量的过程确保数据适合使用以及项目或业务流程所需的质量。slik-wrangler中提供了一个专门的模块dqa用于数据质量评估,slik-dqa包含多个数据质量检测功能。其中data_cleanness_assessment用于检查和展示数据的整体清洁度。fromslik_wrangler.dqaimportdata_cleanness_assessmentdata_cleanness_assessment(dataset)结果显示数据集的清洁度以及是否有任何数据问题需要解决。例如,样本数据集中主要存在缺失数据,Cabin的缺失数据高达77.2%。slik-dqa还提供了独立的功能来检查特定于数据集的问题,例如:missing_value_assessment:缺失数据评估;duplicate_assessment:重复数据评估;数据清理数据清理是格式化/清理数据以使其适合分析的过程。它包括处理缺失值、替换重复项以及更正、修复或删除不相关的数据。这是实现数据满足业务需求的最重要的预处理步骤。slik-wrangler提供了一个有价值的API来清理数据集,称为预处理(约定import为pp):fromslik_wranglerimportpreprocessingaspp识别和修复异常值异常值会对数据分析和建模结果产生很大影响。例如,如果对人群的年龄进行民意调查,如果有人输入1000作为他的年龄。这显然是错误的,如果不删除或更正,它会极大地扭曲结果(例如平均年龄)。slik-wrangler目前主要依靠四分位距法来检测数据集中的离群值,也有使用不同的方法来修复数据中的离群值,比如用数据点的均值或中值代替离群值。可以自定义要过滤的数字特征,并显示一个表格,该表格至少标识一行中的“n”个异常值。fromslik_wranglerimportpreprocessingaspppp.detect_fix_outliers(data,target_column='Age',n=1)识别缺失值要检查我们的数据集是否包含缺失值,我们可以使用check_nan函数。上面dqa模块中的slik_wrangler.preprocessing也可以显示缺失数据信息概览。我们可以图形化的展示它的缺失率:fromslik_wranglerimportpreprocessingaspppp.check_nan(train,plot=True)图形化的方式比直接数字要有效得多。处理缺失值有几种方法可以处理缺失值,可以删除缺失值或者用特定值替换缺失值。slik-wranglerz使用handle_nan模块智能高效地处理数据中的缺失值。handle_nan函数通过选择一种策略来处理数字特征,为fillna参数传递一个值来处理分类特征或默认填充模式。也可以使用阈值参数跨行和跨列删除缺失值。可以使用以下替代方法之一来删除缺失值:删除具有缺失值的行。删除包含缺失值的列。用另一个值替换缺失值。一种常见的策略是使用以下策略:对于数值,用均值或众数替换缺失值。对于分类值,将缺失值替换为该列的最频繁值(众数)或您想要的任何值。从slik_wrangler导入预处理为ppdata=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列和映射相关列来清理数据。fromslik_wranglerimportpreprocessingaspppp.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进行数据预处理,可以自动评估数据质量和存在的问题,有效处理缺失值、异常值处理和列管理,从而建立数据模型,为进一步的数据分析做准备。
