録画サーバ構築の備忘録

Ubuntu 20.04LTS上に録画サーバを構築する際の手順と参照した文書の一覧。

どうせまた近日中にシステムディスクが壊れるだろうから、その際の備忘録として。

 

Ubuntuインストール

  • ググるのが一番。UEFIの互換モードがうまく動かなくてかなり時間を食ったけど、互換モードをオフ→USBドライブからのブート→インストールでなんとか先に進めた。
  • 最新アップデートのインストールなどはインストール済んでから一括でapt-get upgradeすりゃいいので後回しでOK。

リモートで接続できる環境のセット

録画システムを入れよう

録画を共有ディスクに入れて家庭内LANに公開しよう

sedをWindowsで使う

処理しなきゃいけないテキストがアレで大量に置換処理とかをしなきゃいけないときに、sedができると大変ハッピーになれます。

"Web開発ツールを使いこなせ!"クリエイターの道具箱(14) sedを使った文字列置換 | マイナビニュース
基本はここに一通り書いてある感じ。

sed for Windows
バイナリインストーラのダウンロードはこちら。

What characters do I need to escape when using sed in a sh script? - Unix & Linux Stack Exchange
どの特殊文字をどういうときにエスケープしなければいけないか。

RでHTMLのテーブルになっているデータに対して基本的な統計をする

Scraping html tables into R data frames using the XML package - Stack Overflow
何も考えずに表として読めて便利!でもデータフレームには読んだあとで自分で変換するのがよさげ。

R: Coerce to a Data Frame
データフレームへの変換。

R言語を扱う際のtips by Rstatistics.net - Qiita
読んだデータの数値が数値になってアレなときに。

Removing duplicated rows data frame in R - Cross Validated
データソースがアレで重複が多いときに、重複を削る方法。

r - How to sum a variable by group - Stack Overflow
カテゴリごとの合計を出す、という初歩的な処理のやり方。

Column Names of R Data Frames - Stochastic Nonsense
データフレームの列名を変更する方法。

Rによる調査データの整理 - FPU SLC
データが読めた後、データを処理する方法。

http://stat.biopapyrus.net/graph/barplot.html
棒グラフでデータを表示する方法あれこれ。

r - How can I make my vertical labels fit within my plotting window? - Stack Overflow
棒グラフの項目ラベルが画面からはみ出したときの対処法。

call - Running a Windows executable file from within R with command line options - Stack Overflow
WindowsコマンドをRから呼び出す方法。これを使ってsedを呼んでプリプロセッシングをゴニョゴニョとすると大変良いです。

[音楽]SFCは名曲揃いだったなぁ

同時に出せる音の数も音色も限られていたのに、今聴いても迫るもののある名曲が多かったと思う。特に90年代のスクウェアは神憑り的だ、と思ったので個人的に好みの曲へのリンク。








結局のところ、制約がクリエイティビティを生み出す、だとか、弘法筆を択ばず、だとかの使い古された話に落ち着くわけだけど、それにしても凄い時代だった。

クラスター分析(クラスタリング、cluster analysis)に関するWeb上の参考ページリスト

業務でクラスター分析をしてみた際に参考にしたページ達。

そもそもクラスター分析とは

クラスタリング (clustering) とは,分類対象の集合を,内的結合 (internal cohesion) と外的分離 (external isolation) が達成されるような部分集合に分割すること

そうそう、そういう事をしたいんです。
なんかドベーっとした売上データがあって、傾向を出しやがれ!って言われる訳ですが、次元が多すぎて物理空間の制約から外に出られない私の思考ではどうもならなかったので計算でなんとかしようと思ったわけです。
なるほど、階層型と非階層型があるわけですね。手持ちのデータが多いのか少ないのかよく分かりませんが、とりあえず計算量が少なそうな非階層型から試してみましょう。

非階層型クラスタリング - k-means法

手持ちの某処理系ではk-meansはあったけど、ykmeansみたいな良きに計らえ系のパッケージは無かったので、まぁ結果が安定しないしない。毎回結果が違うんですね。なんだこりゃ。
最初に選ばれる点がどこになるかで結果が結構違うわけですね。なるほどダメです。
データ量もどうやら一般にこういう分析をする向きからすると屁でもない量のデータしか無い様子ということが掴めたので、階層型クラスタリングにスイッチ。

階層型クラスタリングの前に処理系の準備 - R

手持ちの処理系だととても手に負えそうにないので、統計処理専門の処理系であるRを導入。これが無料だもんなぁ、良い世の中になったなぁ。

階層型クラスタリング + ヒートマップ


Rでとりあえず階層型クラスタリングを実行。案外簡単にできた。
個人的な好みでしかないし、スキル不足だからなのは明確ではあるのだけど、やっぱりアルゴリズムは安定なものが精神衛生上良い。
完成したヒートマップは業務データが含まれるので自粛。
上記一番下のリンクは、グラフ描画時のマージン設定。マニュアルに書いてなくて多少ハマった。

library(gplots)
table <- read.csv("hogehoge.csv",header=TRUE,row.names=1)
d <- dist(table,method="canberra")
cluster <- hclust(d, method="centroid")

heatmap(
 as.matrix(table),
 Rowv = as.dendrogram(cluster),
 Colv = NA,
 col = heat.colors(256),
 margins = c(8,5),
)

おまけ: データの標準化

あんまり絶対値的に違いすぎる量がデータの中にあると、絶対値が少ないパラメータのクラスタ形成に対する寄与度が相対的に小さくなってしまう(そりゃ距離の計算だしね)ので、標準化したほうがよさげ。

今後

Rは結構面白い。参考書も買ったし、もうちょっと基本的なところから順次掘り下げてみたい。
クラスタリングについては、評価関数の使い方とか、各種距離関数や各種クラスタリング手法の特徴をきちんと覚えておく必要があると感じた。
何を持って正しくクラスタリングできたと言えるんだろう?結果を見て云々する時点で、予断を持ってデータを見ている気がするのだが、これでやれば絶対OK!って手法があるわけでもないので、正しさの判断には今後も苦労しそう。
ただ、距離関数、クラスタリング手法を変えてみてもそう変わらないクラスタも中にはあるので、そういうのがより明確なクラスタなのだろう。