2011年12月24日土曜日
Rでデータマイニング データセットの読み込みと概念を理解しよう
某サッカー選手のような名前ですが、無関係です。
私は大学院でデータマイニングの分野を専攻しているので、その分野についての記事を書いていきたいと思っています。
データマイニングというと、”難しい”、”とっつきづらい”という印象を持たれている方が多いと思うのですが、やってみるとそうでもないことが分かります。
なので、私の記事では実際にデータマイニングをやってみて、簡単なんだと感じていただくことを目的にやっていきたいと思っています。
用意するもの
・パソコン(Windows, Mac, Linuxどれでも可)
・インターネット接続環境
データマイニングをするとき、多くの人はデータマイニング用のソフトウェアを使います。
ソフトの種類はたくさんありますが、この記事では導入が簡単で無料で使える”R”を使っていきます。
では、まずはRのインストールから。
下記のサイトを参考にして、インストールしましょう。
http://www.okada.jp.org/RWiki/?R%20%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
インストールできたでしょうか?
Windowsを使用されている方は"R User Configuration"も実行しておいてください。
ちなみに私はWindowsとMac版を使っていて、記事ではMac版を使って説明していきます。
操作は基本的に同じなので、好きなOSでインストールしましょう。
起動すると、こんな画面が出ます。
次に、data(iris)と入力しEnter、irisと入力してEnterをタイプします。
そうすると、以下のような画面になります
なんじゃこりゃ!という感じだと思いますが、順に説明していきます。
Rの操作は基本的に対話型で行われ、命令を1つずつ与えて結果を得ながら進めていきます。
まず、最初の命令data(iris)ですが、これは"iris"というデータセットを読み込んでください、という命令です。
データセットというのは、分析したいデータの塊、データの集合体と思っていただけたら良いと思います。
次のirisは、"iris"というデータセットを表示してください、という命令です。
さきほどの出力はirisというデータセットの中身が表示されていたんですね。
では、このirisというデータセットですが、データマイニングの分野では有名なデータセットで、データマイニングでのハローワールド的なものと言ってもいいかもしれません。
このデータセットは、植物”あやめ”のがく片の長さと幅、花びらの長さと幅と、あやめの3つの品種が記録されています。
と言っても…よく分からないので、実際にデータを見て行きましょう。
先ほどのirisで表示されたデータセットを見て行きます。上にスクロールすると、このような画面になります。
このデータセットの1つの行が、1つの花に対応しています。
例えば、1番目のデータ
これは、数字が5つと文字列"setosa"が記録されていますが、順に見て行くと、
"1" この花のデータ番号
"5.1" この花のSepal.Length(がく片の長さ)
"3.5" この花のSepal.Width(がく片の幅)
"1.4" この花のPetal.Length(花びらの長さ)
"0.2" この花のPetal.Width(花びらの幅)
"setosa" この花のSpecies(品種)
つまり、データ番号1番の花はSepal.Lengthが5.1で、Sepal.Widthが3.5で、Petal.Lengthが1.4で、Petal.Widthが0.2であり、この花の品種はsetonaであるということです。
このデータセットはそのようなデータを150個集めたものになります。
ここで、説明変数と目的変数についての話をします。
データセットirisには変数が5つあります(データ番号を含まず)変数とは、列のことだと思ってもらえればいいです。
5つの変数のうち、 Sepal.Length、Sepal.Width、Petal.Length、Petal.Widthは説明変数で、setosaが目的変数です。
ちょっと分かりづらいですね。
少し、このデータセットがどのような目的で作られたのかを考えてみましょう。
このデータセットが作られた目的は、たくさんの花のサンプルを記録しておき、その記録したデータをコンピュータに学習させ、未知の花が与えられたとき、その花の品種が何であるかをコンピュータに推定させることです。
例えば、この"iris"のデータセットで学習しておけば、
Sepal.Lengthが5.0、Sepal.Widthが3.0、 Petal.Lengthが1.0、Petal.Widthが0.3の花の品種をコンピューターが推定することが可能になります。
つまり、推定したいのは目的変数の”花の品種”で、推定する際に入力に使うのが花びらの長さ等の説明変数というわけです。
なんとなくイメージはつかんでいただけたでしょうか?
では、次回は実際にコンピュータに推定させる部分をやってみましょう。
ここまで読んでいただきありがとうございました。
不備、質問等ありましたら以下までお気軽にお願いします。
shun.nakamu@gmail.com
2011年12月22日木曜日
mixiカイハツコンテストに参加してきました。
概要
チームはそれぞれ開発できる言語、開発したいプロダクトをもとに7チームに分けられました。
最終日は審査員といて、
TechCrunch Japanの西田様、TechWaveの湯川様、
Samurai Incubate Inc.の榊原様、株式会社ミクシィなど豪華メンバーの方々にご参加して頂きました。
1チーム7分のプレゼンを行い、そこでアプリの説明をデモで行いました。
結果発表
まず3位は先ほど説明したmixiアプリ帳を開発したtechGarageメンバーの 404 NOT FOUNDです。
2位チーム、POST GETで、夜と朝で使う時間によってアプリがかわり一日1回だけ夜自分の願いを星に乗せて願う事ができる。
ロマンチックなiPhoneアプリです。 このチームは開発だけでなくデザインや音楽も全てチームで作り2日間で開発したとは思えないほどクオリティーの高いプロダクトでした。
1位はなんと2人チームのチームねこせんです。 このチームは学生をターゲットにしたブルートゥースを利用したグループチャットアプリを開発しました。 このアプリの面白いところは校内でwifi環境がないところでもどこでもいつでもチャットができるようにとブルートゥースを採用し、たったの2日で開発した点です。
今回のmixiカイハツコンテストで感じ点は「これからのエンジニアの姿」です。これは今までのように開発ができるだけではなく、企画も、プレゼンも全て含めこなしてしまうオールマイティーのエンジニアです。 今回のハッカソンではこの僕が感じたこれからのエンジニアの方がとても多い印象を受け、力の差を感じました。
参加者のの多くはプログラミングを学校で専攻し、プログラミング歴も長く、とにかく開発することが大好きといった学生がとても多く、アウトプットした最終的なプロダクトの質もかなり高かったです。さらに僕が驚いたのは参加者のプレゼンテーションスキルがかなり高かったことです。エンジニアの学生を集めたイベントではないような印象を受け、これから求められるエンジニアはtechGarageでも掲げているような自ら考えて、物づくりができる一人前のエンジニアだと改めて再認識することができ、自分自身に危機感を感じることができました。
2011年12月11日日曜日
techGarage決起会&ハッカソン
先週の12月3,4日に、techGarageの決起会としてハッカソンを開催しました!
techGarageは東京と福岡の2カ所にラボがあるため、このハッカソンも東京・福岡で同時開催となり、お互いの様子をUstreamとSkypeで中継しながら開発を行いました。
<<ハッカソン開催概要>>
目的:techGarage決起会、techGarageとしての実績を増やす
目標:2日間でiPhoneアプリを開発する
参加者:東京3チーム、福岡3チーム(ゲスト参加者もいました)
今回は、東京側のハッカソンの様子をお伝えしたいと思います。
開発風景です。みなさん真剣ながらも、ところどころでギークな会話で盛り上がっていました!基本的にはチームに分かれて開発していますが、チームを超えた技術交流も見られ、オープンに開発に打ち込んでいました。
福岡のラボとつないで、2日間の成果をプレゼンしました。どのチームもデモとスライドを用意しています。
福岡チームの発表を聞いているところです。画面越しに熱意が伝わってきました!質疑応答はSkypeを通して行っています。
総括
今回、東京側のハッカソンは、非常に盛り上がりました!techGarageの結束はさらに強くなり、ゲスト参加者にも楽しんでもらう事ができたようです!!
が、
残念ながら今回は2日間で完成まで行くチームがでませんでした。
しかし、近いうちにリリースすることを目指し、各チームで開発を継続するようです。
ということで、開発の進捗については後日報告いたします!
以上で東京側ハッカソンのレポートを終わります。
今後もどんどん情報発信していきますので、乞うご期待!