2016年11月27日

階層的クラスタリング

このところ、すっかり体調を崩してます。今日は、お腹の具合が悪く。何かあたりそうなものを食べた覚えもないんですけどね。

今、「階層的クラスタリング」についてまとめているところです。調べてみたら予想以上に奥が深くて、いっしょにまとめていようと考えていた SOM は次章に回すことにしました。階層的クラスタリングは非常に処理時間のかかるアルゴリズムなので、あまり実用的ではなく単純な技法しかないのだろうと高をくくっていたのに、高速化のための様々なテクニックがあって活用も結構されているということがわかりました。例によって日本語の資料に乏しく、英語の論文を読解しているところですが苦戦中といったところです。今年中に間に合うでしょうか。

サンプル・プログラムは作成したものの、テストデータでチェックした程度なので、実際のデータで性能を試してみたいところ。しかし、この分野はテストしてみるのがなかなかに楽しいですね。
  

Posted by fussy at 20:17Comments(0)TrackBack(0)

2016年11月20日

コタツを出すにはまだ早いか?

11 月も半ばを過ぎて、もう今年も残り少なくなってきました。早いものです。

そろそろコタツの恋しい時期になってきました。昨日は雨が降っていたこともあって寒い一日でしたが、今日は比較的暖かくてコタツを出すには微妙ということでまだ出してはいません。部屋がそんなに広くはないのでコタツを出すと一気に場所が狭くなり、掃除するのも面倒になります。なので、いつも寒くてどうしようもなくなってきた年末ギリギリに出しています。今年も結局はそうなるかもしれません。

かなり前に、机の下に置いて利用できるタイプの小さなコタツを通販サイトで見つけたことがあります。足元さえ暖かければ上半身が冷えていてもさほど苦ではないので、いいのが見つかれば買ってみようかとも考えています。しかし家の机は木製で、しかも裏側は引き出しがむき出しの状態なので、裏側に取り付けるタイプのデスク・ヒーターは使えないんですよね。かなりモノが絞り込まれる気がします。

数学問題 bot ( 個人用 )」からの出題です。例によって合っている保証はありません。

-----

4 つの正数 a, b, c, d について a = b = c = d でないならば、4 つの数 a( 1 - b ), b( 1 - c ), c( 1 - d ), d( 1 - a ) のうち少なくとも 1 つは 1 / 4 より小さいことを証明せよ ( 1978 年東京理科大 )

a, b, c, d のうち一つでも 1 以上ならば、4 つの数のうち少なくとも一つはゼロ以下になるので、a, b, c, d は 1 より小さい場合を考えればいいことになります。また、このとき 4 つの数が 1 / 4 以上になるためには ( a, b, c, d は 1 より小さいので ) 1 - a, 1 - b, 1 - c, 1 - d は 1 / 4 より大きくなければなりません。従って、a, b, c, d は 3 / 4 より小さいことになります。

今、a( 1 - b ), b( 1 - c ), c( 1 - d ) は全て 1 / 4 以上であると仮定します。このとき、

a( 1 - b ) ≥ 1 / 4 より 1 - a ≤ 1 - 1 / 4( 1 - b )
c( 1 - d ) ≥ 1 / 4 より d ≤ 1 - 1 / 4c = ( 4c - 1 ) / 4c
b( 1 - c ) ≥ 1 / 4 より 1 / 4( 1 - b ) ≥ ( 1 - c ) / [ 4( 1 - c ) - 1 ]

が成り立ちます。よって、

1 - a ≤ 1 - 1 / 4( 1 - b ) ≤ 1 - ( 1 - c ) / [ 4( 1 - c ) - 1 ] = ( 3c - 2 ) / ( 4c - 3 )

であり、これらの結果から

d( 1 - a ) ≤ ( 4c - 1 )( 3c - 2 ) / 4c( 4c - 3 )

となります。

f(c) = ( 4c - 1 )( 3c - 2 ) / 4c( 4c - 3 ) - 1 / 4 とすると、右辺を整理することで f(c) = ( 2c - 1 )2 / 2c( 4c - 3 ) となります。よって、c < 3 / 4 のとき f(c) ≤ 0 であり、等号は c = 1 / 2 のときに成り立ちます。

d( 1 - a ) = 1 / 4 のとき f(c) = 0 でなければならないので c = 1 / 2 になります。このとき b( 1 - c ) ≥ 1 / 4 より b ≥ 1 / 2 となります。また、c( 1 - d ) ≥ 1 / 4 より d ≤ 1 / 2 であり、d( 1 - a ) = 1 / 4 より a ≤ 1 / 2 です。よって、a( 1 - b ) ≥ 1 / 4 が成り立つためには a = b = 1 / 2 でなければならず、このとき d = 1 / 2 となります。従って、a = b = c = d でない場合は d( 1 - a ) ≤ 1 / 4 であり、対称性からどの三つの組み合わせを 1 / 4 以上にしても必ず一つは 1 / 4 より小さくなるので、命題が証明されました。  

Posted by fussy at 20:18Comments(0)TrackBack(0)数学

2016年11月13日

米大統領選挙

先週最大のニュースといったらやはりアメリカの大統領選挙でしょう。大半の予想が外れ、トランプ大統領が誕生しました。

TPPやらパリ協定やらテロ対策やらと注目される課題はたくさんあるわけで、これからの動向が気になるところです。それにしても、本気で壁を作るつもりなんでしょうかね。
トランプ大統領誕生に対してやっぱり大規模な抗議デモが行われてますが、お隣の韓国もそれに劣らず、というよりそれ以上に激しいデモが行われていました。果たしてどちらも収拾がつくのでしょうか。

そして日本では博多駅前で道路が陥没するという大事故が発生しました。時間帯が通勤や帰宅時だったらと思うとゾッとする話です。名古屋でも地下工事は結構多いので他人事ではないですよね。そういえば、今日から九州場所が始まったんですが、影響はなかったんでしょうか。  

Posted by fussy at 19:45Comments(0)TrackBack(0)

2016年11月06日

VirtualBox 仮想ディスクの拡張方法

少し前の話ですが、VirtualBox 上の xubuntu でディスクの空き領域がなくなって正常に動作しなくなったトラブルがありました。

ディスクのサイズが 16GB とかなり小さかったこともあり拡張できないものかと調べたところ、いくつかのサイトでやり方が記載されていたので試してみました。

まず、VirtualBox のストレージのサイズ変更ですが、VDI フォーマットで可変サイズならコマンドで簡単にできます。


[VirtualBoxインストール場所]\VBoxManage.exe modifyhd [VDIファイルへのパス] --resize [サイズ(MB)]



これだけでは Linux 側のサイズは変わらないので、parted を使って変更を行います。parted を起動した後、print コマンドで現在の状態を表示すると、普通にインストールした場合は、


モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 34.4GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 24.6GB 24.6GB primary ext4 boot
2 24.6GB 34.4GB 9782MB primary linux-swap(v1)



のような感じで表示されると思います。"rm 2" で番号 2 の sawp 領域を削除して ( 事前に "swapoff -a" で swap を無効にしてください )、"resizepart 1 [最後の容量]" で番号 1 の領域をリサイズします。"mkpart" でもう一度 swap 領域を作成し、quit で終了すれば準備完了です。この後、


resize2fs /dev/sda1



でサイズが拡張され、


mkswap /dev/sda2



で swap 領域が作成されます。swap 領域の UUID は変わっているので、/etc/fstab を書き換える必要がありますが、mkswap 時に UUID が表示されるのでこれを入力しましょう。なお、blkid コマンドでも UUID は確認できます。

なお、parted ではなく gparted を使うと GUI 上でも操作できるようです。

*後になって、apt autoremove で不要になったモジュールを消してしまえばもっと簡単に解決できることに気付きました。  

Posted by fussy at 17:01Comments(0)TrackBack(0)