在这篇文章中,我将介绍如何使用 ML.NET DataFrames 和 ScottPlot 进行 EDA,一起探索著名的泰坦尼克号数据集。
这个数据集包含了泰坦尼克号上乘客的信息,以及他们是否在船沉没时幸存下来。我们可以在这里下载:https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv
创建 Polyglot Notebook首先,我们需要安装 Polyglot Notebooks,它是一个 Visual Studio Code 扩展。Notebooks 非常适合于数据科学家和机器学习工程师,可以让我们在同一个笔记本中编写代码、查看数据、绘制图表、编写文档,而不需要切换到其他工具。

我们可以在 VS Code 中搜索并安装 Polyglot Notebooks 扩展:
安装好扩展后,我们就可以创建一个新的 Polyglot Notebook 文件,并选择 C# 作为默认的代码语言。
加载数据
在开始编写代码之前,我们需要添加一些 NuGet 包,来使用 ML.NET DataFrames 和 ScottPlot 的功能。
我们可以在笔记本中使用 #r \"nuget:...\"
命令来添加 NuGet 包。我们需要添加以下三个包:
#r \"nuget: Microsoft.Data.Analysis\"#r \"nuget:ScottPlot\"
安装好这些包后,我们就可以开始编写代码了。
我们首先使用 ML.NET DataFrames 加载泰坦尼克号数据集,并显示前5行数据:
using Microsoft.Data.Analysis;var df = DataFrame.LoadCsv(\"titanic.csv\");df.Head(5)
我们可以使用 df.Info()
查看数据的概览信息,包括数据类型、行数、列数、缺失值等。
对于任何数据,我们最好从这里开始,了解数据的基本情况。
可以看到,这个数据集包含 8 列,每列数据类型分别是Single
(数字)和String
(字符串)。并且每列的长度一样,代表每列数据应该没有值。
我们还可以使用 df.Description()
查看数字类型列的值范围,包括最大、最小和均值。
从这里我们可以发现一些有趣的事实:
你还可以使用 ML.NET DataFrames 提供的其他方法,了解数据集的更多情况,比如数据中的唯一值。
数据可视化
接下来,我们使用 ScottPlot 绘制图表,来更好地了解数据。
我们首先需要配置 ScottPlot:
using Microsoft.DotNet.Interactive.Formatting;Formatter.Register(typeof(ScottPlot.Plot), (p, w) => w.Write(((ScottPlot.Plot)p).GetImageHtml()), HtmlFormatter.MimeType);
然后就可以可视化数据中的唯一值:
我们还可以使用散点图,观察一下Age(年龄)
和Fare(费用)
的相关性:
从这个图表我们可以看出:
本文介绍了如何使用 ML.NET DataFrames 和 ScottPlot 进行 EDA 的基础知识。
通过 EDA,我们可以了解数据的基本情况、分布和关系,从而为后续的建模和预测提供指导。
ML.NET DataFrames 和 ScottPlot 是两个非常强大和方便的工具,可以让我们在 C# 中轻松地处理和可视化数据。