« 2009年5月 | メイン | 2009年7月 »

2009年6月

2009年6月22日 (月)

グループウェアのログデータを分析対象とした、 PL/Rを用いたデータマイニングWebアプリの実現(2)

(前回)はこちら

2.ログデータ分析

ログデータ:
ここは、サイボウズ社内で使用している「サイボウズガルーン2」のWebサーバーのログデータを分析対象としました。特に、「サイボウズガルーン2」のアプリ毎のアクセス状況を分析してみました。

実装分析項目:
クエリー
バー・グラフ
パイ・グラフ
ボックス・グラフ
ネットワークマップ
クラスタリング
(バーグラフとパイグラフは今回省略しています)

Attachment7


時間が限られていたため、少ない分析、可視化の項目での検証となりました。上図のように、実装分析項目にパラメータを指定した上で、動的に分析ができます。

クラスタリング:

教師なしデータ分類手法、与えられたデータを外的基準なしに自動的に分類する手法です。グループウェア上のユーザーの行動をクラスタリングすることによって、行動が似てるユーザーをそれぞれのカテゴリーに自動的に分類できます。また、カテゴリーから外れたユーザーが異常行動のユーザーとして抽出できます。

同時に、ユーザー行動の特徴抽出には幾つかの方法があります。たとえば、各アプリの使用頻度、アプリ間のトランスファー頻度、各アプリ間で見られる特徴なトランスファーシナリオなどです。 ここで、簡単に、各アプリの使用頻度を基にして視覚化しました。

下図はあるクラスタリング例です。アプリの使用頻度によって、三つのカテゴリーに分けています。さらに、各カテゴリーのユーザーの行動をネットワークマップで可視化してみました。

Attachment9


ネットワークマップ:
各アプリ使用のトランスファーシーケンスをネットワークマップで可視化してみました。アプリ間のトランスファー頻度を太さとし、トランスファー方向を矢印としています。群2と群3の行動の違いが視覚である程度把握できると思います。

Attachment11


(ここで、ネットワークマップを可視化の例としてだけ使用しています。先例のクラスタリングの特徴がアプリの使用頻度であるのに、各カテゴリーの調査でトランスファーパターンを使用するのは、適切ではありません。)

3.まとめ

また、グループウェアのWebサーバーのログデータを対象にして、幾つか可視化、分析機能を検証しました。しかし、今回の実装には、まだ、幾つか不足点があります。Webサーバーのログ情報がまだ粗く、アプリ内の使用状況を分析していません。これについては「サイボウズガルーン2」内で蓄積したユーザー行動情報を使えば、より詳しい分析ができると考えています。また、事前に分析目的を明確化する必要があると思います。たとえば、開発者、利用者、システム管理者、それぞれ違う分析ニーズを持っているかと思います。
今後、実際のニーズに合わせたデータマイニングWebアプリの開発が期待されています。

2009年6月12日 (金)

グループウェアのログデータを分析対象とした、 PL/Rを用いたデータマイニングWebアプリの実現(1)

アブストラクト:
新入社員が受ける一ヶ月の開発研修で、PostgreSQLとR言語を統合し、PL/Rを用いてデータマイニングのWebアプリを実装しました。また、サイボウズ社内で使用している「サイボウズガルーン2」のWebサーバーのログデータを分析してみました。ここで、これらの技術について、紹介したいと思います。

キーワード:
グループウェア、ログデータ、Webアプリケーション、データマイニング、可視化

初めまして、周と申します。2009年2月に「ポスドク採用枠」(ポスドク枠)で入社し、現在は開発部に所属しています。今回、開発部業務研修で実装したデータマイニングWebアプリやログデータ分析についての技術を紹介したいと思います。

サイボウズでは、ポスドク枠で採用される新入社員は、約1ヶ月の人事・OJT研修以外に、配属先の開発部でも、約1ヶ月、経験豊富なメンターに付いて業務研修を受けます。業務研修は、スムーズに開発に参加できるようになることを目的としています。また、自分が好きな分野を加え、技術調査を行うことで、開発部のメンバーたちとの技術交流もできると言われています。

1.データマイニングWebアプリの実現
近年、データマイニングやテキストマイニングが注目されてきました。SASやSPSSなどのデータマイニングに特化する企業の急成長は、その一例であると思います。大量データの蓄積、データ活用する意識の高まり、分析手法を活用する事例の増加などが、データマイニングのニーズを高める要因であると考えています。一方、高価なSASやSPSSのような商業データマイニングソフトと匹敵でき、フリーウェアであるR言語などが注目されています。さらに、R言語をデータベース管理システムの分析エンジンとし、Webアプリの形でデータマイニングやグラフィックスの機能を提供できれば、適用範囲がもっと広がると考えています。そこで、フリーウェアであるデータベース管理システムPostgreSQLをR言語と統合し、データマイニング機能やグラフィックス機能を提供できるWebアプリを実装してみました。

(1)R言語について
R言語とは:
オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境であります。
  R言語(参考:Wikipedia)

特徴:
・可視化の柔軟性が高い
・統計分析や機械学習などの分析機能が豊富である
・フリーなアドオンパッケージが1,700個以上あり拡張性が高い

インターフェース:
R言語の活用によって、多様なアプリとのインターフェースが出てきました。
  Rとインターフェースのあるアプリ

実例:
≪検査・調査Web システムにおける統計解析機能の導入と活用≫

(参考:工藤伸之(2008)平成20年度岡山理科大学修士論文)

(2) PL/Rについて
PL/Rとは:
PostgreSQL用R手続き型言語(R Procedural Language for PostgreSQL)です。DBMS環境でR言語の分析機能や可視化機能を呼び出すことが可能になります。
  http://www.joeconway.com/oscon-pres-2003-1.pdf
  (以下PDFより一部抜粋)
メリット:
・Leverage people's knowledge and skills
– statistics is a specialty not common amongst database developers
・Leverage hardware
・Processing/bandwidth efficiency
・Consistency of analysis
・Abstraction of complexity
デメリット:
・PostgreSQL user:
– Slower than standard SQL aggregates (e.g. AVG) for simple cases
– New language to learn
・R user:
– Debugging more challenging than working directly in R
– Less flexible for ad hoc analysis

PostgreSQLとは:
BSDライセンスにより配布されているオープンソースのオブジェクトデータベース管理システム (ORDBMS) です。

(3) PL/Rを用いたウェブアプリの実現
実装したWebアプリの構造を下図に示しています。分析リクエストがSQLスクリプトの形でPostgreSQLに渡されます。PostgreSQLはSQLスクリプトを実行し、その中に埋め込めたPL/Rの関数を 実行します。また、PL/R関数の実行により、R言語を呼び出し、分析を行い、分析結果やグラフィックスを返します。分析データがPostgreSQLに蓄積していて、分析や分析データのやり取りがすべてPostgreSQL環境で処理できるので、他のR言語インターフェースと比べて、処理速度が速いという特徴を持ちます。ここでは、Webアプリの実現はPHPを利用しましたが、PL/Rがアプリケーションの開発言語に依存しないという特徴も持っています。PL/RがR言語の呼び出しを、PostgreSQL環境で行うためです。

R_1



後編はこちら