ブラウザ上でデータ分析が出来る!Clojure/Gorilla入門


概要
この記事は、Gorillaという
ブラウザ上でClojureという言語を利用出来るライブラリを利用し、
ブラウザ上でデータ分析環境を構築するための入門記事です。
Clojureの事前知識は一切不要で、
ClojureやGorillaのインストールから、ブラウザ上で各種手法を
コピペだけで実践出来るになるまでを説明しています。
なお、各種分析手法の詳細には言及しておりません。
とにかくGorillaを動かす
「説明は良いから、とにかく動かしたい」
という方向けに要点だけ説明します。
leiningenをインストールし、作業フォルダにてlein new gorillaでプロジェクトを作り、
生成されたgoraillaフォルダ直下にあるproject.cljに下記をコピペし保存、
lein gorillaと打ち込み、少し待つと
Running at http://localhost:XXXXX/worksheet.html
と表示されるので、そのURLを叩くとこんな感じのページが表示されます。
以上。
(defproject gorilla-test "0.1.0-SNAPSHOT" :description "A test project for Gorilla REPL." :dependencies [[org.clojure/clojure "1.6.0"] [incanter "1.5.5"] [incanter-gorilla "0.1.0"] [cc.artifice/clj-ml "0.6.0-SNAPSHOT"] [org.atilika.kuromoji/kuromoji "0.7.7"]] :main ^:skip-aot gorilla-test.core :target-path "target/%s" :repositories [["Atilika Open Source repository" "http://www.atilika.org/nexus/content/repositories/atilika"]] :plugins [[lein-gorilla "0.3.3"]] :profiles {:uberjar {:aot :all}})
Clojure/Gorillaとは
Clojureとは、JVM上で動くプログラミング言語の一種です。
Clojureには統計解析ライブラリIncanterや機械学習ライブラリclj-mlなど、
継続して開発されているデータ分析用のライブラリが用意されています。
また、同じくJVM上で動くHadoopやHBaseなどのシステムとも親和性が高く、
それらを利用して大規模なデータ分析を行うのに適しています。
しかし、Clojureをいつでもどこでも誰にでも利用して貰うためには、
各端末にJDKのインストールやパスを通すなどの環境構築が必要であり、
各種ライブラリの更新の度全端末にそれを適用し続けるのは
ハードルが高いと言わざるを得ません。
また、データを個々の端末に移動するのも非常にコストがかかります。
勿論これはClojureに限った話ではなく
他の処理系においても同じ問題ではありますが。
そこで、ブラウザ上で誰でもアクセス出来て、
直ちにデータ分析を行えるようなシステムを簡単に構築出来れば
上記のハードルをクリアできます。
つまり、誰でも色んな端末(スマホやタブレットでも!)アクセス出来て、
最新のバージョンを利用したければサーバ側で更新を掛ければ済み、
データはサーバ上に置いたままなので一々解析するのに
全データをローカルに落とす必要も無く、
解析用の処理を送り結果を受け取るだけでよくなります。
そのような要望によって生み出されたのがGorillaです。
下記のGollira本家サイト、また、
GorillaにIncanterを組み込んだincanter-gorillaのサイトを
ご覧頂ければどのようなものかがご理解頂けると思います。
Gollira本家
incanter-gorilla
同様のプロジェクトはPythonやRにも存在しています。
特にIPython notebookはかなりの出来栄えですので、
特にJVM環境以外でも問題無く、
かつPythonに慣れ親しんでいる方は
そちらを利用するのも良いと思われます。
Clojureのインストール
主にWindows7向けのインストール方法について説明します。
まず最新のJavaSDK(Javaの開発環境)を入れる必要があります。
下記からご自分の端末に合わせたモノをインストールしてください。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
次に、下記のページを参考にPath, JAVA_HOMEを設定します(windows向け)。
http://www.javadrive.jp/install/jdk/index4.html
次に、Clojureの開発ツールであるleiningenをインストールします。
公式サイトからlein.batをダウンロードして下さい。
http://leiningen.org/
(あるいはこれを利用)
最後に、パスの通っている作業フォルダ(例:c:\lein)にlein.batを移動して、
コマンドプロンプトから
lein self-install
を実行。
あとはインストール処理が自動で行われますので、終了するまで待ちます。
終了したら
lein -version
と打ち込み、2014/09/07時点では
Leiningen 2.4.3
と表示されればインストール作業終了です。
Gorillaを起動してみる
作業フォルダにて、コマンドプロンプトに
lein new <プロジェクト名>
と打ち込むと新規プロジェクトを作成出来ます。
新規プロジェクトには最低限必要なファイルや設定が自動で生成されています。
ここでは
lein new gorilla
と打ち込んでみましょう。
するとgorillaというフォルダ名の直下に
project.cljというファイルが生成されています。
これはこのプロジェクトの設定ファイルです。
設定を変更する場合はこのファイルを編集します。
ここでは下記のように編集して下さい。
(defproject gorilla-test "0.1.0-SNAPSHOT" :description "A test project for Gorilla REPL." :dependencies [[org.clojure/clojure "1.6.0"] [incanter "1.5.5"] [incanter-gorilla "0.1.0"] [cc.artifice/clj-ml "0.6.0-SNAPSHOT"] [org.atilika.kuromoji/kuromoji "0.7.7"]] :main ^:skip-aot gorilla-test.core :target-path "target/%s" :repositories [["Atilika Open Source repository" "http://www.atilika.org/nexus/content/repositories/atilika"]] :plugins [[lein-gorilla "0.3.3"]] :profiles {:uberjar {:aot :all}})
ここで重要なのはdependenciesとpluginsです。
dependenciesに利用するライブラリを記載します。
ここに記載されたライブラリをleiningenが
依存関係などを自動解決してインストールしてくれます。
ここではincanterとincanter-gorilla、clj-ml、そしてkuromoji*1
という形態素解析器を指定しています。
形態素解析器についてはこちらをご覧ください。
pluginsにlein-gorillaを記載し、gorillaを使えるようにしています。*2
これらが全部終わったら
lein gorilla
とコマンドプロンプトに打ち込むと
Running at http://localhost:xxxxx/worksheet.html
とURLが表示されるので、そのアドレスをブラウザで見ると
Clojure実行環境が表示されます。

なお、アドレスのxxxxxの部分はランダムで決まりますが、ipやportを指定したい場合は
lein gorilla :ip xxxxx :port yyyyy
とします。詳細なオプションは下記に記載されています。
http://gorilla-repl.org/configuration.html
動作するか確かめてみましょう。

表示された画面の灰色のブロックに
(+ 1 2 3)
と打ち込み、ShiftとEnterキーを同時押しすると処理が実行されます。
実行結果が6になったら成功!
これにてGorillaの設定作業は終わりです!お疲れ様でした!
Gorillaで統計量を求めてみる
(use '(incanter core stats charts datasets)) ;統計解析ライブラリIncanterを使う指定 (def iris (get-dataset :iris)) ;サンプルデータセットの中からirisを選択し、その内容をirisに束縛 iris ;irisの中身を見てみる。 ; :column-names から[:Sepal.Length :Sepal.Width :Petal.Length :Petal.Width :Species] ; という列があることが分かる。 ; irisとはあやめのデータで、sepalはがく、petalは花びら、speciesはあやめの種類である (mean ($ :Petal.Length iris)) ;花びらの長さの平均値を求める (sd ($ :Petal.Length iris)) ;花びらの長さの標準偏差を求める

Gorilla上で可視化してみる
(use '(incanter core stats charts datasets)) (use 'incanter-gorilla.render) ;Incanterで可視化したモノをGorilla上で表示するライブラリを指定 (def iris (get-dataset :iris)) (chart-view (histogram :Petal.Width :data iris)) ;chart-view関数でヒストグラムをGorilla上に表示 (view (histogram :Petal.Width :data iris)) ;view関数でヒストグラムをGUIで表示

こちらに掲載した可視化のviewの部分を
chart-viewに置き換えれば、全てブラウザ上で実行可能です
Gorilla上で機械学習してみる
(use 'clj-ml.classifiers 'clj-ml.utils 'clj-ml.io 'clj-ml.data) ; weka特有のデータ形式arffを利用します。 (def iris (-> (load-instances :arff "http://repository.seasr.org/Datasets/UCI/arff/iris.arff") (dataset-set-class :class))) ; サーバ上にあるCSV形式を読み込む場合は次のようにします。 ; (def iris (-> (load-instances :csv "iris.csv") (dataset-set-class :class))) ; 決定木(c4.5)を作ってみる (def decision-tree (-> (make-classifier :decision-tree :c45) (classifier-train iris))) ; 作成した決定木の中身を見てみます decision-tree ;クロスバリデーションに掛けてみます (def decision-tree-evaluation (classifier-evaluate decision-tree :cross-validation iris 10)) ;クロスバリデーションの結果を確認します (println (:summary decision-tree-evaluation)) (println (:confusion-matrix decision-tree-evaluation))


こちらに掲載した機械学習手法も
全てブラウザ上で実行可能です。RandomForestやK-meansなどもお試しください。
但し、ファイルを読み込む際、サーバ上でGorillaを立ち上げている場合はファイルパスにご注意ください。
ローカルファイル指定は自分の端末ではなくサーバ上で探索します。
Gorilla上で形態素解析してみる
(import [org.atilika.kuromoji Token Tokenizer]) (def tokenizer (.build (Tokenizer/builder))) (defn ma [sentence] (doseq [^Token token (.tokenize tokenizer sentence)] (println (str (.getSurfaceForm token) "\t" (.getAllFeatures token))))) (ma "あきつ丸改二で大発動艇欲しい") ; (ma "あきつ丸改二で大発動艇欲しい") ; の形態素解析結果が望みの結果になってないので ; 形態素解析用の辞書を整備する必要がある ; 以下の内容を記載したファイルを用意し、適当なファイル名を付ける ; ここでは一旦userdict.txtと名付ける。 ; -- ファイル内容ここから -- ; 大発動艇,大発動艇,ダイハツドウテイ,固有名詞 ; あきつ丸改二,あきつ丸 改二,アキツマル カイニ,カスタム名詞 ; -- ファイル内容ここまで -- ; 1列目:表層, ; 2列目:1列目をどう区切るか。区切りたい位置に半角スペースを入れる ; 3列目:読み(カタカナ) ; 4列目:品詞情報 ; ※windowsの場合はファイルのエンコードをSJISにする必要有り ; ファイルをc:\\lein\\gorilla\\userdict.txtに置いたとした場合、 ; 以下のようにすると望みの結果が得られる。 (def dic "c:\\lein\\gorilla\\userdict.txt") (def tokenizer (.build (.userDictionary (Tokenizer/builder) dic))) (defn ma [sentence] (doseq [^Token token (.tokenize tokenizer sentence)] (println (str (.getSurfaceForm token) "\t" (.getAllFeatures token))))) (ma "あきつ丸改二で大発動艇欲しい")


形態素解析の結果を用いてワードカウントなどをする場合は
こちらをご覧ください。
ここで紹介している内容もブラウザ上で実行可能です。
終わりに
ブラウザ上で様々な分析が出来る便利な時代になってきました。
外出先の貧弱な端末や回線からでも、インタラクティブなデータ分析が可能になり、
例えばMTGの最中に「あのデータってどうなってるんだっけ?」
って話題に上がったその場ですぐ集計・可視化して確認出来るなど夢が広がりまくりです。
実務上データ分析しててかなり面倒だと思うのがデータサイズです。
数十GB単位になるとファイルの移動だけで面倒なことになりますし、
ローカルに持ってくるとそれだけでSSD空き容量死ぬケースがあります。
あと分析ツールの更新管理は多分皆さんが想像するのの27倍ダルいです。
一つのユースケースとして想像して欲しいのですが、
分析チームに30人くらい人がいて、
そのうちの半分がコンサルやマーケター的な方、
残り半分がエンジニアだったとしましょう。
大体前半の方々は「更新したのでアップデートしてくださーい」
とアナウンスしても、面倒なので無視します。
だって現状で使えてるもん。慣れてるのが一番だよね!
大体後半の方々は「更新したのでアップデートしてくださーい」
とアナウンスすると、既に自力拡張してるので、
それが動かなくなると嫌だから無視します。
こういう時システム提供側が取り得る選択肢は
更新しない同僚をハンマーで一人ずつ殴って回るか
あるいはブラウザで実行できるようにするかです。
非常に僅差ですが二個めの方がまだ若干マシかなと思わなくもないです。
ブラウザ上での分析環境構築は、
同時接続数とか認証周りとかにまだまだ機能不足や問題があります。
これはClojure/Gorillaだけではなく、
RのShinyやPythonのIPython notebookでも同じ問題は生じています。*3
とはいえ、ブラウザ上で分析可能なメリットは結構大きい上に、
Clojure/GorillaはJVM環境で簡単に構築できるツールなので
是非チャレンジしていきたい+皆さんもチャレンジして欲しいなと思います。

それでは皆様、よきGorillaライフを!!
素敵なLispエイリアンイラストをマルタコEX@marutakoEX様からお借りしました!
マルタコEX様、利用のご快諾、誠に有難うございます!!!
*1:ちなみにここで指定しているのは最新版ではありません。これは単に私が今まで利用してて動作が理解出来てるというので、今回も惰性で指定しているだけです。Lucene Kuromojiの最新版を使う方が良いです
*2:私は「何でこれがdependenciesで何でこれがpluginsなの?」っていうのがいまいちわかってないんですが、その切り分けをご存知の方いらっしゃったら教えてください…。まぁとりあえず公式サイトの指示に従って設定すれば動きます
*3:IPython notebookは一応パスワード設定出来ますが、ここでいう認証は「Aさんはこのデータとこのデータにアクセス出来て、Bさんはさらにあのデータにもアクセス出来て、あ、Cさんは異動したからこのデータへのアクセス禁止して」とかやりたいって意味です。まぁ他で認証機能別途付けろと言われたらそりゃそうなんですが
統計屋による新社会人のための統計系入門書お薦め一覧
- 内容が易しいこと。数学力(特に微積・線形代数)を求められないこと
- 入手しやすいこと。絶版や学会に入らないと入手不可などではない、値段が安いこと
- 実務に繋げやすいこと。
- 持ち運びしやすいこと。忙しい新社会人が通勤中や休み時間ポケットからさっと取り出し、継続して勉強出来ること
を主眼に選定したお薦め書籍を紹介します。
(満たせない要望も多いですが)
主な対象者は、文系で数学や統計学をやってこなかった、
プログラミングもわからない(Excelで四則演算やマウス操作くらいは使える)
けどいつかマーケティングやデータマイニングやってやるぜ!
って考えてる新卒の方です。
筆者自身は経済学科出身の文系で、あまり数学力に自信がないなりに
Web企業でデータマイニングをしているという人間です。
ここで紹介している内容で
「統計学・機械学習・データマイニング」
という言葉が出ていますが、ここでは
- 統計学:分析計画を立てたりデータを要約する集計値を出したりサンプルに差や偏りがあるか検定・推定したり
- 機械学習:データから何らかのパターンを見出して分類したりパラメタを求めたり
- データマイニング:データに色んな手法適用してとにかく価値を得る行為全部を指す
程度に認識して下さい。
では始めましょう。
まずは勉強の前に読み物でデータ分析が
どのように実社会で使われているのかを事例を確認してみましょう。

- 作者: 河本薫
- 出版社/メーカー: 講談社
- 発売日: 2013/08/23
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
分析結果を元に何らかの改善策を生み出し、
その策を実践することによってようやく価値に繋がります。
よくある「データ分析したけど何の価値も生まなかった」という嘆きは、
本当に手元のデータの分析しかしていないケースが殆どです。
本書は「データ分析する前に、
まず必要なデータをどうやって入手するか、
データ入手するためには色んな部署の協力が必要だったりするがどうやってきたか、
分析結果を現場で活用して貰うためにはどうアプローチするか」
という泥臭いリアルな話を赤裸々に書いた名著です。
色んな分析手法やツールの使い方について学ぶことよりも、
分析から価値を得るにはどうすれば良いかを考える方が先です。
実務で分析を価値に繋げた経験を知ることが出来る本なので是非読んで頂きたいです。
なるほどー、データ分析ってこんな風に役立てればいいのかー
というのがわかったところで、統計学入門しましょう。

- 作者: 高橋信,トレンドプロ
- 出版社/メーカー: オーム社
- 発売日: 2004/07
- メディア: 単行本
- 購入: 156人 クリック: 1,757回
- この商品を含むブログ (197件) を見る

- 作者: 高橋信,井上いろは,トレンドプロ
- 出版社/メーカー: オーム社
- 発売日: 2005/09
- メディア: 単行本
- 購入: 42人 クリック: 186回
- この商品を含むブログ (103件) を見る

- 作者: 高橋信,井上いろは,トレンド・プロ
- 出版社/メーカー: オーム社
- 発売日: 2006/10/26
- メディア: 単行本
- 購入: 32人 クリック: 104回
- この商品を含むブログ (49件) を見る
統計学は多岐に渡る手法があり、各々使いどころ目的や性質が異なります。
統計学の書籍を読めば各々の手法は身につきますが、
具体的に目の前のタスクに対しどの手法をどのように適用すればよいかは
それなりの経験と手法への深い理解、そして統計学の体系的な認識が求められます。
それを独学で身につけるのは非常に困難です。
そこでお薦めなのが本書です。
この本は少女が必要に迫られて統計学を学ぶという展開で、
タスクの明示→目的の明確化→手法の紹介→分析結果の説明→結果の活用
という流れを漫画で追いかけることが出来ます。
これによりどういう時に何をすればよいかがまるで研究室の先輩から教わるように学べます。
よくある説明がだらだら続いてたまーに漫画美少女の挿絵が入るとかいうものではなく、
「なるほどー分析ってこういう流れでやればいいのかー」というのを
きちんと漫画の形式で紹介しているので、勉強するぞ!と気合いを入れることなく
とても気軽に読めます。
本書で分析の流れを掴むと良いでしょう。
このシリーズの漫画パートだけでも全部読めば分析の流れを知ることが出来ます。
出来れば全部読みましょう、最低一冊目だけでもお読み下さい。
統計手法の説明としても、まぁそんなに悪くはないです。
あとこれは文庫ではなく大版本なので持ち運びしづらいです。
薄くて軽いけど。
統計分析の実務への活用、データ分析の流れを知った所で、
今度は統計屋の心構えを学びましょう。

- 作者: 上田修功
- 出版社/メーカー: 丸善出版
- 発売日: 2014/01/25
- メディア: 新書
- この商品を含むブログを見る
統計手法を適用するのが全てというような誤解されるケースもありますが、
そもそもデータは天から降ってきたり誰かが綺麗な形で
分析目的に沿うよう用意してくれるものではありません。
目的をきちんと策定し、その目的に沿ったデータを設計・実装し、
そこからようやくデータ分析に入れます。
統計屋の仕事とは、データを分析ツールに放り込むオペレータ業ではありません。
大目的(売上向上や品質改善)のために分析目的を設定し、
それを実現すべくデータを設計し、手法を選択し、分析結果を伝えることまで含みます。
とはいえデータ設計の話は非常に複雑で難解です。
本書はデータ設計の意義と初歩を簡単に紹介し、
逆にデータが不十分だとどのように困るかの説明があります。
それだけではなく、各種統計手法の概要説明も普通にわかりやすいです。
非常に完成度が高い素晴しい一冊で強くお薦めです。
とりあえずこれは読みましょう。

統計でウソをつく法―数式を使わない統計学入門 (ブルーバックス)
- 作者: ダレル・ハフ,高木秀玄
- 出版社/メーカー: 講談社
- 発売日: 1968/07/24
- メディア: 新書
- 購入: 9人 クリック: 153回
- この商品を含むブログ (118件) を見る
「統計学を正しく活用するためにダメなパターンを学ぶ」
というものです。
皆さんも目にしたことがある珍妙なグラフや実感に合わない数値、
あれがどのようなトリック、あるいは分析者の錯誤により生み出されているかを
説明しています。
古い本ですが今なお統計屋の間で我が身の戒めとして愛される名著です。
集計一つするにしても繊細な注意をもってしなければ、
簡単に誤った結論を招く実例を多数紹介し、
何より最後にそのような誤った統計活用をしないようにするには
どうすれば良いかを指南しています。
受け継がれるだけのことはある内容です。
面白い読み物として肩肘張らずに読んで頂ければ幸いです。
データ分析について俯瞰する本を紹介してきました。
徐々に分析手法の詳細について説明している本の紹介に移ります。

- 作者: 永田靖
- 出版社/メーカー: 日本経済新聞社
- 発売日: 2006/01
- メディア: 新書
- 購入: 2人 クリック: 7回
- この商品を含むブログ (5件) を見る
優れていますが、品質管理入門としてもお薦めの一冊です。
品質管理は工場で不良品がどれだけ混入しているかチェックして
要求される品質水準を満たしているかなどの検証に使われる分野です。
最近データ分析と言えばWebサービスという風潮があるように見受けられますが、
遙か昔、百年以上前から工場での品質管理に統計学が用いられてきました。
品質管理には長い歴史に裏付けられた非常に高度な分析技術体系があります。
一般のWebサービスのデータ分析とは異なり
(と言ってもタスク次第であるのは勿論ですが)、
品質管理では非常に厳密な精度が求められます。
例えばWebサービスの優良顧客推定に95%の精度が得られるなら大万歳ですが、
工場から出荷される椅子や缶詰が一定品質をクリアしているかどうかの判定を
5%も失敗して不良品が混じってしまうと大問題になります。
本書はそんな品質管理に用いられる統計手法を分かり易く説明した本です。
仮にあなたがWeb企業で良くある最近の分析手法を使うにしても、
極限の精度を求める品質管理の話を知っておくのは非常に有意義でしょう。
永田先生の本は本当にどれも外れがないので、迷ったら永田本買えばいいです。

- 作者: 栗原伸一
- 出版社/メーカー: オーム社
- 発売日: 2011/07/26
- メディア: 単行本(ソフトカバー)
- 購入: 20人 クリック: 51回
- この商品を含むブログ (2件) を見る
ノンパラやクラスタ分析・主成分分析などの多変量解析まで幅広くおさえています。
最近の統計学の手法を説明する本としては一番良い出来ではないかと思います。
教科書的な統計学を体系的に一通り学んでみたいぞーって方は頑張ってコレを読みましょう。
分析結果を活かすためには、アウトプットを客に見せなければなりません。
その時誤った見せ方をしてしまえば誤った結論に陥ってしまいます。
正しいデータの可視化を学びましょう。
![エンジニアのための データ可視化[実践]入門 ―D3.jsによるWebの可視化 (Software Design plus) エンジニアのための データ可視化[実践]入門 ―D3.jsによるWebの可視化 (Software Design plus)](http://ecx.images-amazon.com/images/I/51K7xZRj3YL._SL160_.jpg)
エンジニアのための データ可視化[実践]入門 ―D3.jsによるWebの可視化 (Software Design plus)
- 作者: 森藤大地,あんちべ
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/10
- メディア: Kindle版
- この商品を含むブログを見る
内容は
- こんな可視化手法がありこういう風に使い分けるよという一覧
- こういう可視化したら誤解を招くからしちゃダメだよという説明
- 3D円グラフを使う奴は殺す
という感じです。
可視化は非常にインパクトが強いので扱いは繊細にならねばなりません。
同じデータでも全く違う印象を与えることが出来ます。
本書は誠実にデータを見るにはどうすれば良いか、
そもそもデータをどのように設計すれば良いか
について語っています。
ただ、統計面に関してはわかりやすく書いたつもりですが、
ぶっちゃけた話D3本として入門書かと言われると微妙に高度です…。
あと「D3で可視化?ってことは3Dグラフを
リアルタイムでぐりぐり動かすとかそういう内容なの?」
と期待された方にはご免なさい、
そういうのは一切載ってないどころか
そういうのやる奴は死ねと書いてます。
私の知る限り、本書ほど特定対象について
殺意を向けて書かれた本はありません。
ここまで頑張って読み切れば、あとは先輩や上司に付いて
色々教わるのもスムーズに行くでしょう。
お疲れ様でした。
さらに「私は機械学習までやってみたい!数学もちょっとは頑張る!!」
と意欲ある方向けに、機械学習系の理論を説明する本を紹介します。
今までは数学知識を要求されませんでしたが、
ここから先はそれなりの数学力、
微積と行列計算くらいは求められます。

フリーソフトでつくる音声認識システム - パターン認識・機械学習の初歩から対話システムまで
- 作者: 荒木雅弘
- 出版社/メーカー: 森北出版
- 発売日: 2007/10/17
- メディア: 単行本(ソフトカバー)
- 購入: 45人 クリック: 519回
- この商品を含むブログ (38件) を見る
基本的な機械学習手法の説明がなされています。
まともな機械学習系の本の中では最も本書が易しいです。
機械学習入門はまずここから始めるのがよいでしょう。
説明自体も易しいのですが、実数値を使って計算の経過を
逐次実行して見せたり、ツールを使って実際の処理内容を見せたり、
理解させるために多大なる労力を払った素晴しい本です。
勿論音声認識の入門書としても、具体的なツールの使い方まで
説明しててわかりやすいです。

データマイニングと集合知 ―基礎からWeb,ソーシャルメディアまで― (未来へつなぐ デジタルシリーズ 11)
- 作者: 石川博,新美礼彦,白石陽,横山昌平
- 出版社/メーカー: 共立出版
- 発売日: 2012/07/07
- メディア: 単行本
- 購入: 1人 クリック: 2回
- この商品を含むブログ (2件) を見る
数式も出てきますが、文章で各手法の原理や性質を説明しているため、
数学力に自信が無くても文章だけでも読んでおいた方が良いでしょう。
数式出ているとはいえ、機械学習系の手法を紹介している
書籍の中ではかなり平易に書かれています。

- 作者: 荒木雅弘
- 出版社/メーカー: 森北出版
- 発売日: 2014/03/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
データマイニングと集合知に比べて
- 最新のトピックスを扱っている
- Wekaという機械学習ライブラリを用いて実際に動かせる
- 数学的にちょっと高度
な点が違います。
どっちでも好きな方を読んで下さい。
ここまでで理論をおさえたので、
次は実際手を動かして処理する本を読みましょう。
データマイニング系で用いられるメインのツールは
などがあります。
ここではExcelでデータ分析をする本と
Rで統計解析をする本を紹介します。

知識ゼロからのExcelビジネスデータ分析入門 (ブルーバックス)
- 作者: 住中光夫
- 出版社/メーカー: 講談社
- 発売日: 2012/08/21
- メディア: 新書
- クリック: 3回
- この商品を含むブログ (1件) を見る
Excelにはピボットテーブルという非常に強力な集計機能があります。
それを用いてデータを分析するにはどうすればいいか、
豊富な画像を用いて解説しています。
これ読むと一通りのマーケティング手法使えるようになるので中々の良書です。
これが気に入れば同著者の大判の本も読んでみると良いでしょう。
統計的な説明は一切触れてません。
![EXCELマーケティングリサーチ&データ分析[ビジテク]2013/2010/2007対応 EXCELマーケティングリサーチ&データ分析[ビジテク]2013/2010/2007対応](http://ecx.images-amazon.com/images/I/51nhRYNI1wL._SL160_.jpg)
EXCELマーケティングリサーチ&データ分析[ビジテク]2013/2010/2007対応
- 作者: 末吉正成,千野直志,近藤宏,米谷学,上田和明
- 出版社/メーカー: 翔泳社
- 発売日: 2014/01/25
- メディア: 大型本
- この商品を含むブログ (1件) を見る
![EXCEL売上データ分析 [ビジテク] 2013/2010/2007対応 EXCEL売上データ分析 [ビジテク] 2013/2010/2007対応](http://ecx.images-amazon.com/images/I/517N53ODG7L._SL160_.jpg)
EXCEL売上データ分析 [ビジテク] 2013/2010/2007対応
- 作者: 株式会社APMコンサルティング
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/10
- メディア: 大型本
- この商品を含むブログ (2件) を見る
先程の本と違い(そこまで酷くない)最低限の統計の説明を入れています。
学んだ理論をExcelで実践する時に本書片手にやると覚えが早いでしょう。

- 作者: Michael J.Crawley,野間口謙太郎,菊池泰樹
- 出版社/メーカー: 共立出版
- 発売日: 2008/05/08
- メディア: 単行本
- 購入: 53人 クリック: 2,292回
- この商品を含むブログ (32件) を見る
その点本書は統計学の説明に関してかなり良いです。
但し、Rを使いこなすぞ!という本ではありません。
Rのための本ではなく、
統計学の説明するときの処理系として
たまたまRを選んだっていう感じの本です。
Rをしっかり勉強したいという場合は別の本を読んで下さい。

- 作者: 豊田秀樹
- 出版社/メーカー: 東京図書
- 発売日: 2008/12/05
- メディア: 単行本
- 購入: 12人 クリック: 75回
- この商品を含むブログ (21件) を見る
数式はそこそこ出てきます。
文章でもかなり説明してくれているのと、
Rで処理の動きを見ることが出来るので、
頑張れば数学力無くても各手法がどのような特性あるか把握出来ると思います。
「入門者が春に読む本」って話なら上記まで読めれば大変素晴しいと思います。
世の中には「いやいや実務ではもっと高度な手法を使うよプゲラ」
とか言ってくる人も居るでしょうが、焦らず基礎を積みましょう。
人生は長い。
余力がある、数学力に自信があるという方には
更に発展的な本として次を挙げておきます。

- 作者: 高村大也,奥村学
- 出版社/メーカー: コロナ社
- 発売日: 2010/07
- メディア: 単行本
- 購入: 13人 クリック: 235回
- この商品を含むブログ (36件) を見る
と言っても自然言語処理の部分は僅かで、
真っ当な機械学習入門書として読めばよいでしょう。
機械学習で独学しづらい部分をピンポイントで解説している素晴しい本です。
これが出るまでは広範な数学力がある人か
先輩や先生が教えてくれるような環境を持ってないと
理解出来なかった部分もありました。
本書は個人的に人生を変えた本で、
コレがないと私は挫折して今機械学習やってなかったと思います。
これ読んで線形代数の本読み切ればPRMLという
機械学習系のバイブル的な本に進めると思います。
もっと高度なことをやりたいぞ!
と思ったら、最終的には数学力が必要になるときもあるでしょう。
具体的には微積分、線形代数、確率論あたりを押えておくと良いです。
特に線形代数をきちんとやっておかないと割と早い内に詰まります。
下記の本をお薦めします

- 作者: 永田靖
- 出版社/メーカー: 朝倉書店
- 発売日: 2005/04/01
- メディア: 単行本
- 購入: 23人 クリック: 398回
- この商品を含むブログ (22件) を見る

- 作者: 岩崎学,吉田清隆
- 出版社/メーカー: 東京図書
- 発売日: 2006/05
- メディア: 単行本
- この商品を含むブログを見る

- 作者: 薩摩順吉,四ツ谷晶二
- 出版社/メーカー: 岩波書店
- 発売日: 1992/10/22
- メディア: 単行本
- 購入: 5人 クリック: 30回
- この商品を含むブログ (26件) を見る

- 作者: 寺澤順
- 出版社/メーカー: 日本評論社
- 発売日: 2009/02
- メディア: 単行本
- クリック: 9回
- この商品を含むブログ (1件) を見る
独学の最短ルートを提供してくれる有り難い本です。
私も大変お世話になりました。
更にキーポイント線形代数まで読んで
言語処理のための機械学習入門読み切れば
相当数の論文を読むことが出来るでしょう。
最後のルベーグ積分は必須ではありません。
ただ、あなたが分析経験を積み、確率論が必要になった、
あるいは確率論に興味が出て学び始めた時、
手強い壁として立ちはだかるのがルベーグ積分でしょう。
本書はルベーグ積分本の中で一際易しい本です。
とは言え十分難しい内容です。
どうしても確率論に真正面からぶつからないといけなくなったときに
本書を参照すると良いでしょう。
余力があれば是非読んでおいて下さい。
最後に、統計学の手法ではなく、
統計学の歴史や哲学について書かれた本を紹介します。
なぜ統計学史や哲学について知るべきなのか?
それは、数々の統計手法はどのような要望で生まれたのか
という背景を知ることが、数式から手法の挙動を読み解くのと
同じくらい価値あることだからです。

- 作者: デイヴィッド・サルツブルグ,竹内惠行、熊谷悦生
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2010/04/01
- メディア: 文庫
- 購入: 16人 クリック: 320回
- この商品を含むブログ (30件) を見る

- 作者: エリオット・ソーバー,松王政浩
- 出版社/メーカー: 名古屋大学出版会
- 発売日: 2012/10/17
- メディア: 単行本
- 購入: 5人 クリック: 105回
- この商品を含むブログ (16件) を見る
たまに数式も出てきますが、基本的に読み物です。
統計学者達の意見の対立の話も出てきます。
実際皆さんがデータ分析をするにあたって、
同僚と手法やデータの扱いについて意見が異なるかも知れません。
データ分析は何を一番大切にし何を懸念しているか、
一言で言えば立場によって用いる手法やデータが異なります。
過去の統計学の異才たちがどのような意見相違をしたか知ることで
己の統計屋としての哲学を確立していきましょう。
皆さんが良き統計屋になれますよう、心から願っております。
良き統計屋とは3D円グラフを使ってるプレゼンターを
その場で殴りに行く人のことです。
質疑応答の際、司会者からマイクを奪ってあらん限りの数学力で殴りましょう。