Hatena::ブログ(Diary)

日々のつれづれ、良かった探し

2011-12-12

変わった散布図symbols関数、そして引数pchについて少し

Rは多様なグラフが描けるのが本当におもしろい。凝り出すときりがない。
symbol関数とpchのこと。
でも、pchはHmiscパッケージのshow.pch関数がとても便利です。
こっちにわかりやすい図がありました。

  • symbol関数

symbol関数は引数circles, squares, rectangles, stars, thermometers, boxplotsを持ちます。
引数pchのようなものですが、比較的自由度をもって指定できるので、使い方によっては効果的なグラフになるのでは?
(僕はクリティカルな現場に遭遇したことがないのですが…)

> jpeg("symbol.jpg")
> x <- cbind("a"=1:5,"b"=5:1,"c"=6:10,"d"=10:6,"e"=sample(10,5)/10)
> layout(matrix(1:6,ncol=3))
> symbols(x[,1:2],circles=x[,1]/10,inches=FALSE,main="circles")
> symbols(x[,1:2],squares=x[,2]/10,inches=FALSE,main="squares")
> symbols(x[,1:2],rectangles=x[,3:4]/10,inches=FALSE,main="rectangles")
> symbols(x[,1:2],stars=x[,3:5]/10,inches=FALSE,main="stars")
> symbols(x[,1:2],thermometers=x[,3:5]/10,inches=FALSE,main="thermometers")
> symbols(x[,1:2], boxplots=x/10,inches=FALSE,main="boxplots")
> dev.off()

で、こんな感じ。
f:id:myopomme:20111208000222j:image:w480

きっと、2変量の関係に対して、第3の要素を加えてインパクトをつけたいときにいいのだと思う。
たとえば、[:title]で使ったscatterplot3dグラフは

> x <- data.frame("steps"=rep(rep(-2:2,each=5),2)
+ , "sin"=sin(seq(-pi,pi,length.out=50))
+ ,"cos"=cos(seq(-pi,pi,length.out=50)))
> # circleの大きさは負値を取れないので絶対値に
> (x <- subset(x, subset=x$"steps">0))
   steps           sin        cos
16     1 -9.384684e-01  0.3453651
17     1 -8.865993e-01  0.4625383
(中略)
49     2  1.278772e-01 -0.9917900
50     2  1.224606e-16 -1.0000000
> jpeg("symbol2.jpg")
> symbols(x=x$"sin", y=x$"cos", circles=x$"steps",main="scattetplot3d_data")
> dev.off()

で、こうなる
f:id:myopomme:20111208000223j:image:w360

  • 引数pchについて

pchは文字も指定できますが、オフセット値をいくつか持っています。
あらかじめ知っているととても便利です。

x <- cbind(x=rep(1:12,each=12),y=rep(1:12,times=12))
jpeg("pch.jpeg")
plot(x, pch=c(0:25,32:127),cex=2) # 26 ~ 31にはpchの割り当てはありません
dev.off()

で、こんな感じ
f:id:myopomme:20111208001014j:image:w360

KaggleでRがトップアルゴリズムに

Kaggle Competition is reported at R Advent Calender by Mr. @isseing333 .

In this Kaggle, R is most favorite tools this year.

RはKaggleにおける予測モデルコンペによく利用されるツールとして不動の地位を示している

KaggleブログNo Free Hunchによると、Rは予測モデルコンペの受賞者を目指すデータサイエンティストの中で好まれている。

Kaggle参加者の30%以上が解析にRを利用すると言っており、この値は昨年の22%を上回った。Rは柔軟であり、機械学習と予測モデリングに対するパッケージが充実していることから、Kaggle参加者がRを選択するのは自然のなり行きといえる。Kaggleでは、予測精度をわずか0.01%向上させることが、勝敗を分ける。実際、Kaggleはコンペの勝者の半数以上が解析にRを利用していると伝える。

"R Competition Brings Out the Best in Data Analytics"の白書をみればKaggle参加者がどのようにして優れた予測モデルをRを使って構築したかを知ることができる。さらに、あなた方がKaggleに既に参加しているのだとすれば、Revolution R Entepriseから自由にダウンロードし、Rで構築した予測モデルをパフォーマンスの向上や巨大データの解析に利用することができる。

R still the preferred tool of predictive modelers competing at Kaggle (Revolutions)

This is good news for me. This result probably shows the R users are drastically increasing. On my opinion, R is very convenient because we can use other software through R. By the way, I'm surprised that someone can make algorithm using Excel and the number of this are more than C++ or Mathematica.

Connection: close