【ML】探索性数据分析 (EDA)

简介

探索性数据分析 (EDA) 以了解我们数据集的信号和细微差别。这是一个循环过程,可以在我们开发过程的各个阶段(标记之前/之后、预处理等)完成,具体取决于问题的定义程度。例如,如果我们不确定如何标记或预处理我们的数据,我们可以使用 EDA 来解决这个问题。

我们将从 EDA 开始我们的项目,这是一个经常被误解的重要(且有趣)的过程。以下是对 EDA 的思考:

  • 不仅仅是可视化一组规定的图(相关矩阵等)。
  • 目标是说服自己您拥有的数据足以完成任务。
  • 使用 EDA 回答重要问题并更容易地提取洞察力
  • 不是一次性的过程;随着数据的增长,您希望重新访问 EDA 以捕捉分布变化、异常等。

让我们使用 EDA 回答几个关键问题。

from collections import Counter
import ipywidgets as widgets
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
from wordcloud import WordCloud, STOPWORDS
sns.set_theme()
warnings.filterwarnings("ignore")

标签分布

每个标签有多少个数据点?

# Distribution of tags
tags, tag_counts = zip(*Counter(df.tag.values).most_common())
plt.figure(figsize=(10, 3))
ax = sns.barplot(list(tags), list(tag_counts))
plt.title("Tag distribution", fontsize=20)
plt.xlabel("Tag", fontsize=16)
ax.set_xticklabels(tags, rotation=90, fontsize=14)
plt.ylabel("Number of projects", fontsize=16)
plt.show()

# Most common tags
tags = Counter(df.tag.values)
tags.most_common()

 Output:

[('natural-language-processing', 388),
 ('computer-vision', 356),
 ('mlops', 79),
 ('reinforcement-learning', 56),
 ('graph-learning', 45),
 ('time-series', 31)]

我们将在拆分为我们的训练拆分之后和训练我们的模型之前解决数据不平衡问题。

词云

每个标签的标题和描述中是否有足够的信号?这很重要,因为我们想要验证我们最初的假设,即项目的标题和描述是极具影响力的特征。

# Most frequent tokens for each tag
@widgets.interact(tag=list(tags))
def display_word_cloud(tag="natural-language-processing"):
    # Plot word clouds top top tags
    plt.figure(figsize=(15, 5))
    subset = df[df.tag==tag]
    text = subset.title.values
    cloud = WordCloud(
        stopwords=STOPWORDS, background_color="black", collocations=False,
        width=500, height=300).generate(" ".join(text))
    plt.axis("off")
    plt.imshow(cloud)

 看起来title文本特征对各自的类有一些很好的信号,并且符合我们的直觉。我们也可以对description文本功能重复此操作。当我们决定如何使用我们的特征进行建模时,这些信息将变得有用。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sonhhxg_柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值