「経済物理学とその周辺研究会」 2016-08-29

耐巨大性を備えた表データ分析用コマンド群(株)ウフル 下野寿之

1

I. 背景, 概要, どう耐巨大か
5スライド「経済物理学とその周辺研究会」 2016-08-29

2

背景/目的Ø 昨今、大規模なデータの分析の需要はあるが、未だに十分なツールがあるとは言いがたい(cf.次頁)。
n Unix, R, Pandas, Excel, SQL, Hadoop を使ってもまだ不十分。

Ø 新規開発のコマンド群でこの状況を打開する。
Øさらには、このソフトウェアの開発の経験により、理論的普遍性を持った新規概念も得たい。

「経済物理学とその周辺研究会」 2016-08-29

3

既存ソフトの問題点
n ソフトウェア固有の制約により、ハードウェアの性能が活かされることは、現状なかなか難しい。
u Excelは104.9万行以上を扱えず、black-box 性が高い。
u Rと Pandas は、データロードに相応の時間がかかる。
u DB(SQL等)は、テーブル設計の負担が最初に大きい。
u Unix/Linux のコマンド群でも、実は不十分。
n 現状の既存コマンドを駆使して、データ分析をしても、n 簡単と思ったことでも、意外と複雑になる。数個のステップで済まない。
n デバグ/テストに大きな手間を要し、再現性も損なわれる。
n 素人目に数時間か数日で終わることが、数週間も数ヶ月もかかる。
「経済物理学とその周辺研究会」 2016-08-29

4

新規ソフトで何ができるのか
n 大規模なデータに対し、下記が容易かつ極めて迅速になる。
1. 初期的なデータの解読 (ファイル/各属性値の様子、足りない情報の発見)
2. 前処理用の分析操作 (要除去/要加工の値の発見、必要な計算機環境の見積もり)
3.

数理モデリングにて適合性の検証 (説明変数に意味があるかなど )4.

提出レポートの検証 (数が合っているかなど、不自然な点が無いか検証)n 実績:
ü 10行程度から数十億行以上の { csv, tsv, 単純な行の} データファイル
ü Perl言語(5.14以上) がインストール可能な普通のPC〜大型サーバー
このコマンド群は CUI (Character User Interface) である。

「経済物理学とその周辺研究会」 2016-08-29

5

どう ”耐巨大” であるかü 小規模データは相応に早い。インターフェースは同一で。
ü 巨大な表データファイルをうまく扱う。
n 大きなデータを操作する上で必要であろう機能は網羅。
n Ctrl + C で途中結果を出力する、などの親切設計。
長時間起動していて、何も起きず不安になった時に有用。

n Unixコマンドを駆使しても困難なことを実現。
Unix は、大きなファイルの基礎的なハンドリングが得意であった。

何桁かも分かりにくい数も、3桁ごとに着色することで、昨今ありがちな大きな数を読みやすくする機能もある。

「経済物理学とその周辺研究会」 2016-08-29

6

どのように使うのか0. まず、データを受領/アクセスする。

1. 必要に応じて、ファイル形式を変換。
ü TSV(タブ文字区切り)が基本、CSVでも一応可能。
ü 圧縮形式もそのまま使えるようにしている。(読取り/書込みが早くなるので。)

2. 下記のいろいろな操作をする。
全列の様子を一覧、クロス集計表、値変換(参照/丸め/アフィン)
列抽出操作(名前や範囲指定) 、行抽出操作 (10N 行目だけ、確率抽出)

集合4ヶのベン図、列指定のgrep、似た列の検出、.. など

3. 得られた知見を保管する。
→ たとえば、エクセルにコピペして、プレゼン用に加工。
「経済物理学とその周辺研究会」 2016-08-29

7

どのように作られているか
n 数十個のコマンドがそれぞれの機能を持つ。
Ø 利用者の必要に応じて、1個〜数個を組み合わせて使う。
Ø 各コマンドは Perl で書かれている。各コマンドは単体でも動く。
Ø Perl 5.1 場合により Perl 5.14 及び CPAN上モジュールを使う。

n 現場で必要な派生機能の搭載
ü データの先頭行が、列名の並びの場合は適切に考慮。
p 計数時などは除外する。列ごとの集計時は列名として利用する。
p 列の指定の際に、列番号で無くて列名指定ができるようにする。

ü ターミナル画面から Excel に容易にコピペが出来る。
ü 15桁の数や 50列のデータも見やすくする着色表示機能。

ü アフィン変換/数値丸め/分位点/各種統計的検定/分類器「経済物理学とその周辺研究会」 2016-08-29

8

II.
どのようなコマンドで構成されるか
7スライド「経済物理学とその周辺研究会」 2016-08-29

9

現状のコマンド一覧 (2016-08-18 ; 88個)提供可能なコマンドを取りだし、コマンド名を目立たせるべく、作成したコマンドcolorplus で正規表現指定で赤く着色を行い、Unixコマンドの column で表形式に整理して、出力をしている。
「経済物理学とその周辺研究会」 2016-08-29

10

コマンドの分類< 利用者視点での分類 >< 開発者視点での分類 >l ファイル形式の変換

l テーブルの様子を把握する処理

csv2tsv tsv2csv transpose checkeof

l 行の羅列として処理
freq sampler venn{2,3,4} alluniq
expskip cat-n uniq-c
linedigest wc-l shufflercols listcol colsummary colgrep colop
crosstable similarcols packl キーとバリューの2列を操作
xcol kvcmp keyvalues koalal 実時間の流れを意識した処理
ticktack timeput madeafter
usec memlogger

l 値を変換widths affine emptycell rounding zeropad
silhouette Rscan Rmatrixl 他コマンドと組み合わせて使う
headkeep memlogger usec colopl 複数のファイルが必要なコマンド

l 各列を意識する処理

l R言語を利用する

colsummary expskip silhouette wc-l widths
sampler splitlines similarcols inarow

venn{2,3,4} kvcmp koala xcol

l 関係データベースとしての正規化
idmaker rightditto leftcutl 乱数など数値を生成する
nums saikoro boxmuller poissonl 統計的集計処理をする
quantiles minmax poolsort silhouette pareto
meanvar venn{2,3,4} denomfind

l その他
colorplus dirhier watching「経済物理学とその周辺研究会」 2016-08-29

11

colsummary : 各列の様子を把握する
olympic.tsv の内容 :オリンピックの日本のメダルの個数(1912-2016年) の情報。

各列はタブ文字で区切られている。
マウスカーソルを使って、Excel に表のまま、コピペが可能。

平均値

列名

何通りの異なる値を含むか値の範囲

高頻出値

高頻出値と低頻出値の出現回数
同じ出現回数の重なりは x に続けて表す。

表データ解読上の最初の大きなハードルが、ほぼ即座に解決する 12crosstable : クロス集計
データから3,4列目を抽出

2列受け取り、頻度をクロス表に読みやすくするため、0を青く。

crosstable のコマンドで、2列のデータの頻度表を作り、クロス表で表示する。
2列の値の関係や相関の関係を知ることができる。エクセルにコピペ可能。

クロス集計表は、ひとつのデータテーブルで多数作ることになる。 13

venn4 :ベン図の領域サイズ算出▲Wikipediaからの引用

Ø 本格的な作業前に、ベン図で要素数を算出することは、重要。
どのファイルの組合せで、何個の共通 id があるかを知ると、作業上、どんな条件/対象を分析しているのについて、迷いが減る。

ABCD
Ø 既存ソフトだと、上記は、案外とても煩雑であった。
Ø 空行/先頭行を要素と見なさないオプションなど実装し、利用性を高めた。

14

インターフェース設計方針
n コマンド(命令)名は、原則10文字以内の英単語2個。
∵ 英単語1個で言い表される命令は、ほぼ作成され尽くされている。
∵ 単語3個以上からなる命令は、必要な時に思い出しにくい。

n オプションスイッチをうまく活用する。
-a -b .. -z : さまざまな付加機能 -A -B .. -Z : 動作モードの大きな変更-= : 先頭行を列名の並びと見なす -~ : 何かの機能の反転 -, : 列の区切り文字の指定

n “迅速性” を特に重要視。
ü 必要な場面で、存在と名前を思い出しやすいコマンド名。
ü 初めてでも、うろ覚えでも、何が起こるかすぐ理解できる設計。
ü Unix/Linux の既存のコマンドと比べても、処理速度が遜色ない。

「経済物理学とその周辺研究会」 2016-08-29

15

オプションスイッチの例 [ cols : 列選択 ]cols は、awk や cut コマンドの列選択機能を高めたモノ。
-d, -p, -h, -t で柔軟に機能が利用可能(組合せも可能)。

Ø cols –d 6..9 ⇒ 6列目から9列目以外を表示 (delete)Ø cols –p 5,9..7 ⇒ 5,9,8,7 列目をこの順に表示 (print)
Ø cols –h 3 ⇒ 3列目を最左列に移動して全列表示 (head)Ø cols –t -2 ⇒ 右から2列目を右に移動して全列を表示 (tail)Ø cols -= 〜 ⇒ 列の指定を列名に変更。列名は1行目を利用。
Ø cols -,, 〜 ⇒ 区切り文字をタブ文字からコンマに変更。
Ø cols --help opt ⇒ 各オプションの解説を画面に出力。
「経済物理学とその周辺研究会」 2016-08-29

16

III. コマンドの活用例＆ 最後のまとめ
2 スライド + 1スライド「経済物理学とその周辺研究会」 2016-08-29

17活用例-1 : クロス集計 crosstable
1. Twitter の発言で特定の文字列を含むものをインターネット上で収集。
2. ログから日付と時間の2列を取り出し、crosstableコマンドで集計。
3. Excelにコピペし条件付き書式で色を付けた。
4. 午前と午後の違い、データ収集サーバーのダウンの日時が明らかとなった。
日付/時間012013-12-10
2013-12-11
12793
2013-12-12
13686
2013-12-13 1532 958
2013-12-14 2873 1626
2013-12-15 3617 2232
2013-12-16 4623 2741
2013-12-17 4045 2405
2013-12-18 4458 2807
2013-12-19 4637 3064
2013-12-20 5393 3082
2013-12-21 4924 3247
2013-12-22 3838 2702
2013-12-23 5260 3316
2013-12-24 7098 4150
2013-12-25 4905 2734
2013-12-26 7468 3877
2013-12-27 6419 4015
2013-12-28 7678 4543
2013-12-29 6661 4372
2013-12-30 7607 4656
2013-12-31 10349 6155
2014-01-01 22849 15263
2014-01-02 8627 4964
2014-01-03 6857 5227
2014-01-04 6833 4113
2014-01-05 9757 6208
2014-01-06 7623 4818
2014-01-07 7025 4124
2014-01-08 7551 3997
2014-01-09 9161 4801
2014-01-10 5273 3243

2

3

4

5

64
68
634
1139
1694
1631
1545
1713
1739
1977
1859
2073
2134
2293
1695
2269
1833
2619
2621
2765
3885
4149
2749
6151
2371
3823
2873
2604
2606
2999
1795

58
63
478
1018
1330
1304
1189
1404
1509
1973
1637
1836
1776
1774
1604
1959
1627
2041
1823
2100
2703
3157
4744
3906
2687
2627
2159
1800
1837
2361
1349

39
46
396
529
1051
927
1007
1131
1141
1321
1331
1417
1258
1205
1377
1370
1421
1587
1336
1528
1900
4218
3729
2678
2248
2073
1656
1488
1379
1871
1206

72
61
403
682
974
1094
946
1051
1100
1462
1414
1186
1231
1189
1360
1398
1361
1568
1224
1440
1803
4828
4168
2656
2016
1782
1480
1417
1248
1734
1020

6

7

90 14464 115526 837807 1164
1173 1732
1185 2053
1237 2692
1347 1954
1394 2362
1667 974
1617 1249
1427 1442
1672 1299
1589 1476
1580 1200
1908 467
1590 2511
1726 2539
1433 2290
1635 2511
2110 3586
7216 15086
6328 1915
2899 2227
2138 1689
1854 695
1733 2948
1647 1235
1872 886
2094 36741556 673

89101112131415161718192021222332 157 153 156 139 161 170 182 315 356 276 221 256
200 149 170 116 177 144 170 149 156 268 318 253 216 187 203 235
177 134 130 121 463 582 423 442 703 1285 1394 1446 1444 1611 2023 1974
1122 1097 1457 1386 1988 1816 2037 3025 3662 4125 4551 5062 4655 4993 5576 2969
1655 2115 2536 2715 2868 3454 3720 3812 3611 3438 4202 5005 2557 3133 5031 4274
2590 3549 4942 5871 5306 3056 3571 5247 6666 6798 6964 2597 1710 3382 7879 64252597 2474 3415 3614 4580 4836 4187 4999 4115 4122 5957 6427 6328 6793 6545 5963
3532 3435 4178 4925 6158 5049 4756 4375 3890 4138 5090 6265 7628 7077 6639 6325
2299 2624 3412 2707 1962 1773 1910 3851 5263 6359 7177 6583 6936 6644 6234 6119
2994 3897 3999 4344 5260 6844 5092 4459 5706 6004 7407 3817 1672 4132 6727 5514
1222 1423 1818 2954 5261 4082 4889 6194 6355 6755 9276 6215 6275 6152 5849 5959
1327 2072 2385 2784 2927 2630 2740 2916 2871 3139 6222 5042 4680 4828 4829 4633
1633 2043 3376 4120 4346 4159 4473 4759 4450 4773 4962 6876 7718 7327 7472 6768
894 1023 1195 2402 3516 3584 5172 7778 8700 8331 8030 6035 7712 7669 8084 7450
1145 1733 2023 2678 4647 3835 4571 6430 6943 7864 8863 5181 6080 7125 8609 6496
1289 1335 2341 4287 5532 4332 5077 6474 6952 7888 7702 3655 6388 9370 9115 8470
39 140 155 143 131 418 1081 2148 8863 8775 8934 8498 9086 8356
3768 3996 5245 6196 7894 8098 7373 7497 7296 7324 8437 8120 8059 8384 8435 8277
3578 4911 5945 7082 7563 7343 7916 7529 7863 8234 8165 8076 8528 8763 8670 7892
3223 4477 5873 7296 7842 7614 7975 8060 8639 8402 8889 8398 8457 8320 9454 8700
3997 5140 7044 7658 9435 9147 9147 10058 9956 10529 9852 9662 10644 11448 12848 12136
5362 8051 10713 12249 13035 13001 13298 15048 15950 17235 17573 15644 16229 15365 14898 17461
7594 12145 27222 2067 2511 2540 2478 4938 9088 14816 21263 7463 1861 4411 10241 9638
1342 1889 2848 3233 3197 3612 4528 4449 7701 12565 20139 6596 4637 6998 8677 8949
1378 2470 2706 3105 3573 3287 3754 7378 10992 11090 10936 5549 6432 8894 9887 8318
1079 1437 1921 2448 2451 4279 7620 8104 8364 8326 7957 6164 5549 5233 5850 8926
419 511 661 1073 1976 2815 3173 3884 9464 11131 11139 9671 9997 10924 9716 10967
3538 4550 5638 6605 9118 7973 7552 7691 7392 8170 7714 8308 8974 9368 10272 9641
1434 2369 3146 3886 5686 6811 6426 6926 7317 8297 8453 6858 9441 9961 9958 8910
647 1022 1465 1828 2463 2138 1909 2163 2298 2832 2944 5583 7953 9266 10316 10737
5135 5177 6758 7622 11370 10181 10548 12154 13235 13557 11017 4679 5650 6648 7858 7154
526 505 698 827 1039 996 1127 1232 2925 5981 10609 1481

Excel の ピボットは、手間がかかる。さらにこの場合は、300万件強でエクセルの処理上限を超過している。
「経済物理学とその周辺研究会」 2016-08-29

18

活用例-2: 累積ヒストグラム silhouette
1. 同じデータの130万超の、各アカウントのfollower 数と follow 数の比について、分布を知りたいとする。
2. ただし、follower の数で4層に分けた。
5000以上, 残りの内500以上, 残りの内50以上と,その他3. 各層のデータをsilhouetteコマンドに渡すと、各層を色分けした累積ヒストグラムが、pdf ファイルで出力される。
◀
値を棒グラフ化して、大きさの順に並べると累積ヒストグラムになる。

0% 25% 50% 75% 100%

4. 5000以上のアカウントにfollowされていると、約半数のアカウントは、follow数の何倍もfollowされる。
(48%のアカウントは followしている数の2倍以上、他の人からfollowされる。平均的には、95%そうならない。)「経済物理学とその周辺研究会」 2016-08-29

19特徴や工夫点のまとめ
üTSVファイルに対する有用な機能群である。
üデータの解読、前処理用の分析に大きな強み。
ü既存のソフトウェアと遜色ない、むしろ凌駕する。
üPerl があればどこでも動く。古いPCでも。
ü1行目が列名の並びで、2行目からデータの場合も対応。
üCtrl+C で途中結果を表示して、続行/停止が選択可能。
n 一部をGitHub などで GPLライセンス付きで公開中。
n 使って頂いた感想、専門家の意見は大いに歓迎します。
「経済物理学とその周辺研究会」 2016-08-29

20

IV.
予備スライド (質疑応答用)
13スライド「経済物理学とその周辺研究会」 2016-08-29

21

補足: csv 形式と TSV 形式に関して
Ø CSVファイルの形式について
Ø 様々な使われ方が長い間乱立した。
Ø 2005年10月に RFC4180 で初めて公式に文書化がされた。
Ø CSVファイルは、各列はコンマ( , ) で区切られている
Ø フィールド(値)の文字列がコンマを含む場合は、フィールドの初めと終わりは、必ずダブルクォーテーションを付加する(☆)。
Ø A,”B,C,D”,E の文字列は、A と B,C,D と E の3個のフィールドと見なされる。

Ø 作成したソフトウェアのCSVファイルに対する対応:
Ø 私の提供するコマンド(命令) 群の大部分は、 (☆)の場合に対応してはいない。
Ø -,, というオプションスイッチにより、単純に,を区切り文字と見なす。
Ø コマンド csv2tsv により TSV形式に変換出来る。
Ø ただし、元の CSVファイル中に、タブ文字が出現した場合は厄介である。

「経済物理学とその周辺研究会」 2016-08-29

22

累積ヒストグラムについて
上の段 :ある分布に対するヒストグラムと累積ヒストグラム
下の段 :あるTwitterのアカウントについてのfollow数(緑) とfollower 数(青) の累積ヒストグラム。
左が線形スケール、右が対数スケール。
Green : Following #Blue : Followers #of millions of twitter
accounts

Same plot in
LOG-SCALE

0%「経済物理学とその周辺研究会」 2016-08-29

25%

50%

75%

100%

23

活用例: 累積ヒストグラム silhouettesilhouette コマンド :- ”背の低い順に左から並べた生徒の様子”から命名。
- 数値データの分布の視覚化に有用である。
- グラフ出力は、R言語に依存。pdfに保存。

ヒストグラムに対する優位性 :1. 階級幅決定アルゴリズムが不要。対数化も簡単。
2. 中央値や四分位値など分位値の読取りが容易。

右の図について:- ツイッター130万超のアカウントのデータを分析。
- フォロー数とフォロワー数の関係を調べる目的で作成。
- “ follow返しに頼らないfollowされやすさ “ を調べた。
ツイッターでマーケティングをする場面で重要。
- 5千人以上にfollowされていると、48%のアカウントはfollowしている数の2倍以上、他の人からfollowされることが分かった。平均的には、95%そうならない。
補足:
左の図は、分析例を示すために、silhouette コマンドが即座に出来ることとほぼ同じ出力を載せたものである。
この図自体は2年前に、R言語で手間暇を掛けて作った。
「経済物理学とその周辺研究会」 2016-08-29

24なぜ高速動作するのかØ多くのソフトは、ファイルの先頭から読み始めて最後まで読むことをしてしまう。
Ø しかし、新作ソフトはファイルを(1行ずつ)逐次必要な所まで読んだら、すぐに処理を行う。
Ø パイプ/プロセス置換により、前のコマンドの出力を処理中にすぐ次のコマンドで処理可能。
Ø Perl が十分に早い。RubyやPython よりも。
ただし、CやJavaなどのコンパイラ言語よりは遅い。
「経済物理学とその周辺研究会」 2016-08-29

25

パイプとプロセス置換について
Unix の bash 環境などで、下記の様に使う。
コマンド1 | コマンド2 # ←パイプの使い方
コマンド2 <( コマンド1 ) # 例 wc <( date )パイプは、左側のコマンドの実行結果が右側のコマンドに入力として渡される。
プロセス置換で <( .. ) の場合は、括弧内のコマンドの実行結果を格納したファイルが存在して、そのファイル名が <( .. ) 全体を置換したかのように振る舞う。
▼ Ctrl + C を押下した時の違い:
パイプの場合は、| の前後の両方のコマンドが、interrupt シグナルを受け取る。 <( 〜 ) の場合は、interrupt シグナルは括弧内に送出されない。
Ctrl+Cを押下した時の動作を設計したコマンドを使う場合に、他のコマンドは Ctrl+C の影響を受けないようにする場合に、このプロセス置換は便利。

「経済物理学とその周辺研究会」 2016-08-29

26

開発経験から何を得たか?
n 2単語命名作戦はとても有効だった。
Ø 命名候補をいろいろ考える。
Ø 機能も広がる。
Ø 直接機能を表現しない “奥ゆかしさ” も必要となる。

n 既存のソフト/手法の不足分を多数発見できた。

「経済物理学とその周辺研究会」 2016-08-29

27

有用と考えられるコマンド
コマンド名
freq
crosstablevenn2,3,4
xcol
colsummary
samplerkeyvalues
kvcmp
colgrep
idmakerdenomfindshuffleralluniq
expskip
eofcheckdirhier
timeput
usec
madeafter
memlogger

機能
頻度集計
クロス表
ベン図で要素数
複数表の組合せ各列を要約する
確率的抽出
キー重複度
KV関係の異同
列指定の検索識別子の付与共通分母の探索
行の順序を乱雑化
全行が異なるか"対数的に抽出"
終末文字の検査
目録構造の解読
各行に時刻記載
実行時間測定文件の作成後時刻
使用メモリ測定

詳細
何が何個あるかまとめる
2次元表で頻度,集計などをまとめる
複数データのどんな組み合わせで何個キーがあるか
join(unix)を改良して、直感的に使い易くした
異なる値の個数、値範囲、頻出値、出現回数分布
一定値または指定列に比例した値の確率抽出
各キーが何個の異なるバリューを持つかを出力2個のデータ間でキーバリューの関係の異同を見る
Unix の grep では出来ないことをする。
関係DB第二正規化が出来る%の値から母数の推定
sampler とよく一緒に用いる重なり数と該当行例も出力が可能
指数関数的に間隔を空けて行を抽出
改行で終わらないファイルの検出目録の階層がどうなっているかが分かる
一行読み取る毎に現在時刻を付加して出力
uはマイクロを表す日時よりも経過時間の方が便利な場合がある
指定命令がどれだけのメモリを消費したか知る「経済物理学とその周辺研究会」 2016-08-2928

有用なコマンド例 [ sampler 確率抽出]

sampler で各行の確率抽出を行う。
-r で抽出確率を指定する。再現性確保の為、-s でシードの設定が可能。
(統計的な処理で必要と考えられる他の機能をいくつか搭載している。)

入力行数と出力行数と抽出行数の事前期待値を、標準エラー出力に出す。
なお、Perlのsrand関数がPerl 5.14 (2011年) を要求する。
上記は、1〜100万の各数を1万分の0.3で確率抽出し、横に12個ずつ並べた。
他、shuffle コマンドで順序も乱雑化できるが、これは行を減らしてから使うこと。
「経済物理学とその周辺研究会」 2016-08-2929

有用なコマンド例 [ colorplus 着色]

colorplus で様々な着色を可能とした。
オプション指定で、数値のみ3桁または4桁ごとに着色、列を5列ごとに背景を着色、指定した正規表現に着色、さらには、着色の除去などができる。
上記は、5列ごとに背景を青で塗り、less で閲覧している。
詳細未知のデータを与えられて、最初に眺め、意味を把握するときに有用。
「経済物理学とその周辺研究会」 2016-08-2930

有用なコマンド例 [ freq 何が何行あるか]

機能は Unix/Linuxの “ sort | uniq -c ” とほぼ等価。
ただし、高速動作する。
また、度数(頻度)を出力するコマンドの出力順を指定可能。

「経済物理学とその周辺研究会」 2016-08-2931

有用なコマンド例 [ xcol : ルックアップ, 別表参照 ]xcol –x 列指定 tablefile < datafileØ 2個のファイル table と data がある場合に、table を変換表(変換前と変換先の2列から成る)と見なし、data の指定列を変換表に従って変換する。
SQLの join句 と同じ意図を持った機能を持つ。
Excel の vlookup 関数 にもほぼ近い。
Unix/Linux にも join コマンドがあるが、使いにくい。

Ø 下記のオプションがある。
Ø 変換前の値を残す指定。それをどの列に残すかの指定。
Ø data に対し該当変換が無い行の処理法の指定(残すか消すか)。
「経済物理学とその周辺研究会」 2016-08-29

32

他のソフトとの比較
Excel

R

PandasSQL

Hadoop

Unix

新作ソフト

表計算

統計解析

行列操作などDB操作

分散処理のDB

ファイル操作など

初期分析,前処理利用の手軽さ◎○installに手間?

△

知識要求度高○だと思う

Unixと同様透明性

×高○?

ベンダー依存

成長途上?

○

○

経年的互換性

△?

△

不明

やや高不明

やや高高くしたい

高速性

低要工夫

○

△

ある用途でとても高速○○

巨大データ親和性×?

要工夫

高いのかも要調整

特に高小範囲のみ

高データファイルが多くても使えるか×

ロードに時間がかかる----ある範囲で高いはず小データで実演
しやすいか◎◎○?

要SQL文理解

意味なし？

◎◎

列指定の方法多種複数ありRと同様列名が必要

SQLと同様

cutかawk ならば列番号を並べる

最も容易

主要用途

この表については、本発表者の主観が多分に含まれます。訂正情報等を歓迎します。

「経済物理学とその周辺研究会」 2016-08-29

33

特徴や工夫点についてのまとめ (補足スライド用)特徴

現状ü TSVファイルに対する有用な機能群である。

n 一部をGitHub などで GPLライセンス付きで公開中。

ü データの解読、前処理用の分析などに大きな強み。 n CPANで公開もしたいが、どうするかは検討中。
ü 本格的な統計分析/機械学習の前段階でも役立つ。

n 応用範囲を広げるべく、機能をさらに拡充したい。

ü 既存のソフトウェアと遜色ない、むしろ凌駕する。 n 目標とする機能群が、一体として完成するのは、あと数ヶ月かかる見込み。
ü 各コマンドが1個の (完結する) Perl プログラム。
n 使って頂いたフィードバック、専門家の意見はü Perl があればどこでも動く。古い小さなPCでも。
大いに歓迎します。

工夫点

n 今後の拡張について

n TSVデータに対応。1行目が列名の並びでも対応。
n 必要な場面でとにかく使い易くしてある。

画像・動画・音声は対象とする予定はなし。
分類器・ネットワーク・統計学的検定は検討中。
メモリ制約、CPU使用率制約は検討するかも知れない。

Ø コマンド命名の工夫、オプションの活用。
← 汎用性のある設計手法であろう。
Ø 途中の計算結果の表示。

「経済物理学とその周辺研究会」 2016-08-29

34