この記事の目次

海洋プロファイルのクラスタリングは、あらかじめ定めた「似ている」の基準でプロファイルをまとめ、多数のプロファイルに含まれる鉛直構造のパターンや違いを探る方法です。数百本の水温・塩分曲線を一本ずつ比べる代わりに、繰り返し現れる構造や大部分と異なるプロファイルを見つけ、各グループがどの場所・時期に分布するかを調べられます。代表的なプロファイルを選んで詳しく見ることは、その用途の一つです。

クラスターは、選んだ水温・塩分プロファイルのうち、計算条件のもとで近いと判定されたものをまとめた集まりです。海洋学的な意味は、元のプロファイル、場所、時刻へ戻って検討します。

クラスタリングより前の可視化方法を整理したい場合は、海洋データ可視化の方法:事例とツールを先に参照してください。

選んだ水温・塩分プロファイルを共通圧力格子へそろえ、標準化と位置情報を加え、K-means法で分けてクラスターの空間分布を表示する流れ

クラスタリングで行っていること

クラスタリングは、正解ラベルをあらかじめ与えず、データ同士の近さをもとにグループを作る手法で、教師なし学習の一種です。

海洋プロファイルは、圧力に沿って並んだ水温や塩分の曲線です。そのままでは、測った深さ、測定点の数、欠損の位置、変数の単位がプロファイルごとに違います。そこで、計算前に比較できる形へそろえます。

基本的な流れは次のとおりです。

  1. 海域と期間を決め、比較したいプロファイルを選ぶ。
  2. 利用できる変数を共通の圧力格子へそろえる。
  3. 数値の大きさだけで特定の変数や深さが支配的にならないよう、特徴量を標準化する。
  4. 必要に応じて位置や時刻などの情報を加える。
  5. 特徴量同士の距離を使ってグループに分ける。
  6. クラスターの空間分布と鉛直プロファイルを見比べ、海洋学的な意味を調べる。

つまり、「似ている」の定義は前処理と特徴量によって決まります。同じ元データでも、使う深さや変数を変えれば結果は変わります。

OceanGraphが現在比較しているもの

OceanGraphのクラスタリングは、現在の地図に読み込まれているプロファイルを入力にします。通常は現在の検索結果が対象で、軌跡モードではそのモードで表示しているプロファイルが対象です。標準の計算では、季節変化の大きい表面付近を避け、亜表層の物理構造に緯度・経度の特徴量を加えてプロファイルを比較します。

計算段階現在の条件この条件を置く理由
使用変数同じ圧力で有効値がそろうポテンシャル水温と絶対塩分2種類の物理変数を一組として比べるため
圧力範囲200 dbarから始め、共通して使える最大圧力を自動選択。通常は1,000 dbarを超えない季節変化の大きい表層の影響を抑え、多くのプロファイルで有効値が得られない深さを無理に比べないため
格子間隔100 dbarすべてのプロファイルを同じ圧力で比べるため
標準化各圧力の水温・塩分を、入力プロファイル全体の中で標準化数値の幅が大きい特徴量だけで距離が決まるのを防ぐため
位置情報緯度・経度の特徴量鉛直構造と同時に、地理的な位置も比較に反映するため
グループ分けK-means法。2〜最大6クラスターから自動選択地図上で確認しやすい数の探索的なグループを作るため

共通格子の値を作るときは、利用できるポテンシャル水温・絶対塩分の組を補間します。この補間はクラスタリング計算のための前処理です。

計算に使う最深の圧力は、入力したプロファイルの有効な到達範囲から自動で決まり、100 dbar単位にそろえられます。必要な深さまで有効値がないプロファイルは、推測値で埋めずに計算対象から外します。

共通の圧力格子が必要な理由

次の3本を比べるとします。

  • Aは200、300、400、500 dbarで測っている。
  • Bは205、298、402、503 dbarで測っている。
  • Cは350 dbarで終わっている。

AとBは測定圧力が少しずれていますが、ほぼ同じ鉛直構造かもしれません。共通格子へ補間すれば、同じ圧力の値として比較できます。

一方、400、500 dbarまで比べる計算にCを入れるには、測っていない深さを推測しなければなりません。OceanGraphはそのような値を作らず、Cを除外します。地図上で灰色になった点は「分類に失敗したプロファイル」ではなく、その回の共通条件を満たさなかったプロファイルです。

標準化すると何が変わるのか

K-means法は、特徴量を並べた空間上の距離を使います。標準化しなければ、数値のばらつきが大きい変数が、科学的な重要度とは関係なく距離を支配する場合があります。

OceanGraphでは、圧力ごと、水温・塩分ごとに、入力されたプロファイルの中で標準化します。そのため、計算上の1という差は、単純な1 ℃や1 g/kgではなく、その深さにおける入力データのばらつきを基準にした差になります。ただし、変数間の比較はしやすくなる一方で結果は選んだデータに依存するため、海域や期間を変えれば、平均、標準偏差、クラスターの境界も変わる可能性があります。

なぜ位置情報も使うのか

鉛直構造がよく似た2本のプロファイルでも、海盆を挟んで反対側にあれば、それぞれ異なる循環の影響を受けているかもしれません。そこで、OceanGraphの標準計算では、鉛直構造に緯度・経度の情報を加えています。位置情報を含めるかどうかは、何を比較したいかによって決まります。OceanGraphでは、場所を問わず曲線の形だけを比べるのではなく、鉛直構造と地理的な位置を合わせてプロファイルの近さを判定します。

K-means法はどう分けるのか

K-means法は、特徴量空間に複数の中心を置き、各プロファイルを最も近い中心へ割り当てます。割り当て後に中心を更新し、クラスター内の距離の二乗和が小さくなるよう計算を繰り返します。

OceanGraphは2〜最大6のクラスター数を試し、表示する結果を自動で一つ選びます。表示しやすい数へ絞るための仕組みであり、海の中にその数だけ自然な区分が存在すると証明するものではありません。

scikit-learnのクラスタリング解説(英語)にあるように、K-means法は、まとまりが比較的コンパクトで、方向による広がりの違いが小さい場合に分けやすい手法です。細長い分布、複雑な形、密度が大きく異なる集まりでは、直感に合わない分割になることがあります。

OceanGraphの結果を読む手順

計算が終わると、採用されたプロファイルはクラスターごとの色で、除外されたプロファイルは灰色で地図に表示されます。

1. ラベル番号は大小や順位を表さない

クラスター0は、クラスター1より冷たい、浅い、古い、重要だという意味ではありません。番号はグループを区別するための記号で、別の条件で計算すれば入れ替わることがあります。

2. 各クラスターから複数本を開く

同じクラスターに属する複数の鉛直プロファイルを見比べ、グループに共通する構造や、ほかのグループとの違いを確認します。

3. θ-S図など別の表示で確かめる

各クラスターから代表的なプロファイルを選び、海洋学におけるθ-S図の読み方を参照して水温・塩分関係を見比べます。クラスターの空間分布、鉛直断面、時間変化を合わせると、前線、海流、季節、観測範囲との関係も見えてきます。

4. 色の境界を調べる

色が急に切り替わる場所は、海洋前線かもしれません。ただし、検索範囲の端、期間の区切り、到達深度、位置情報の重みを反映している可能性もあります。前線などの海洋構造だと判断する前に、入力条件を見直します。

5. 灰色の分布も確認する

除外点が特定の海域や時期に偏っていれば、クラスタリング結果は、深くまで測れた一部のプロファイルだけを代表しているかもしれません。結果の解釈には、この観測の偏りも影響します。

OceanGraphで試すときの流れ

  1. Searchで、比較の対象をそろえられる海域と期間を設定する。
  2. 比較したいプロファイルが500本以下になるよう、検索結果を絞る。
  3. Clusteringを実行し、読み込まれているプロファイルをクラスタリングする。
  4. クラスターの空間的なまとまりを確認する。
  5. 各クラスターの代表的な鉛直プロファイルとθ-S図を確認する。
  6. 異なる傾向が混在していれば、海域や季節を絞って再度試す。
  7. 変数や深度間隔、距離、検証方法を細かく変えたい場合は、データを出力してコードで解析する。

画面の操作、件数制限、進捗表示、キャンセルについてはOceanGraphのClusteringガイド(英語)にまとまっています。その前の候補選びはSearch and Bookmark(英語)を参照してください。

まずグループ分けをせずに鉛直構造を見比べたい場合は、Pythonを使わずにArgoフロートデータを可視化する手順から始める方法もあります。

参考資料