使用 ML.NET DataFrames 和 ScottPlot 进行探索性数据分析(EDA)

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

探索性数据分析(EDA)是机器学习中的重要步骤,可以帮助了解数据分布、关系和异常值。本文介绍了如何使用ML.NET DataFrames和ScottPlot进行EDA,以泰坦尼克号数据集为例。通过加载数据、查看概览信息和绘制图表等步骤,可以更好地了解数据。ML.NET DataFrames和ScottPlot是处理和可视化数据的强大工具。

🔎

延伸解读

在 C# 笔记本中完成 EDA 的便利性

文章展示了如何通过 Polyglot Notebooks 在 VS Code 中直接使用 C# 进行探索性数据分析。只需添加 Microsoft.Data.Analysis 和 ScottPlot 两个 NuGet 包,就能在同一个笔记本中加载数据、查看概览并绘制图表,无需切换工具或语言。对于熟悉 .NET 的开发者来说,这降低了数据探索的门槛,也便于将分析代码与后续建模流程整合。

从概览信息快速把握数据特征

使用 df.Info() 和 df.Description() 可以快速了解数据集的基本情况。文章中的泰坦尼克号数据集包含 8 列,无缺失值,数字列提供了均值、最小值和最大值。例如平均年龄约 29.47 岁,最小 0.42 岁,最大 80 岁;平均费用 32.30 美元,最高 512.33 美元;幸存率约 0.38。这些统计量有助于初步判断数据分布和潜在异常。

散点图揭示变量关系与离群值

通过 ScottPlot 绘制年龄与费用的散点图,可以直观地看到两者没有明显的线性关系。大部分乘客的费用低于 100,高费用乘客多集中在 20-50 岁之间。图中还显示出一些离群值,如费用超过 500 的乘客和年龄超过 70 的乘客。这些发现提示在后续建模时可能需要考虑异常值处理或特征变换。

❓

Q&A

如何在VS Code中搭建环境进行ML.NET DataFrames和ScottPlot的EDA?

需要安装Polyglot Notebooks扩展,创建新的Polyglot Notebook文件并选择C#作为默认语言,然后通过#r "nuget:..."命令添加Microsoft.Data.Analysis和ScottPlot这两个NuGet包。

泰坦尼克号数据集包含哪些信息?如何获取?

该数据集包含泰坦尼克号乘客的信息以及他们是否幸存。可以从https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv下载。

使用ML.NET DataFrames的df.Info()方法能查看哪些数据概览信息?

df.Info()可以查看数据类型、行数、列数、缺失值等概览信息。例如,泰坦尼克号数据集有8列,数据类型为Single(数字)和String(字符串),每列长度相同,没有缺失值。

如何用df.Description()分析泰坦尼克号数据集的数值分布?

df.Description()显示数字列的最大值、最小值和均值。例如,平均年龄29.47岁,最小0.42岁,最大80岁;平均费用32.30美元,最低0美元,最高512.33美元;平均幸存率0.38。

如何使用ScottPlot绘制散点图并分析年龄与费用的关系?

首先配置ScottPlot的格式化器,然后使用散点图绘制Age和Fare。从图中可看出大部分人的费用小于100,有钱人集中在20-50岁之间,费用和年龄没有明显线性关系,但存在费用超过500和年龄超过70的离群值。

EDA在机器学习中有什么作用?本文的EDA得出了哪些结论?

EDA帮助了解数据分布、关系和异常值,为建模和预测提供指导。本文通过EDA了解了泰坦尼克号数据的基本情况、分布和关系,例如幸存率约0.38,费用与年龄无显著线性关系等。

🏷️

标签

➡️

继续阅读