データの変形:データザウルス・ダズンを超えて進む

データの変形:進化するデータザウルス

エディターノート:Stefanie Molinは、今年の秋に開催されるODSC West 2023の講演者です。彼女のトーク「データ変形:要約統計の警告的な物語」もぜひチェックしてください!

この記事では、データ変形という新しいオープンソースのPythonパッケージを紹介します。このパッケージは、シミュレーテッドアニーリングを使用して、2Dポイントの入力データセットを選択した形状に変形することができます。また、指定された小数点以下の桁数まで要約統計を保持します。データ変形は、Autodeskの研究を拡張し、Datasaurus Dozenを作成するために使用され、要約統計のみに頼ることができない理由を示すための教育ツールとして使用することを目的としています。

さあ、ゲームをしましょう。次の要約統計を持つ分布を考えています。このデータの散布図を想像できますか?

  • Xの平均 = 30.37
  • Yの平均 = 53.01
  • Xの標準偏差 = 13.44
  • Yの標準偏差 = 15.53
  • Pearsonの相関係数 = 0.04

平均は中心性の尺度ですし、標準偏差は中央からの広がりの尺度です。また、相関係数はxとyの変数が一緒に動く程度を示すため、これらだけでデータを説明できると考えるのは誘惑されます。しかし、これらの要約統計だけでは不十分です。同じ要約統計のセットに対して複数の可能なデータセットが存在します。私が要約していたデータの散布図は以下の通りです。正解を当てましたか?

Data Morphが提供する音楽データセットです。

要約統計のみに頼ることはできないという考えは新しいものではありません。研究者たちは、視覚的には非常に異なるが同じ要約統計を共有する多くのデータセットを生成することで、これを示してきました。1973年、Francis Anscombeは、アンスコムのカルテットとして知られる4つのデータセットを紹介しました。

これらのデータセットは視覚的には非常に異なりますが、すべて同じ要約統計を共有しています。(この図は、seabornで提供されるアンスコムのカルテットデータセットを使用して、Stefanie Molinが作成しました。)

2017年、Autodeskの研究者は、アンスコムのカルテットのアイデアを基にして、Datasaurus Dozenを開発しました。彼らは恐竜のような形状のデータセット(Alberto CairoのDatasaurus)を、シミュレーテッドアニーリングを使用して12の異なる形状に変換しました。シミュレーテッドアニーリングは、グローバルオプティマを見つけるための技術です。このプロジェクトはSame Stats, Different Graphsと呼ばれています。

Datasaurus Dozenデータセットです。(この図は、jmatejka/same-stats-different-graphsが提供するDatasaurus Dozenデータセットを使用して、Stefanie Molinが作成しました。)

Datasaurus Dozenを生成するために、アルゴリズムはデータセットからランダムにポイントを選択し、それを少量のランダムな量で変動させることで新しい位置に移動しようとします。新しい位置が考慮されるためには、要約統計を小数点以下の桁数までしか変更してはならず、古い値と新しい値が依然として2つの小数点以下で等価である必要があります。位置の変化が目標形状までの距離を減らす場合、アルゴリズムはその点を新しい位置に移動させます。しかし、目標形状までの距離を増やす場合、アルゴリズムは確率pでのみ点を新しい位置に移動します。確率pは時間とともに減少します。初期のイテレーションでは、アルゴリズムは目標形状からより遠い新しい位置を受け入れる可能性が高くなります。イテレーションが進行するにつれて、この可能性は減少します。このプロセスにより、局所的な最適解に陥るのを避けることができ、さらに多様な形状が作成できるようになります。

アンスコムのカルテットと比較して、Datasaurusが要約統計を保持しながら傾斜した直線のセットに変換される様子は、衝撃的です。私は、この衝撃的な要素がデータ可視化がなぜ重要なのかを説明する際に効果的であると考えています。LinkedInの投稿の反応をご覧ください。

この衝撃的な要素を利用して、データの可視化のセクションにモチベーションを与えたかった。データ整理のセクションの後に来るため、この時点でデータの可視化の重要性を強調することが重要です。なぜなら、可視化のコーディングはより複雑になることがあります。人々はしばしばショートカットを取り、データを説明するために要約統計を使用する誘惑に駆られます。しかし、恐竜をアニメーションに使用することは、ワークショップのブランドに合わなかったため、パンダの形をしたデータセットを作成する必要がありました。アイデアから入力データセットに移動する方法についてのいくつかのヒントをここで提供しています。

パンダの形をした新しい出発データセット。

私はすぐに、カスタムで効果的な視覚的支援が私のワークショップだけでなく、データ分析を学び、教える人々にも利益をもたらすことに気づきました。そのため、2023年に、オートデスクの研究者のコードを任意のデータセットに一般化できるかどうかを調査しました。つまり、データソーサスやパンダの代わりに、選択した形状に2Dポイントの入力データセットを変形するためのData MorphというオープンソースのPythonパッケージを作成しました。このパッケージは、シミュレーテッドアニーリングの同じ技術を使用して、要約統計を指定された小数点以下の桁数まで保存します。

異なる入力に対してSame Stats, Different Graphsコードを一般化するためには、大幅なリファクタリングが必要でした。ターゲットの形状(円の場合は円の中心と半径、直線の場合は端点など)のすべてのロジックがコードにハードコーディングされており、オートデスクチームのコードに含まれるデータセットに固有でした。ターゲットの形状の位置や属性は、出発データセットから計算する必要があり、一部の形状は他の形状よりもエンコードが簡単です。例えば、円の形状に変形するためには、円の中心はxとyの値の平均になります。半径は標準偏差(xまたはy、どちらかを選ぶ)の倍数になります:

パンダのデータセットを前に示した円に変形するときにData Morphが計算するターゲットの形状。距離は円を形成する線からの点までの距離です。

Data Morphは、コードを効率化するために複合形状(例:円形の目標形状を作成するために円形が使用される)を作成するための形状クラスの階層を提供しています。ただし、データからの情報を使用すると、一部の形状ではうまく機能しない場合があります。点は、出発データセットの範囲外に移動する必要があることがあります。このロジックを処理するために、Data Morphには形状とプロット機能が接続されるいくつかの自動境界計算も含まれています:

変形とプロットに使用するために自動的に計算される境界。

もう一つの大きな変更点は、点が時間の経過とともに移動できる最大量を減らすことで、静的に保つのではなく、点が移動する際の視覚効果を向上させることです。以下は、パンダのデータセットを星に変形する例です:

Data Morphを使用してパンダのデータセットを星に変形する。

上記のアニメーションが示すように、パンダと星は要約統計だけでなく、変換プロセスで遭遇するすべてのデータセットでも同じ要約統計を持っています。これに加えて、パンダは前に示した円などの他の認識可能な形状にも変形できるため、要約統計と一致する可能性のある無限のデータセットが存在します。

ただし、いくつかの制約もあります。Data Morphが提供するすべてのターゲット形状にデータセットを変形することができるわけではありません。ターゲット形状の一部に出発形状のポイントが存在しない場合、要約統計を変更せずにポイントを移動することはできません。たとえば、入力データセットを長方形の形状に変形する場合、ラインの一部が欠落している可能性があります。さまざまな入力データセットで遊んでみると、どの形状が機能し、どの形状が機能しないか(そしてなぜか)についての直感を得ることができます。

執筆時点では、Data Morphには6つのビルトインのスターター形状と15のターゲット形状が付属しており、さらに増える予定です。変形は次のように簡単です:

$ pip install data-morph-ai
$ data-morph --start-shape panda --target-shape star

任意の/カスタムの開始形状は、CSVファイルを介して提供することもできます。以下はその例です(独自の形状を作成するためのヒントについては、こちらのドキュメントを参照してください):

CSVファイルを使用して作成された例です。

Data Morphは、CLIおよびPythonインタプリタの使用方法に関するドキュメント、テストスイート、モジュール化されたコード、および新しいターゲット形状の追加のための柔軟なクラス階層も提供しています。コアの改善点に関する詳細な情報は、こちらのリリースノートで確認できます。

次回、要約統計を説明したり教えたりする際には、データを視覚化することの重要性を強調するためにData Morphを使用して楽しくカスタムアニメーションを作成してみてください。学生や参加者に独自のアニメーションを考えてもらいましょう。おなじみの形状(たとえば、学校のロゴやマスコットなど)で始まる多くの例を見ることで、この重要な概念を常に意識することができます。カスタムデータセットや教育目的でData Morphを使用する場合は、ぜひお知らせください。LinkedInまたはTwitterの投稿で私にタグ付けしてください。

Happy morphing!

記事は元々こちらに投稿されました。許可を得て再投稿されました。

Stefanie Molinは、ニューヨーク市のブルームバーグでソフトウェアエンジニアおよびデータサイエンティストとして、情報セキュリティに関する難しい問題に取り組んでいます。特に、データの整理/可視化、データ収集ツールの構築、および知識共有に関連する問題に取り組んでいます。また、彼女は「Hands-On Data Analysis with Pandas」の著者でもあり、現在第2版が出版されています。彼女はコロンビア大学フー財団工学部のオペレーションズリサーチの学士号と、ジョージア工科大学のコンピュータサイエンス修士号(機械学習専攻)を保持しています。彼女の自由な時間には、世界を旅し、新しいレシピを考案し、人間とコンピュータの間で話される新しい言語を学ぶことを楽しんでいます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more