评估机器学习数据集质量利器 (可视化操作)

大家好,我是辰哥~

好的数据集质量,决定后续模型的上限 (Better data leads to better models),那么怎么快速评估数据集的质量了?

本文分享的Facets,是一款由Google开源、快速评估数据集质量的神器;

Facets包含2个组件:

  • facets overview:outlier检测、数据集间各特征分布比较

  • facets dive:交互式探索某一特定数据细节。


安装

pip install facets-overview

facets overview

以一个案例简单介绍使用方法,

# 1、生成数据源
import pandas as pd

features = [
    "Age", "Workclass", "fnlwgt", "Education", "Education-Num",
    "Marital Status", "Occupation", "Relationship", "Race", "Sex",
    "Capital Gain", "Capital Loss", "Hours per week", "Country", "Target"
]
train_data = pd.read_csv(
    "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data",
    names=features,
    sep=r'\s*,\s*',
    engine='python',
    na_values="?")
test_data = pd.read_csv(
    "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.test",
    names=features,
    sep=r'\s*,\s*',
    skiprows=[0],
    engine='python',
    na_values="?")

# 2、GenericFeatureStatisticsGenerator()和ProtoFromDataFrames()函数存储数据集的所有统计信息
from facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator
import base64

gfsg = GenericFeatureStatisticsGenerator()
proto = gfsg.ProtoFromDataFrames([{
    'name': 'train',
    'table': train_data
}, {
    'name': 'test',
    'table': test_data
}])
protostr = base64.b64encode(proto.SerializeToString()).decode("utf-8")


# 3、生成HTML并可视化结果
from IPython.core.display import display, HTML

HTML_TEMPLATE = """
        <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script>
        <link rel="import" href="https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html" >
        <facets-overview id="elem"></facets-overview>
        <script>
          document.querySelector("#elem").protoInput = "{protostr}";
        </script>"""
html = HTML_TEMPLATE.format(protostr=protostr)
display(HTML(html))

6c438137c44ad79be550e588844fee77.png4545fa196157b4a84c694ceed22f7f0c.png以上结果可非常方便的展示train//test数据集的偏斜情况、缺失值情况等等。


facets dive

同样以一个案例简单介绍使用方法,

import base64
import urllib.request
import os
import pandas as pd

# 数据准备
img_url = "https://storage.googleapis.com/what-if-tool-resources/misc-resources/fmnist_sprite_atlas.png"
img_name = os.path.basename(img_url)
urllib.request.urlretrieve(img_url, img_name)

df_fmnist = pd.read_csv(
    "https://storage.googleapis.com/what-if-tool-resources/misc-resources/fmnist.csv"
)
with open("fmnist_sprite_atlas.png", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())

# 生成HTML并可视化展示
from IPython.core.display import display, HTML

jsonstr = df_fmnist.to_json(orient='records')
HTML_TEMPLATE = """
        <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script>
        <link rel="import" href="https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html">      
        <facets-dive id="elem" height="1000" sprite-image-width="28" sprite-image-height="28" atlas-url="data:image/png;base64,{encoded_string}"></facets-dive> #调用facets-dive 
       
        <script>
          var data = {jsonstr};
          document.querySelector("#elem").data = data;
        </script>"""
html = HTML_TEMPLATE.format(jsonstr=jsonstr,
                            encoded_string=encoded_string.decode("utf-8"))
display(HTML(html))
4bc27bdf2accfcae8edd81e40bdb2f2f.png 04ae82ea0059f3590adc2d7c9ad4aa6f.png 参考&进一步学习:https://github.com/PAIR-code/facets

最后

d9976023b8a1660af33053daf661e4ee.png

又一个Python神器,不写一行代码,就可以调用Matplotlib绘图!


dcb7bb69a43a194bccca452923780fdf.png

我用Python爬取了4000+股票数据,并用plotly绘制了树状热力图(treemap)


aeb7405714e4bd4c0b804308a27eb879.png

可视化 Python 打包 exe,这个神器绝了


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python机器学习数据分析预测可视化系统是一个基于Python编程语言的工具,用于处理和分析大量的数据,并通过机器学习算法进行预测和可视化展示。 首先,这个系统可以使用Python中的各种数据处理库(如Pandas、NumPy、SciPy等)来处理大规模的数据集。这些库提供了丰富的函数和方法,方便用户进行数据清洗、处理和转换,以便进一步的分析。 其次,机器学习算法是该系统的重要组成部分。Python提供了强大的机器学习库(如Scikit-learn、TensorFlow、Keras等),可以使用这些库中的各种算法来构建和训练机器学习模型。这些算法包括回归、分类、聚类、降维等,用于根据已有的数据来预测新的数据,并提供潜在的模式和趋势。 此外,该系统还提供了丰富的可视化工具,使用户可以通过图表、图像和动画来呈现数据和分析结果。Python可视化库(如Matplotlib、Seaborn、Plotly等)提供了多种可视化方式,配合数据分析和预测模型的结果,可以直观地展示数据的特征和变化趋势,帮助用户更好地理解和解释数据。 最后,这个系统还具备灵活性和扩展性。Python作为一种开源的编程语言,有着庞大的社区支持和丰富的第三方库,用户可以根据自己的需求扩展和定制系统功能。此外,Python还具备跨平台的特性,可以在不同操作系统上运行。 综上所述,Python机器学习数据分析预测可视化系统是一种方便、强大和灵活的工具,可以帮助用户高效地处理和分析大规模的数据,并通过机器学习算法进行预测,并通过可视化方式直观地展示分析结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值