2012年3月29日木曜日

メンテしやすいコードを書くために4つの習慣を始めてみた。


どうしてもコードは独りよがりの書き方になってしまいがちです。
それらを強制し、チームで共有し易く、そしてメンテナンスし易くするための気をつけたい習慣を記してみます。



気をつけるべき習慣を4つ紹介します。




・コーディング規約を知る。
・他人のコードを読む。
・書く。
・公開する。




1、コーディング規約を知る。


コーディング規約をしりましょう。話はそれからです。

・インデントの幅
・function(){}の{}は改行するのか?
・/** ←上のアスタリスクは2個
*
*
*/ ←下のアスタリスクは1個

この様にを知る事が重要です。


メリット
・この書き方に規約に準拠したコードが読み易くなる。
→例えば仲間にこれを求める事で、仲間のコードが読み易くなりますよね。また、仲間もあなたのコードを読み易いと思ってくれるでしょう。

・保全性の向上。
→コメントを書く事で、仕様変更の時に保全性を発揮します。また、書いた人以外でも対処できる可能性があがります。




2、他人のコードを読む。


今まで、沢山コードを書かれていると思います。作るのが楽しかった。僕もそうでした。
次のステップに行く為には他人のコードを読む事です。そして真似る。

・用いている変数名
・条件分岐
・オブジェクト指向

これらの項目にフォーカスして読むと良いでしょう。


メリット:

・命名規則を知る事が出来る。
→曖昧な分野なのでコーディングして良い命名があればどんどん真似する。

・アルゴリズムを知る事が出来る
→コードの中で最も十人十色な所。世界には自分よりも効果的な書き方をしている人が沢山います。そして真似する。

・フレームワークを読むとコーディング規約の実装例がわかりやすい。そして、カスタマイズできる様になる。
→例えばWordpressをリーディングすれば、カスタマイズしてCMSからSNSの様な動きにする事も可能です。そして、何よりもコーディング規約に準拠した奇麗なコードである場合がほとんどなので、ブログなどに載ってるコードよりも読む価値がある(と思っています)。




3、書く。

とにかく書く事です。プログラミングは体で覚える物です。
1と2で学んだ事を生かす事が出来ればOKです。
もっと効率的なやり方は無いかと疑いながらやるといいです。




4、公開する。


最後は公開しましょう。見せるは一時の恥です。
そして沢山、指摘をもらいましょう。2度同じミスをしなけりゃいい。







さて、とても簡単な4つのアクションを紹介しました。
これで貴方は僕の様に上司にコードを見せた時「なんだこのスパゲティ」と言われる危険性を取り払う事が出来るのではないでしょうか。


ね?簡単でしょう?

2012年3月9日金曜日

たった4行のコードでできる Rでデータマイニング データの可視化

こんにちは。techGarageの中村俊輔です。

前回から時間が開いてしまいましたが、前回の続きでみなさんと一緒にデータマイニングをやっていきたいと思います。
前回の記事はこちら
この記事ではデータマイニングに関する特別な知識は要りません。必要なものはパソコンとインターネット接続環境だけです。

今回の記事は、データの可視化に焦点をあてたいと思います。
とにかく、手を動かしてやっていきましょう。

まず、Rを起動します。




次に、irisのデータをロードしましょう。




主成分分析をかけます。(今はどんなものか分からなくても大丈夫です)




主成分分析の結果をプロットします。





最後にラベルをつけます。




これで主成分分析による可視化が成功しました。

setosa, versicolor, virginicaで分布に特徴が出ていることが分かりますね。

では、今回の記事で取り扱った主成分分析について説明したいと思います。
今回取り扱ったデータセットであるirisの中身を見てみると





1つのレコード(行)は
Sepal.Length, Sepal.Width, Petal.Length, Petal.Width
の4つのデータ軸(列)と、
このデータの種類が何であるかの
Species
の属性を持っていることが分かりますね。

このデータをグラフで可視化しようとしたとき、普通にやろうとするとできません。
なぜなら、グラフ(散布図)で画像にすると、x軸、y軸の2つの軸でしかデータを表せず、
このデータは4つの軸で構成されているので、2つの軸しか表せないグラフ(散布図)には収まりきらないのです。
(5つめの軸であるSpeciesはラベルなので、データを表す軸にはなりません)

そこで、威力を発揮するのが主成分分析です。
主成分分析を簡単に説明すると、本来のデータの特性をできるだけ失うことがないように次元削減(軸を減らす)するための手法です。
つまり、できるだけ情報を失わずに4軸から2軸にすることが可能ということです。

少し分かりづらいでしょうか?
くだけた言い方をすると、データの中に存在する一番良い2軸を選んでくれるものです。
(実際には2軸だけではなく、何軸にすることもできます)

今回のirisのデータですと、4軸から2軸に減らしたにも関わらず、元々の情報の97.7%を表現できています。
データが1/2になっているのに、ほぼ100%再現できているってすごいですよね。


今回は主成分分析を取り上げました。
少し難しかったでしょうか。
しかし、やり方は非常に簡単です。コードはたった4行です。
興味を持っていただけたら、他のいろいろなデータに試してみてください。


次回は判別分析について触れたいと思います。

記事を読んでいただきありがとうございました。