フルスタックJavaScriptとPython機械学習ライブラリで実践するソーシャルビッグデータ 基本概念・技術から収集・分析・可視化まで

フルスタックJavaScriptとPython機械学習ライブラリで実践するソーシャルビッグデータ - 基本概念・技術から収集・分析・可視化まで -

  • 石川 博 首都大東京教授 博士(理学) 編著
  • 横山 昌平 首都大東京准教授 博士(工学)
  • 廣田 雅春 岡山理科大講師 博士(情報学)

データの収集・可視化・分析まで自学自習できるよう、基本技術から具体的なコンピュータ環境の構築と分析ツールの実装法までを解説。

ジャンル
発行年月日
2019/02/18
判型
B5
ページ数
192ページ
ISBN
978-4-339-02889-8
フルスタックJavaScriptとPython機械学習ライブラリで実践するソーシャルビッグデータ 基本概念・技術から収集・分析・可視化まで
在庫あり

定価

3,520(本体3,200円+税)

カートに入れる

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介
  • 書籍紹介・書評掲載情報

本書は,ソーシャルビッグデータの基本概念そしてデータマイニングや機械学習の基本技術の理解から,具体的にコンピュータ環境の構築と分析ツールの実装方法を解説し,データの収集・可視化・分析までを自学自習できるようにした。

ソーシャルメディア由来のソーシャルデータと実世界由来の実世界データは最近注目されるビッグデータの重要な構成要素である。さらに公共的な性格を持ったオープンデータも信頼性のあるデータとして注目される。こうしたデータを本書ではソーシャルビッグデータと総称する。

ソーシャルデータの典型はTwitterやFlickrへの投稿記事や写真である。実世界データには自動車のプローブデータやJAXAの打ち上げた「はやぶさ」のデータが含まれる。またOSM地図やWikipediaを使いやすくしたDBpediaもオープンデータの一種である。

ソーシャルビッグデータを有機的に分析できれば,新たな価値が発見できて,観光や防災,科学まで多様な分野に応用が可能となる。特にソーシャルビッグデータを時間的,空間的,意味的に分析することにより,大衆の行動を集合的に予測することができるようになる。これを本書では「イシカワ・コンセプト」と呼ぶ。イシカワ・コンセプトを実践することで,例えば訪日外国人が国内において期待以上に満足する場所はどこか,複数の楽しみが同時に体験できる観光地はどこか,観光地の目玉になる桜のような花々はその観光地でいまが旬か,災害時に現在地から避難所までの安全な経路はどこかなどがわかる。

一方,データ分析,データサイエンスで重要となる仮説そのものについては,以下のように二つの異なる見方ができる。
1 宣言としての仮説:伝統的なデータ分析における仮説に相当する。この種の仮説に対する主要なタスクは,仮説の検証である。
2 手続きとしての仮説:手順を実行し,その結果として仮説を生成する。もちろんこの場合でも生成された仮説の検証は必要である。
最近は行政やビジネス,科学のような分野では限られた予算や資源を有効に利用して意思決定を行うこと(evidence-based policy making:EBPM)ができるように,定性的で一般的な仮説でなく,定量的で具体的な仮説生成とそのための手順が求められている。

またソーシャルビッグデータの応用分野を観察すると,大量のデータ管理とそれに対するデータマイニングからなる。データ管理とデータマイニング,機械学習,人工知能は,それぞれ別々に発展してきたデジタルエコシステム(以下単にエコシステムという)である。一般にエコシステムは,製品やサービスを媒介にして複数のベンダと利用者からなる相互に依存した生態系である。つまりソーシャルビッグデータ応用の多くは,異なるエコシステムからなるハイブリッドな応用であるといえる。

さらに計算機科学あるいは情報科学も広い意味では科学であり,その手順に関して再現性のある説明が,計算機科学の応用であるソーシャルビッグデータ応用の信頼性にとっても不可欠である。

要するにソーシャルビッグデータ応用において,複数のエコシステムを利用して,再現性のある仮説生成手順の記述には,データモデルとして統一的なデータ構造とそれらに対するデータ操作を定義する必要がある。これをデータモデルアプローチという。

本書ではソーシャルビッグデータの収集,分析,可視化の基本(概念,技術)と実践(アルゴリズム,プログラム)をバランスよく学ぶことを目指す。前著『ソーシャル・ビッグデータサイエンス入門』は本書の入門編にあたり,まずは概念を理解してもらうためにあえて実践的なコードは示さなかった。そこで本書では分析に必要となる基本概念,基本技術の説明に加えてソーシャルビッグデータの典型的な応用の実装にすぐに使えるコード(JavaScriptやPythonプログラム)を掲載し,実務家(卒論,修論などを執筆する学生,企業の技術者,研究者)にすぐに役立つ内容の提供を目指す。

まず1章ではデータ管理とデータマイニングを含む複数の事例を通して,仮説を作り出すための手順を具体的に与えている。そのためにデータモデルアプローチを導入し,手順を特定のプログラム言語とは独立な形式で記述している。また一歩踏み込んでソーシャルビッグデータ応用でよく使われる仮説生成のための方法論についても触れている。

2章ではソーシャルビッグデータ応用で必要とされるデータマイニング,機械学習の基本概念とそこでよく使われる手法,実現アルゴリズムについて説明している。分類やクラスタリング,相関ルールなどの手法に関する複数アルゴリズムの説明に加えて,人工知能として最近注目されるディープラーニング(深層学習)についても利用目的に応じてその手法を概観できるようにした。

さらに3章以下の第II部は,ソーシャルビッグデータの収集や分析,可視化まで含めた包括的なアプリケーションをフルスタックJavaScriptにて実装する実践的な内容となっている。フルスタックJavaScript とはデータベース問い合わせ・サーバ・クライアントの3層すべてをJavaScriptで開発する方法論で,本書ではそれに加えてPythonの著名な機械学習ライブラリscikit-learnとの連携手法も示している。なお,本書で実装するプログラムはすべてGitHubリポジトリとして公開している。

最後に本書の執筆にあたりご協力いただいた職業能力開発総合大学校の遠藤雅樹氏ならびにコロナ社で企画から編集,出版までをお手伝いいただいた関係者の皆様に深く感謝する。

2018年12月 著者

第I部 基礎編
1. ビッグデータ
1.1 ビッグデータの特徴
1.2 実世界データ
1.3 オープンデータ
1.4 ソーシャルデータ
1.5 ソーシャルビッグデータ
 1.5.1 実世界データとソーシャルデータのインタラクション
 1.5.2 ユニバーサルキー
1.6 イシカワ・コンセプト,そしてジオソーシャルビッグ
 1.6.1 ソーシャルビッグデータ利用の一般的な流れ
 1.6.2 ソーシャルビッグデータの4番目のv
1.7 ソーシャルビッグデータ応用(ケーススタディ)
 1.7.1 ケース1―観光応用:掘り出し物スポット発見(ソーシャルデータ×印象評価)
 1.7.2 ケース2―観光応用:トピックの地域的影響(異種ソーシャルデータ×クラスタリング&グラフモデル)
 1.7.3 ケース3―観光応用:観光資源名の意味(ソーシャルデータ&オープンデータ×Word2Vec)
 1.7.4 ケース4―観光応用:見頃推定(ソーシャルデータ&オープンデータ×時系列分析)
 1.7.5 ケース5―観光応用:FreeWi-Fiスポット設置候補(異種ソーシャルデータ×統合分析)
 1.7.6 ケース6―防災応用:危険避難路発見(ソーシャルデータ&オープンデータ×グラフモデル)
 1.7.7 ケース7―科学応用:中央丘クレーターの発見(オープンデータ(実世界データ)×ディープラーニング)
1.8 本書で学んでほしいこと
 1.8.1 データサイエンティストとデータエンジニア
 1.8.2 データサイエンティスト

2. データマイニング・機械学習の基本技術
2.1 概論
2.2 データマイニングとは
 2.2.1 データマイニングの細分化
2.3 データマイニングと周辺分野の関連
 2.3.1 データベース
 2.3.2 統計解析
 2.3.3 機械学習
2.4 データマイニングのプロセス
 2.4.1 データの選択
 2.4.2 データの前処理
 2.4.3 データの変換
 2.4.4 パターン,知識の発見
 2.4.5 解釈と評価
2.5 クラスタリング
 2.5.1 概要
 2.5.2 階層的クラスタリング
 2.5.3 k-means
 2.5.4 DBSCAN
2.6 分類
 2.6.1 概要
 2.6.2 k近傍法
 2.6.3 決定木
 2.6.4 SVM
 2.6.5 ディープラーニング
2.7 その他の手法
 2.7.1 アンサンブル学習
 2.7.2 相関ルール

第II部 実践編
3. ソーシャルビッグデータ分析を支えるWeb技術
3.1 フルスタックJavaScript
 3.1.1 サーバ上のJavaScript
 3.1.2 データベース上のJavaScript
 3.1.3 本書で実装するシステムの構成
3.2 環境構築
 3.2.1 Node.jsのインストール
 3.2.2 MongoDBのインストール
 3.2.3 実装ディレクトリの準備
3.3 Web3層アーキテクチャの実装
 3.3.1 Webサーバ
 3.3.2 WebSocket
 3.3.3 WebSocketによるチャットプログラム
 3.3.4 JavaScript object notation(JSON)
 3.3.5 GeoJSON
 3.3.6 MongoDBの利用
 3.3.7 Node.jsからMongoDBへのアクセス
 3.3.8 非同期処理環境における処理フローの記述
 3.3.9 MongoDBとWebSocketによるチャットプログラム

4. データを集める
4.1 ソーシャルビッグデータを知る
4.2 ソーシャルビッグデータの収集
 4.2.1 検索によるTwitterデータの収集
 4.2.2 新着監視によるTwitterデータの収集
 4.2.3 検索によるFlickrデータの収集
 4.2.4 新着監視によるFlickrデータの収集
 4.2.5 DBpediaを用いたWikipediaデータの収集
4.3 ジオソーシャルビッグデータの収集
 4.3.1 ジオタグ付きツイートの収集
 4.3.2 ジオタグ付き写真の収集
 4.3.3 OpenStreetMapへの問い合わせ
4.4 クローラの実装と運用
 4.4.1 クローラ機能のパッケージ化
 4.4.2 さらに高度な実装のために

5. データを可視化する
5.1 可視化ライブラリのインストール
 5.1.1 チャート描画
 5.1.2 カラーパレット
5.2 ソーシャルデータ分析可視化環境の準備
 5.2.1 プログラムのインストール
 5.2.2 分析対象ソーシャルデータのクロール
5.3 散布図
5.4 ワードクラウド
5.5 地図描画
5.6 ヒートマップ

6. データを分析する
6.1 準備
6.2 線形回帰
6.3 k-means
6.4 DBSCAN
6.5 機械学習
6.6 TF-IDF
6.7 おわりに

引用・参考文献
索引

読者モニターレビュー【S様】

本書は,ソーシャルビッグデータの分析について,実際のコードを動かしながら分析手法を学ぶことができます。
技術的な概要を学び,実際にコードを動かして全体的な流れを身に着けるというコンセプトで書かれているため、これからデータ分析を始めたい人のための入門書として良いと思います。

本書は二部構成となっています。
第一部では,最初にソーシャルビックデータの定義とその分析について説明します。
ソーシャルビッグデータの分析とは,例えば地図情報などの実世界のデータと,twitterやflickrなどのソーシャルデータを同期データを分析することを指します。
分析の具体例として,観光地の満足度を分析するという例が本書では取り上げられています。
これは,ツイートの位置情報,および,その位置に至る前後のツイートからその位置の満足度を分析するというものです。これによって様々な場所についてその場所の価値(満足度)を評価できるという例です。

そのあとに,データマイニングのプロセスや、データマイニングの手法,機械学習の手法について学びます。
データマイニングのプロセスでは,データの選択,データの前処理,データの変換,パターン・知識の発見,解釈と評価という一連のプロセスについて学びます。
手法では,階層的クラスタリングやk-meansなどのクラスタリング,k近傍法,決定木,SVMなどの分類手法に概要に触れています。

第一部では,ソーシャルビックデータの定義とその分析が実例をもとに説明されていて理解しやすかったです。
また,様々な手法の概要がシンプルに説明されていて,どのような手法なのか把握しやすかったです。

第二部では,ウェブ環境の構築,データ収集,可視化,分析について学びます。
ウェブ環境の構築では,nodejsを使った,webサーバ,websocket, MongoDBの基本的な使い方に触れます。

次に,twitter,Flickr,オープンな地図情報のOpenStreetMapなどのデータ収集方法とクローラーを実装します。
twitter,Flickrは検索によりデータを収集します。これらを使うときにはAPIキーの取得が必要ですが,取得方法については本の範囲外なので,自分で調べる必要があります。

そして,クロールしたソーシャルデータの可視化方法として,散布図,ワードクラウド,地図描画,ヒートマップといった例を上げています。

最後に,pythonを使って,線形回帰,k-means,DBSCAN,機械学習,TF-IDFなどの分析を実際に行います。
pythonのコードについてはほとんど解説がありませんでした。
pythonでの機械学習の実装についてを本書に期待している場合には期待外れになると思います。

第二部はgithubにソースコードがすべて公開されているので,これらを動かして確認しながら学ぶことができたので良かったです。
ソースコードは必要最小限の構成として書かれているので,理解しやすいです。ただし,事前知識としてnodejsで書かれたjavascriptのコードを読むための簡単な知識が必要です。

読者モニターレビュー【Y.N.様(大学生)】

サブタイトルにもあるように,まさに「基本概念・技術から収集・分析・可視化まで」広く学ぶことができる1冊です。ソーシャルビックデータとは何なのかという定義から,実際のユースケースで理解が深まりました。データマイニングと機械学習についても前半で広く説明がされています。

また実践編では,ソーシャルビックデータに欠かせないWeb技術について「Web3層アーキテクチャの実装」をカバーしていたのが印象的で勉強になりました。「データの収集・分析・可視化」は,Twitterなど様々なAPIを活用する最新のコードが掲載されているので色々応用できると思います。

本の冒頭にも述べられているように,本分野の初学者ですぐに実務や研究で実践する知識とコードを手に入れたい場合は前著の『ソーシャル・ビッグデータサイエンス入門―基本概念からマイニング技術,応用まで』から読んだ方が理解しやすいかもしれないと感じました。本書はさらにそれらの知識と実装を広く展開した1冊でした。

「電子情報通信学会誌」2019年12月号

『電子情報通信学会誌』102巻,12号,2019/12/1,1145頁,copyright(c)2006 IEICE