|
・Minimum Spanning Tree ・「R with Excel」 ・「R with Excel」 ・「R with Excel」 ・「R with Excel」 ・「R with Excel」 ・「R with Excel」
(約9000字)
みなさま「DATT-A9D」をじわりじわりとお楽しみでしたね。おもしろさが見えてくるまでにちょっと時間がかかるコンテンツだとは思います。(※恐縮です。)
・[4000]
> > 「餅すら描けない」みたいなことが起きていたらかなしいよ。
・「DATT-A9D」
https://arx.neorail.jp/
> 統計解析環境「R」を使うにはどのような数学の知識が必要ですか?:「高校数学程度の知識(行列・ベクトルの概念やΣの意味がわかるレベル)」で使えるとされています。逆に、「R」を使おうとすれば「行列・ベクトルの概念やΣの意味」がわかるようになると期待されます。
もっと簡単なことしかしません。「R」のふいんきだけわかればじゅうぶん! …あざっす!! 簡単なのか難しいのかわからないままなんとなくやってみたのが『激むず!!』コースだったら泣くに泣けません。ちゃんと「簡単ですよ」と書いてあるコースから始めようではありませんか。…そのことに気づくのが難しいんですよ。▼「冴えてる4011の使いかた」については[3332]を見たと伝えるとスムーズです。(違)
・同「データで遊ぶ」
https://arx.neorail.jp/experiment/
> ここまで各マップごとに手作業で考えてきたことを一般化して自動化しよう
> アルゴリズムを考えてみよう
> アルゴリズムを考えてみよう
> アルゴリズムを考えてみよう
> アルゴリズムを考えてみよう
> アルゴリズムをつくろう
※ここでいう「考えてみよう」とは、古今東西の有名なアルゴリズムの「使いかた」を工夫して、じぶんの目的で使ってみようということです。これはプログラミングではありません。単に「R」を使うだけでよいのです。
※ここでいう「つくろう」とは、古今東西の有名なアルゴリズムをそのまま使うのでなく、ちょっとした改良でもいいから何か改良を加えてみようということです。これはプログラミングであります。じぶんでアルゴリズムを実装できないといけませんし、アルゴリズムの正しさもじぶんで証明しなければなりません。それに、古今東西の有名なアルゴリズムをそのまま使うのでは何が具合が悪いのかも説明する必要があります。そのため古今東西の有名なアルゴリズムについて深く学ぶということにもなるわけです。
うーん。「平地」の点群(というデータ)を使って、ふだん「えいや」で引くのと同じような路線を引けるアルゴリズムをつくれませんか。えー…(てんてんてん)。「つくろう」ではなく「考えてみよう」の範囲で何かやってみましょう。
・[3868]
> クラスターの数はいくつにしませうか。ここで、地形の複雑度が「2」なら「22=4」、「3」なら「23=8」かなぁ、という気配がありませんか。ありますよね。「地形の自動生成」を目の前で実行したわけでなく、すでにあるニューゲームのマップを使っているので「地形の複雑度」がどんぴしゃでわかるわけではないんですけれど、だいたい同じ気分で「2かな」「3かな」と考えて、2(※縦と横があるので2)をその数で累乗してプラス1くらいのクラスター数にすればいいのではありませんか。本当でしょうか。
概念的に「4かな」と思えば「クラスター数は17つ」、「3かな」と思えば「クラスター数は9つ」、「2かな」と思えば「クラスター数は5つ」というようなことでございます。「1かな」と思えば「クラスター数は3つ」という、そこがたぶん最小の数になるのだろうと、たぶんこういうわけです。(※敬語)
このときは「+1」したけれど、こんどは「−1」してみようと思った。
・「平地」を“田の字!”に4分割して、その1マスごとに駅を置くべき地点を決めようー(↑)みたいな
げふ。
・[3601]
> やってきましたエキマエタクシー。
> 未経験のわれわれはやまももコースからですな。
やまももコースはいいぞ。(違)
・[3667]
> つれがひねくれをこじらせまして(違)
> わあぃ三都物語®すればいいんですね、わかります。
> 「2都!」では往復するしかなくてつまらんですばい。(棒読み)このゲームではマップが正方形で固定なので(※過去のバージョンでは面積が同じで細長いというマップもあったのです)、いかにして運行距離も長くしながら(地形や地勢とも対峙しながら)『3都(以上)!』を配置してみせるかというのが大きなテーマになってくるのですよ。まさに数学だよとはこのことだよ。
・[3687]
> むこうをはって「4都!」だぜ★ええーっ。そうすると中心の都市だけ大きくなって「1都!」になってしまうとか、4つとも均等でどれも大きくなく「0都!」に見えるとかって、ありません? …ぐふっ。(※何かが沈んだ音がする。)
> その最小というか最大というかなんというか、いちばん何も考えないのが「マップの3つの隅に都市を配置」なんだね。
そのような感触をすでに得ての本日このフォーラムであります。
・律儀にカクカクと4分割するとつまらない
・『平均すれば』マップに均等に駅が配置されるとよい
・4分割くらいの雑さで考えるときは「−1」して、3つの駅を配置すればいいんじゃないか
げふ。
・じぶんでいろいろ書かなくても「k平均法(k-means)」でなんでもできるじゃないか
画像の減色エンジンだってk-meansだというじゃないですか。(※伝聞)
・分割という言葉にとらわれる必要はなく、じゃあどんな形状なのかと考える必要もない、そのための点群(というデータ)ではなかったのですか
…ギクッ。
・『「路線」は「平地」だけに引く』という、最もプリミティヴなかたちでの鉄道といふものを(以下略)
…『ヴ』!!
・「平地」の点群をそのままk-meansしさえすれば(げふ)
・そのとき指定するクラスター数が、ここまでの文脈でいう「マップをn分割したマス目ごとに駅を配置」みたいな気分を表現するのである
げふ!!
・あくまで本件ゲームでは線路を「22.5度」でしか引けない
・今回のアルゴリズムでは「線」までは引かず、路線網のノードを成す「ターミナル駅」「分岐駅」の位置だけを提案するところまで
ありがとうございました。卒研での言い訳のようだ。(違)
・[3652]
> 板(マップ)に釘(駅)を打ってミシンのボビンみたいのを固定してから糸をかけて、はずみ車みたいなのでからからからと回すんだよね。…ええーっ。駅を共用していても、種別や路線ごと、あまつさえラッシュ時の増発や貨物列車ごとにそれぞれ、色の違う糸を同時にかけて、それ全体を、これまたそれぞれ異なる速度で同時に回すんだよね。…もっとええーっ。(あくまでイメージです。「頭の中であやとり」みたいなのを無理やり言語化すればこうなるよ、の意。「OuDia」を使いこなす人も、「OuDia」の画面ではなく「頭の中」はそういうことになってませんこと? あらあら、まあまあ!)終端の駅で折り返しというのも、行路もしくは「箱ダイヤ」([3640])のつながったのという意味で『輪っかの途中!』だととらえていれば、ことさらに『環状線がー(↑)』みたいなことを言う必要はないんですよ。うん。
https://raisedonvideogames.files.wordpress.com/2012/01/78-01.gif
https://epoch.jp/ty/yakyuban/history/lineup/195902.jpg
釘だけ打とうカツカレー。(違)
https://kotobank.jp/word/%E5%B9%B4%E8%B2%A2%E3%81%AE%E7%B4%8D%E3%82%81%E6%99%82-595870
> 物事が最後に落ちつくべき時。見切りをつけるころ合い。納めどき。
https://kotobank.jp/word/%E6%AD%A4%E5%87%A6%E3%81%A7%E9%80%A2%E3%81%A3%E3%81%9F%E3%81%8C%E7%99%BE%E5%B9%B4%E7%9B%AE-2037644
> 長年さがしていた敵(かたき)にめぐりあったときなどにいうことば。
http://www.haruhi.tv/fanclub/img/thesneaker0610_poster.html
http://www.haruhi.tv/fanclub/img/thesneaker0610_poster2.jpg
※本文とは無関係です。
https://dictionary.goo.ne.jp/word/%E9%A8%93%E6%8B%85%E3%81%8E/
> ちょっとした物事に対して、よい前兆だとか悪い前兆であるとかを気にすること。験を担ぐこと。「験担ぎで豚カツを食べる」
・きょうは県庁前でカツカレー。
https://tabelog.com/imgview/original?id=r7141662969214
これで食べ納めかと思うと(違)…どこの県庁前だよっ!?(※表現は演出です。運転免許証の更新のたびにカツカレーを食べて何かの“験担ぎ”にしてきたひとが免許証を返納でもしたみたいな感慨にふけってください。)
https://tabelog.com/hyogo/A2801/A280102/R3731/rstLst/RC1201/
> 県庁前駅(兵庫県)のカレーライスのお店
> 69件
やったね。69件もあるよ。(※ソコジャナイ。)
・(再掲)
| ↑ デモンストレーション【コース】 | 無理難題ふっかけ【激辛】 / | ←チュートリアル 【甘口】 | オーソドックス【中辛】 | ステップアップ→ 【トッピング】 【盛り合わせ】 |
---|
/ アレンジ | 自由形【おかわり】 自動生成【テイクアウト】 ↓ | |
・[3799]
> こういう見取り図を描いてもいい気がしてくる。
…「アレンジ」ねぇ。(※意味深に!)
[3957]の手順などをおさらいしておいてください。マップも同じものを使おうと思います。
・…今回のデータはこれだ!(ばーん
https://neorail.jp/forum/uploads/oike1400_xyz.tsv
本当にこの数字がびしーっと並んだこのTSVファイル1つだけで、あーんなことやこーんなことが…できちゃうんです!(※音声を変えています。)
■「R with Excel」「PAL8-CNV 〜ぱるはちこんぶ〜」より 「XYZ」のほうのTSVを読み込む | myoike3d0=read.table("clipboard",h=0) | 平地のみ | hei3d <- rbind(subset(myoike3d0,V3 == 0),subset(myoike3d0,V3 == -3)) plot(hei3d) |
https://neorail.jp/forum/uploads/r_oike1400_hei3d.png
うーん。標高「-3m」(ということにした『平地の輪郭』)の点は含めなくていいかな。えー…(てんてんてん)。
■「R with Excel」平地のみ | hei3d <- subset(myoike3d0,V3 == 0) hei2d <- hei3d[ ,c(1, 2)] plot(hei2d) | k-meansを実行する | mykmoike3 <- kmeans(hei2d, 3, nstart=50) library(mclust) clPairs(hei2d, cl=mykmoike3$cluster) # プロットされた図を右クリックしてコピーや保存をします |
https://neorail.jp/forum/uploads/r_oike1400_hei2d.png
うーん。高さのデータは要らないので2次元に落としました。…軽いぞ!(※恐縮です。)
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km3.png
どんどんいくよー。(棒読み)
■「R with Excel」k-meansを実行する | mykmoike5 <- kmeans(hei2d, 5, nstart=50) mykmoike9 <- kmeans(hei2d, 9, nstart=50) mykmoike17 <- kmeans(hei2d, 17, nstart=50) |
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km5.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km9.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17.png
ぐふっ。
https://neorail.jp/forum/uploads/map_oike1400_hei2d_km9.png
https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17.png
わかるよぉ。…すんごいわかるよぉ。(ひっく)
※表現は演出です。
○Minimum Spanning Tree
「最小全域木」いってみよー。(棒読み)
https://rdrr.io/rforge/vegan/man/spantree.html
こういうことなんですよね。うん。
http://jsnfri.fra.affrc.go.jp/gunshu/4clust.html
「水産研究・教育機構 日本海区水産研究所」が「veganパッケージ」を使っておられるー(↑)みたいなことをどん欲に参考にするしかない。…われわれはどん欲なので!(ぐぇ)
・「mykmoike17$centers」
x | y | | | 159.19268 | -155.68130 | 122.94948 | -76.78165 | 200.93256 | -25.70572 | 238.04279 | -34.08910 | 70.15803 | -226.14159 | 210.40275 | -164.68055 | 25.70654 | -181.39731 | 220.02955 | -79.98972 | 119.18362 | -127.79930 | 22.80306 | -126.82503 | 68.91002 | -152.17956 | 72.35061 | -99.84923 | 14.85687 | -29.46422 | 23.02190 | -231.36754 | 189.96586 | -114.34024 | 26.39694 | -72.93804 | 105.40303 | -184.17140 |
こういう「クラスターの重心」が得られてございます。
「水産研究・教育機構 日本海区水産研究所」が使っておられる「veganパッケージ」を使って「最小全域木」する前に、「最近隣法」「ウォード法」を使った場合の結果も見ておきましょう。
■「R with Excel」番号つき散布図を描く | plot(mykmoike17$centers, type="n") text(mykmoike17$centers) rect(0, 0, 256, -256, border = "red") | デンドログラムを描く | myhie <- hclust(dist(mykmoike17$centers),method="single") plot(myhie) |
https://www1.doshisha.ac.jp/~mjin/R/Chap_28/28.html
うーん、「最近隣法」をチョイスしてセレクトするじゃろ。(※恐縮です。)
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers.png
https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17_num.png
https://www.rdocumentation.org/packages/vegan/versions/2.4-2/topics/spantree
…うーん。「2」と「10」と「14」には駅は置かないよということを「km17」と「km9」を見比べただけで言いたいけれど、いまは手動で3つの点をなかったことにしていいですか。えー…(てんてんてん)。
x | y | | | 159.19268 | -155.68130 | 200.93256 | -25.70572 | 238.04279 | -34.08910 | 70.15803 | -226.14159 | 210.40275 | -164.68055 | 25.70654 | -181.39731 | 220.02955 | -79.98972 | 119.18362 | -127.79930 | 68.91002 | -152.17956 | 72.35061 | -99.84923 | 14.85687 | -29.46422 | 189.96586 | -114.34024 | 26.39694 | -72.93804 | 105.40303 | -184.17140 |
■「R with Excel」どーん | center14=read.table("clipboard",h=0) |
こういうことですね。(※点を削除したので番号は詰まっています。)「1と8」「9と14」から浮かび上がってくるところに「都心」(※このマップでの中心地)がありそうというのをいえるのは「ウォード法」のほうであります。
■「R with Excel」…しすてむこーる・ …いんすとおーる! | install.packages("vegan") # これは最初に1回だけ必要な操作です | | library("vegan") | | mydisthei2d17 <- vegdist(mykmoike17$centers) tr <- spantree(mydisthei2d17) plot(tr, cmdscale(mydisthei2d17), type = "t") | | plot(tr, type = "t") | | depths <- spandepth(tr) plot(tr, type = "t", label = depths) | | plot(as.hclust(tr)) |
うーん。「results may be meaningless because data have negative entries in method “bray”」ということですぞ!! …なんてこったい。かくかくしかじか(げふ)ばーん!(以下略)Y座標の値に256を足してやるです!(げふ)
えー…(てんてんてん)。思ったようなプロットではないけれど、このマップでの「おおまかな目的地」が「2と3」「5」「4」「6」「11と13」のほうにあって、それ以外の地点が経由地になるんですよ、「1」「8」「14」らへんがターミナルっぽいですよ、それに「9と10」はつなげてあげなさいよ(げふ)ということまではいえているのではありませんか。ありがとうございました。
https://housefoods.jp/_sys/catimages/recipe/hfrecipe/items/00018280/0.485-310.jpeg
https://housefoods.jp/recipe/rcp_00018280.html
> 市販のトンカツをのせて簡単アレンジ♪
…『市販のトンカツ』!!(※白目)「惣菜」として売られているのは「市販」とは呼ばない。
https://housefoods.jp/recipe/rcp_00014122.html
https://housefoods.jp/_sys/catimages/recipe/hfrecipe/items/00014122/0.485-310.jpeg
> トンカツで元気モリモリ
> 市販のとんかつは食べやすい大きさに切る。
レシピの書きかたを工夫する以前に社内ルールで「市販」としか書かせてもらえないみたいな気配が(げふ)しつれいしました。「トンカツで元気モリモリ」と題しておいて、それが『社外品!』(※意訳)でいいんですか。えー…(てんてんてん)。
https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17-3_num.png
番号を詰めたのでもういちど描いておきますね&しつれいしました。ここまで「きょうは県庁前でカツカレー。」の話題をお伝えしました。(違)
「きょうは府中で酢豚。」([4012])に続きます。
| |