首页 > 其他 > 详细

EDA_3 对比性分析

时间:2021-04-12 18:00:15      阅读:24      评论:0      收藏:0      [点我收藏+]

EDA_3 对比性分析

Sweetviz模块方法说明

  1. Sweetviz是另一个Python的开源代码包,仅用一行代码即可生成漂亮的EDA报告。与Pandas Profiling的区别在于它输出的是一个完全独立的HTML应用程序。
  2. Sweetviz不仅可以查看单变量的分布、统计特性,它还可以设置目标标量,将变量和目标变量进行关联分析。如上面报告最右侧,它获得了所有现有变量的数值关联和类别关联的相关性信息。
  3. Sweetviz的优势不在于单个数据集上的EDA报告,而在于数据集的比较。
  4. 可以通过两种方式比较数据集:将其拆分(例如训练和测试数据集),或者使用一些过滤器对总体进行细分。
  5. 不需要敲太多的代码就可以让我们快速分析这些变量,这在EDA环节会减少很多工作量,而把时间留给变量的分析和筛选上。

Sweetviz的一些优势在于:

  • 分析有关目标值的数据集的能力
  • 两个数据集之间的比较能力

但也有一些缺点:

  • 变量之间没有可视化,例如散点图
  • 报告在另一个标签中打开

一 操作流程

sweetviz支持Python 3.6+和Pandas0.25.3+环境,配置好环境后,使用万能的pip下载安装包:

1 安装库

pip install sweetviz

但有一个条件需要注意:sweetviz需要用到基础「os」模块。所以,如果你在使用类似于Google Colab的自定义环境,可能会无法使用sweetviz,目前开发者也在探索解决方案。

下载好后,使用import快速导入sweetviz,就可以开始使用了~

2 导入库

import sweetviz as sv

sweetviz使用的原理是,使用一行代码,生成一个数据报告的对象(其中,my_dataframe是pandas中的DataFrame,一种表格型数据结构):

3 运行函数

my_report = sv.analyze(my_dataframe)

在这里,analyze函数可以被替换为compare或compare_intra函数,使用方法在上面已经给出,全看你需要什么类型的数据报告了。

最后,用show一键输出。(结果会以SWEETVIZ_REPORT.html网页形式展示)

4 输出网页结果

muy_report.show_html()
# Default arguments will generate to "SWEETVIZ_REPORT.html"

二 3种函数用法

sweetviz是一个基于Python编写的数据分析软件,只要掌握3种函数用法,一行Python代码就能实现数据集可视化、分析与比较。

1 analyze()丨数据分析

analyze(source:            Union[pd.DataFrame,tuple[pd.DataFrame,str]],
        target__feat:      str = None),
		feat_cfg:          FeatureConfig = None,
        pairwise_analysis: str = ‘auto‘

数据分析函数中,有4个参数source,target_feat,feat_cfg和pairwise_analysis需要被设置。

source:以pandas中的DataFrame数据结构、或是DataFrame中的某一类字符串作为分析对象。

target_feat:需要被标记为目标对象的字符串。

feat_cfg:需要被跳过、或是需要被强制转换为某种数据类型的特征。

pairwise_analysis:相关性和其他类型的数据关联可能需要花费较长时间。如果超过了某个阈值,就需要设置这个参数为on或者off,以判断是否需要分析数据相关性。

技术分享图片

说明:数据相关性分析效果,可能需要花费一定时间

2 compare()丨两个数据集比较

my_report = sv.compare([my_dataframe,"Training Data"],
                       [test_df,"Test Data"],
                       "Survived",
                       feature_config)

如果想要对两个数据集进行对比分析,就使用这个比较函数。

例子中的my_dataframetest_df是两个数据集,分别被命名为训练数据测试数据

除了这个被插入的数据集,剩余的参数与analyze中的一致。

3 compare_intra()丨数据集栏目比较

my_report = sv.compare_intra(my_dataframe,
                             my_dataframe["Sex"] == "male",	
                             ["Male","Female"],
                             feature_config)

想要对数据集中某个栏目下的参数进行分析,就采用这个函数进行。

例如,如果需要比较“性别”栏目下的“男性”和“女性”,就可以采用这个函数。

理解这几种函数的变量后,一行代码就能实现Python数据分析。

4 网页文件效果

以Titanic数据集为例,输入一行代码:

my_report = sv.analyze(my_dataframe)

一个1080p的清晰网页界面就出现在了眼前。

技术分享图片

不仅根据性别、年龄等不同栏目纵向分析数据,每个栏目下还有众数、最大值、最小值等横向对比。

所有输入的数值、文本信息都会被自动检测,并进行数据分析、可视化和对比,最后帮你进行数据总结。

在这样的数据分析下,结果一目了然。

技术分享图片

说明:Titanic数据集部分功能细节展示

这样的效果,是基于3个主函数实现的。

三 3个函数实例应用

1 分析一个数据集

注意:Sweetviz仅支持分析dataframe数据结构的数据

当分析一个dataframe时,先使用analyze() 函数, 然后使用 show_html() 函数产出一个1080p宽屏的网页

import sweetviz as sv
import pandas as pd

my_dataframe=pd.read_csv("train.csv")
my_report = sv.analyze(my_dataframe)
my_report.show_html() # 默认生成的html文件为"SWEETVIZ_REPORT.html"

2 两个数据集的比较

要比较两个数据集,只需使用compare()函数。除了第二个参数不同外,其参数与analyze()相同。建议使用参数的[dataframe,“ name”]格式,以更好地区分测试集与比较集。

my_report = sv.compare([my_dataframe, "Training Data"], 
                       [test_df, "Test Data"], 
                       "Survived", 
                       feature_config)

3 比较同一数据帧的两个子集(例如,男性与女性)

另一种获得深刻见解的方法是使用比较功能将您的数据集分为2个子种群。

比较同一数据帧的两个子集(例如,男性与女性)
另一种获得深刻见解的方法是使用比较功能将您的数据集分为2个子种群。

通过compare_intra()函数可以将您的数据集分为2个子集并进行比较。

My_report = sv.compare_intra(my_dataframe,my_dataframe 
							 [“ Sex”] ==“ male”,
    						 [“ Male”,“ Female”],
        					 feature_config)

四 报错说明:

目前这个包还处于开发版本,还是存在很多的不足的地方,比如无法拉动网页界面,中文数据集会出现乱码等等。不过目前来看还是一个很不错的EDA工具

EDA_3 对比性分析

原文:https://www.cnblogs.com/PythonSQL/p/14648251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!