2015年11月28日土曜日

kisnetサイトを使ってクラスター分析用のRスクリプトを準備する

手っ取り早くR言語を使いたい場合、Rの設定、インストールせずにWebブラウザ経由でRを使えるサイトがいくつかある。
R言語を直接書くスキルがすでにあったり、本やWebサイトの情報をもとにさっくり入力して試したいなら、
http://pbil.univ-lyon1.fr/Rweb/index.html
が便利。
ブラウザのテキストエリアに入力してSubmit押すだけですぐに試すことができるし、グラフとか描けたりも。

 


Rの環境はすでに手元にある場合に手っ取り早くクラスタ分析したいがRに不慣れな場合、
http://www.kisnet.or.jp/nappa/software/star/mva/cluster.htm#
のサイトを使うと、Excelのデータをすぐにクラスタ分析にかけるためのRのスクリプトを作ることができる。
(Windows7 64bitにRインストールする方法については、http://techinfo4dog.blogspot.jp/2015/11/windows7r.html など参照。)










Excelで元データを準備する。
人名と数値データがいくつかあるような場合のデータだと、縦に人名が来て、行方向に数値が並ぶように作る。






ブラウザで「http://www.kisnet.or.jp/nappa/software/star/mva/cluster.htm#」を開く。
ここでは人名が3人、データが6つあるので、「参加者数」に3、「変数の個数に6、Excel内に人名があるので「成員名あり」は「はい」(デフォルトは「はい」)を選択する。






表の下にあるテキストボックスをクリックすると大きくなる。そこにExcelからコピーしてそのまま貼り付ける。




 


貼り付けた後、テキストボックスの右にある「代入」を押す。
すると自動的に上のテーブルに値が入る。
適当に設定(ここではデフォルト)し、「計算」ボタンを押すと、下のテキストボックスに結果やRコマンドが表示される。






後は手順に従って実施する。(事前にRインストールし、コンソールを起動しておく。)








コピー&ペーストを繰り返すと、クラスタ分析のデンドログラム登場。








 




 


 


もう一度行う場合には、Rの「編集」画面の「コンソール消去」を行う。



Windows7にRインストール




以下、Windows7(64bit)にRをインストールする方法のメモ。(2015年11月時点で。)

参考:http://cse.niaes.affrc.go.jp/miwa/ja/R/setupReasy/ (←2016/6/25時点でリンク切れ)

http://cran.r-project.org/ の「Download R for Windows」→「base」→「Download R 3.2.2 for Windows」をクリックする。





 



R-3.2.2-Win.exeのダウンロードが開始される。(62.3MB)

 

ダウンロードされるので、ダブルクリックしてインストール開始する。

インストール中に利用する言語を選択する。(ここではデフォルトのまま。)

 

 重要事項を読む。
 


インストール先を指定する。(デフォルトはC:\Program Files\R\R-3.2.2)

 

 コンポーネントを選択する。ここでは「64-bit利用者向けインストール」を選択する。(自動的に32-bitFilesのチェックが外れる。)

 

起動時オプションで、「はい(カスタマイズする)」を選択する。(デフォルトは「いいえ」)

 

表示モードで、「SDI(複数のウィンドウを使用して表示)」を選択する。(デフォルトは「MDI(Rをひとつの大きなウィンドウで表示)」。)
 


ヘルプの表示方法で「HTMLヘルプ」を選択する。(デフォルトはHTMLヘルプ。)

 

プログラムグループを指定する。(デフォルトはR。)

 

 追加タスクを選択する。ここではデフォルトのままで、デスクトップアイコン作成、バージョンをレジストリ保存、Rを拡張子.RDataに関連付ける、にチェック。クイック起動アイコンを作成、はチェック入れない。

 

インストール完了後、Windowsメニューにメニューができており、選択すると起動する。
 



 

2015年11月9日月曜日

セミナー「Neo4j 説明会(『グラフデータベース』著者 Jim Webber氏 緊急来日) 」


Neo4j説明会に参加した。Neo4jイベントはほぼ毎回参加している。


【Neo4jユーザグループからのお知らせ(案浦氏(あんのうら氏))】

現在Connpassに334人、meetupに133人。
2.3はMacでもインストーラ追加。
オープンソースカンファレンスにいくつか参加している。
GraphConnectEurope2016は2016/4/26@ロンドン。


【Jim Webber氏講演 グラフ型データベースの導入事例について】

Neo4j in Fraud Detection and Finance。つまんない業界にどうNeo4jが入っていくか、について。

○First-Party Fraud

犯罪者当人が自分の不正アカウントで不正をすること。クレジットカードを普通に使ってlimitを上げていき、大きな買い物をして姿を消す手口。最近シンジゲート化している。
実際に存在する電話番号、住所を使ってクレジットカードを作る。実在するので不正だと分かりにくい。
今までの不正検知は二次元。今までにない行為をすると不正と疑われる。その方法だとこのようなシンジゲートに対応できない。そこで、電話番号、住所を共用しているリングを探していく。
例えば、A氏の電話番号とB氏が同じで、B氏の住所をC氏が共有し、C氏の電話をD氏が……。データ自体には問題がないが関係に問題がある、を見つける。
5163人中40人の不正を見つけるのに2495ms。


○Whiplash(交通事故のむち打ち)

交通事故の被害者になるとお金になる、をビジネスにする。組織的に犯罪行為にするシンジゲートが多発している。複数の人間がチームになり、医者、弁護士ともグルになる。犯罪の金額も大きく、自動車保険の半分はこの犯罪に消えていく感じ。
 目撃者が複数の事件に関わっているものを洗い出す。その目撃者が絡んでいる人を洗い出す。

 
○Identity Management

IDマネージメント。Online Payments Fraud。IDとパスワードを使うシステムの脆弱性。Etsy(工芸品を扱うサイト)の事例。ID、パスワードだけではなく、IP、デバイス、場所、支払方法等が絡む。各ファクターに重みづけをする。ID、パスワードは100%として、IPには80%、デバイスはxx%、のように重みづけしてスコア化。たとえばある個人が場所を移動して違うデバイスで違うIPアドレスで、はOK。複数の人間が絡んだリングを見つける。二人が同じクレジットカードを使うのはおかしいので不正である可能性が高い。ただしIPアドレスを共有している場合は除外、等。(家族で同じクレジットカードを使っているかも。)
ガートナーが不正のレイヤーを定義している。Layer1は個人、Layer5はシンジゲート。


○Master Data

マスタデータ管理。企業の中で持っている様々なDB、アプリケーションを統合したい。Adidas、Pitney Bowes、ICE等に事例あり。
ICEはイギリスの会社。オンライントレーダ向けのソーシャルネットワークサービス。Tradic Closure(三角関係)。A氏とB氏が友達、A氏とC氏が友達なら、B氏、C氏も友人になりうる可能性が高いのと同じ考えで、トレーダのトライアングルを探すレコメンデーション。Tradic Closure Predict WW1。第一次世界大戦で、6か国が二つに分かれた理屈も合わせて参照。(http://yowconference.com.au/slides/yow2013/Webber-ALittleGraphTheoryforDevelopers.pdf P.35の図)


○Governance

ある企業に対して複数の人間が金を流しており、その金の元が特定のアカウント(HSBC)を介している不正を、とあるジャーナリストが見つけた事例。(税金逃れのパターン。)ジャーナリストはNeo4jを使って検知したと発表。Neo4jに対してHSBCから文句が出たが、逆に「これは銀行内で見つけるべきだろ」とコンサルに発展した。


【GraphConnect@San Francisco2015報告@鈴木いっぺい氏】

Emil Eifremから説明があった。
NeoTechnologyは15年前(2001年)から。NoSQL系では古く、ヨーロッパで設立されたのは珍しいパターン。
Forrester予測だと「2017年に25%のEnterprise企業がグラフDBを使うだろう」とされている。
Gartnerによると「グラフ分析は企業の競合力を高めるもっとも有効な技術、2018年終わりまでには70%の主要企業がグラフデータベースを利用したプロジェクトを採用していると予測」。
グラフデータベースはビックデータカテゴリで最も成長している技術と言われる(他のデータベースに比べ)。
Google、Linked in、PayPalなどはグラフ型をキー技術として採用しているし、Walmart、Cisco、UBSのようなレガシー企業も積極的に採用している。

○スタートアップ
年商三億以下、従業員20人以下の企業ではEnterprise版無料。

○3.0
2.x系は2.3で終了。その後は3.x系へ。ebayによるとMySQLソリューションの1000倍の性能、コード量は1/10-1/100へ。
2.2から2.3はホースの水から滝になったと言われるが、各Versionによって中でかなりの修正がかかっている。2.1がMMIOだったのを2.2ではPage Cacheへ、2.3ではさらに速度10倍。完全Off-Heapキャッシュ。
dockerをサポート対象にしたのも大きなインパクト。IBMのPower8とも共同開発し、大規模メモリサーバの性能を生かせるように。
  • 0.x Embedded Java API
  • 1.x AREST
  • 2.x Cypher採用
  • 3.x いくつか呼び方があり、表記方法が異なっていたのを、統一言語ドライバへ(主要言語に対して標準ドライバを提供、コンセプト統一、Javaストアドプロシージャ、高性能ワイヤプロトコルBalt、……)。openCypher(Cypherをオープンソース化してベンダ非依存へ。かつてSQL文が統一化されたような感じ。すでにSparkが採用を発表)。Oracleのグラフ型DB(スペーシャル?)もOpenCypherを採用することを表明。tableau等もサポート予定。

これまではデータの時代だったが、これからはコネクションの時代。IoTの世界。202年には500-750億個のデバイスが相互につながっていると言われる。データをどうモデル化するかだけではなく、関連性が重要に。関連性に付加価値を。500億~は人間の脳細胞と同じで、脳のシナプスのような感じにNeo4jが進むのでは。


【Cypherクエリ本@安田氏】


インプレス社からCypherクエリ本が発表された。2160円。Kindle版もあり。著者は李氏@クリエーションライン。
クリエーションライン社では導入コンサルや有償版販売を行っている。導入事例やNeo4j説明もサイトに掲載されているほか、その他技術情報も充実している。(http://www.creationline.com/lab/neo4j


【Neo4j本@長瀬氏】

リックテレコム社から1月ごろNeo4j本発売予定。原稿はもう上がっている。グラフ型DBの入門本。売れれば技術詳細本も出るかもw
グラフ構造をどう作るとどう便利か、あたりの話をユーザグループで発表したり勉強したり等したいと考え中。