UCR時系列分類アーカイブの紹介

# 概要
UCR時系列分類アーカイブ（UCR Time Series Classification Archive）とは、カリフォルニア大学リバーサイド校（UCR）が公開しているデータセット集です。データセット集には[2015年版](https://www.cs.ucr.edu/~eamonn/time_series_data/)と[2018年版](https://www.cs.ucr.edu/~eamonn/time_series_data_2018/)があり、それぞれ85個と128個のデータセットが含まれています。2018年版は2015年版の拡張なので基本的には2018年版を使っておけば良いでしょう。

# パスワード
このデータセット集はZIP形式でダウンロードできますが解凍にあたりパスワードが設定されています。さらにそのパスワードはUCRのサイトに分かりやすい形では記載されていません（絶句）。

## 2015年版のパスワード
パスワードの入手方法は[2015年版の説明資料](https://www.cs.ucr.edu/~eamonn/time_series_data/UCR%20Time%20Series%20Classification%20Archive.pdf)の6ページ目「The Password」に記載してあります。
> パスワードは以下の文の墨消しになっている部分から2つのスペースを除いたものです。
> 「Every item that we ******* ## @@@@@@@ belongs to exactly one of our welldefined classes」

この文の元の記載は[この論文（Bing Hu, 2013）](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.406.4810&rep=rep1&type=pdf)の1ページ目にあり、それを読み解くと**パスワードは「attempttoclassify」**です。先の論文にいいこと書いてるので読んでほしいってことらしいです~~が普通に面倒くさい~~。

## 2018年版のパスワード
パスワードの入手方法は同じく[2018年版の説明資料](https://www.cs.ucr.edu/~eamonn/time_series_data_2018/BriefingDocument2018.pdf)の13ページ目に記載してあります。
> パスワードは以下の文から削除されている単語です。
> 「Why would ******* use the archive and not acknowledge it?」

この文の元の記載は[2018年版の説明論文](https://arxiv.org/ftp/arxiv/papers/1810/1810.07758.pdf)の2ページ目にあり、それを読み解くと**パスワードは「someone」**です。

# データセット集の使用に関する注意
[論文（Bing Hu, 2013）](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.406.4810&rep=rep1&type=pdf)のイントロダクションを読めという圧がすごいので読みます。

> 過去10年（2003～2013）の時系列分類手法は以下の楽観的な仮定に基づいている。
>
> * 各データは適切な長さに整形された大量のアトミックなパターンである。
* 各データは等しい長さである。
* 分類しようとするすべての項目は、厳密に定義されたクラスのうちの1つに属する。

> …以下論文における手法の説明。データセットと直接関係ないので省略。

このデータセット集も上記の性質があるのでその前提を踏まえて使え（このデータセット集で上手くいったからといって実データでも上手くいくとは限らない）ということでしょう。ちなみに2003年というのはこのデータセット集公開の翌年であり、このデータセットの使われ方に不満があると言いたいのだと思います。

実際このデータセット集を紹介している論文を読むと、作成者は論文や非公式な経路で批判に晒されていると言っています。その反省（怒り？）を踏まえてなのか、2018年版ではデータ長が変動（Vary）のデータセットが追加されています。

作成者は[2018年版の説明論文](https://arxiv.org/ftp/arxiv/papers/1810/1810.07758.pdf)でチェリーピッキング（自説を補強するために恣意的にデータを抜き出すこと）を強く批判しており、使用の際にはそこも注意してもらえばと思います。時間を節約するために基準を設定してデータセットを選択して使うこと自体は肯定しています。

# データセット一覧
データセット一覧は[2015年版](https://www.cs.ucr.edu/~eamonn/time_series_data)、[2018年版](https://www.cs.ucr.edu/~eamonn/time_series_data_2018)それぞれのページの下部にあります。
2018年版の一覧に記載されている項目は下記です。

|項目名|説明|
| ---- | --- |
|ID|ID|
|Type|(Image, Sensor, Motion等の) タイプ|
|Name|名前|
|Train|訓練データ数|
|Test|テストデータ数|
|Class|分類クラス数|
|Length|データ長|
|ED (w=0)|ユークリッド距離を用いて1-NNを実行した場合の誤り率|
|DTW (learned_w) |距離（探索幅Wは学習で決定）を用いて1-NNを実行した場合の誤り率|
|DTW (w=100)|DTW距離（探索幅Wは100%固定）を用いて1-NNを実行した場合の誤り率|
|Default rate|デフォルト比率|
|Data donor/editor|データ提供者/作成者|

## 項目説明
一部の一覧項目について説明します。

### (Image, Sensor, Motion等の) タイプ
データセットが何のデータかを表すものです。データのタイプには以下の種類があります。

|タイプ名|説明|
|----|---|
|Device|電子機器の使用データ|
|ECG|心電図|
|EOG|眼球電位図|
|EPG|電気浸透グラフ（昆虫とその食物源をつなぐ電気回路の電圧変化）|
|Hemodynamics|血行動態|
|HRM|rDNA内部転写スペーサー（ITS）領域の高分解能融解曲線|
|Image|画像から生成された波形（輪郭線等）|
|Motion|動作データ|
|Power|電力量|
|Sensor|センサ値|
|Simulated|（計測データではない）模擬データセット|
|Spectro|スペクトログラフ（食品）、パワースペクトル（筋電図）|
|Spectrum|スペクトラム|
|Traffic|交通量（歩行者数データのみ）|
|Trajectory|軌道（ジェスチャ動作のみ）|

UCRのサイトとは別に[UEA&UCR時系列分類リポジトリ](http://timeseriesclassification.com/index.php)というサイトがあり、ここに各データセットの説明文が記載されています。上記のタイプの説明は私が上記のリポジトリを読んで勝手に訳した（？）ものです。

UCRのサイトとUEA&UCR時系列分類リポジトリはタイプの記載が一部異なっていたりするので、リポジトリに記載する際に一部見直したのかなと思います。


### 誤り率（ED、DTW）
一覧の項目名にはED、DTWとしか記載されておらずこれだけだと何のことか分かりませんが、これはユークリッド距離と動的時間伸縮法（DTW）距離のことです。2018年版を紹介する[論文](https://arxiv.org/ftp/arxiv/papers/1810/1810.07758.pdf)には以下の記載があります。また[2015年版](https://www.cs.ucr.edu/~eamonn/time_series_data/)の一覧には「1-NN Euclidean Distance」等の記載があります。

> UCR時系列アーカイブは、3つのベースライン分類結果を報告します。 これらは以下の分類誤り率です。

> *  1-NN ユークリッド距離
*  1-NN 制約なしDTW
* 1-NN 学習済の幅を持つ制約付きDTW

動的時間伸縮法とは波形の長さや位相が違う場合でもいい感じに波形同士の距離を算出できる手法です。以下の記事が非常に分かりやすいです。

* [動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する](http://sinhrks.hatenablog.com/entry/2014/11/14/232603)
* [動的時間伸縮法(DTW)をPythonで試してみた](https://zaburo-ch.github.io/post/20150406_0/)

DTWは w=100 となっているのに対して論文では制約なしDTWと記載してありますがこれは実質同じものです。w=100 とは探索幅100%の意味であり、DTWの探索幅が波形全域、つまり制約のないDTWのことです。

### Default rate（デフォルト比率）
これは何の数字なのかよく分かりません。分かったら教えてください。

## データ概形
時系列データを使うにあたり、波形の概形を知りたいのは人情だと思います。[2018年版の説明資料](https://www.cs.ucr.edu/~eamonn/time_series_data_2018/BriefingDocument2018.pdf)に全てのデータのプロットがあります。

[2018年版](https://www.cs.ucr.edu/~eamonn/time_series_data_2018)で新たに追加されたデータセットと[2015年版](https://www.cs.ucr.edu/~eamonn/time_series_data)から存在したデータセットは分けて記載されているため、2015年版を使用する人もこの説明資料を見ると良いと思います。ちなみに2015年版の説明資料にはデータのプロットはありません。2018年版で新たに追加されたデータセットは19～62ページ、2015年版から存在したデータセットは63ページ以降に記載されています。

データセットの波形は[UEA&UCR時系列分類リポジトリ](http://timeseriesclassification.com/index.php)でも見ることが出来ます。

# データセットのフォーマット
データセットファイルは[2015年版](https://www.cs.ucr.edu/~eamonn/time_series_data)はCSV形式、[2018年版](https://www.cs.ucr.edu/~eamonn/time_series_data_2018)はTSV（タブ区切り）形式です。エクセルでも開けます。
TRAINとTESTでファイルが分かれており、各データの1列目には所属するクラスが記載されています。

# 最後に
このデータセット集はデータセットによって含まれているデータ数や訓練データ数とテストデータ数の比がかなりまちまちで、結構クセのあるデータセット集です。それを理解して使用すればよいと思います。

だいたいこんなところでしょうか？UCR時系列分類アーカイブは時系列のデータセットとしてはデファクトといっても良いくらいメジャーなものですが、MNISTやCIFAR-10のように自動取得するライブラリが落ちているわけではないので調べてみました。