ラベル 統計 の投稿を表示しています。 すべての投稿を表示
ラベル 統計 の投稿を表示しています。 すべての投稿を表示

2020年3月29日日曜日

Dataiku Version7 新機能 : Interactive Statistics

Dataikuの最新バージョンがリリース

2020年3月16日週にDataikuの最新バージョンがリリースされました。
大きな目玉は、
  • Interactive Statistics
    • データセットの統計値(代表値)の算出・検定・分布・主成分分析・相関行列をワンクリックで表示
  • Enhanced Git Integration for Projects
    • Git(Github)との連携強化
  • Individual Prediction Explanations
    • 予測した各個別のデータがどのような変数から影響を受けたかを示す。
      (Interpretable Machine Learning:説明できる機械学習)
などです。

これまでは、Data Wringling(データ加工)やAutoML(自動的に適切なモデルを選択してくれる)などの特徴的だったのですが、今回のリリースではここ数ヶ月でトレンドとなっている「説明できる機械学習」や「Git(Github)との連携」などが組み込まれており、現場で機械学習を使う人、結果を解釈して判断をするマネージャー以上の人達にとっては嬉しい機能が盛り込まれています。

これから一つずつどのような機能がリリースされたのかを紹介していきます。

Interactive Statistics

これまでのDataikuでは、既存のデータセットの分析(代表値・分布など)を取得しようとすると、カラムレベルでAnalyzeをしたり、Chart タブを使いグラフを作成して、使おうとしているデータの特徴を掴む必要がありました。これらの機能は嬉しい反面、一つずつ選択する必要があり、面倒な部分もありました。

今回のバージョンアップで、そういった面倒な作業を行わなくても統計値を集計できるようになりました。また合わせて検定も行えるように実装がされています。

Statisticsの種類

これからは、みなさん大好きな iris(アヤメのがくの長さ、花びらの長さのデータ)を使って紹介します。ちなみにこのデータセットはRStudio から AWS S3に保存して、Dataikuで読み出しています。RStudioからAWS S3へのエクスポートの仕方はこちらの記事を参考にしてください。

データセットをインポートした後、インポートしたデータセット開くと、画面上のメニューに「Statistics」が追加されています。ここからInteractive Statisticsを実行ができます。


このStatisticsをクリックすると、どの分析をするかを聞かれます。
水色背景で記載をどのような分析ができるかを追記しています。


Univariate Analysis

まずは、Univeriate Analysis(一変量統計)を選択してみましょう。
Univariate Analysisを選択すると、以下のように変数を選択することができます。
この場合はすべての変数を選択しています。(左側の1 available variables から右側のVariables to describeに各変数をドラッグアンドドロップできます)
また、Optionsでは作成するチャートを選択できます。

選択後、右下の「CREATE CARD」をクリックすると実行され、以下のようなチャートが自動的に生成されます。数値項目については箱ひげ図や四分位点、Percentileが表示され、テキスト項目(グルーピングに使う項目)は棒グラフとFrequecyが表示されます。

また、あるグループごとで集計した結果を見たい場合もあるかと思います。
その際は、Splitを使います。
Splitを使ってみると、グループごとで集計して統計値を返してくれます。
今回はirisのデータの中のSpeciesを使ってグループごとに集計をしています。
同じチャートがこの後設定した数値変数ごとで続きます。


RやPythonを使うと一つ一つの集計やチャート作成にコードを作成する必要がありますが、このStatisticsを使うとコードを書かずともこのような数字・チャートを作成することが可能です。

Statistical Test

次はStatistical Test、日本語だと「検定」になります。今回のバージョンアップで利用できるようになった検定方法は以下となります。


今回は比較的よく使うであろう、t検定(Two-sample test > Student t-test)を行ってみます。二つのグループの平均値に違いがあるかどうかを検定します。

Two-sample test から Student t-test を選択すると、以下のような画面が表示され、それぞれ変数を選択し、比較したいグループを入力します。
今回は、分析対象として、Sepal.Length を選択し、比較カテゴリはSpecies内のsetosa と versicolor を選択しています。この2つのグループのSepal.Lengthの平均値が異なっているかどうかを検定します。
右下のCREATE CARDをクリックすると、以下のような結果が表示されます。
一番下に結果が表示され、この2つのグループの平均値は異なるということがわかりました。

Correlation Matrix

相関行列です。統計を始めたばかりの人にはあまり馴染みが無いかもしれませんが、相関係数を行列形式で表示し、どれとどれの変数の相関が強いのかをひと目で分かるものです。
Correlation Matrixを選択すると、以下のような画面からスタートします。
相関行列を作成したい変数をVariablesに移したら、右下のCREATE CARDをクリックします。そうすると、以下のような相関行列が表示されます。

こちらもUnivariate Analysisと同様にSplitをすることができます。
以下は上で作成した相関行列をSpeciesで分割した結果となります。種類によって相関行列の値が異なることがひと目で分かるかと思います。

Principal Components(主成分分析)

最後は、主成分分析です。変数をまとめて(縮約)して解釈をしやすい形にしてくれる分析手法になります。
Principal Components を選択し、どの変数を対象にするかを選びます。今回は数値項目すべてを選択しました。

必要な変数を選択したら、いつものように右下のCREATE CARDををクリックすると、以下のようなチャートが作成されます。
PCAを行ったことがある方はご存知かもしれませんが、左側のチャートが第一主成分 〜第四主成分までを表し、線グラフが累計割合を示しています。
下のグラフは各変数ごとに第一主成分〜第四主成分がどのような構成になっているかを示しています。

これまで紹介した一部の内容が一つのWorkSheet 単位にまとめられます。このWorkSheetは新規に追加したり、複製させることができます。


また他の人とデータセットの分析結果を共有したいと場合は、「︙」 をクリックし、Publishが出てくるので選択します。そうすると、どのDashboardに掲載するかの画面が表示されます。選択し終わると、今回作成した分析結果をDashboardに取り込むことができ、共有することが可能です。


 今回作成した結果(PCA・t検定・一変量統計の結果)を一枚のDashboardに取り込むことができました。これを他のユーザーと共有することで、どのようなデータセットなのかが他のユーザーもひと目で分かります。

まとめ

今回のバージョンアップの目玉の一つである、Interactive Statistics はこれまでRやPythonで一つずつコーディングが必要だった作業を、変数選択するだけで集計・チャートを作成してくれるだけでなく、検定や主成分分析もサポートしています。

データサイエンスで大事な作業として、分析対象のデータがどのような分布をしているかを理解するのが大事で、この機能を使うことで探索の時間が短縮されるのではないかと感じました。

次回以降は残り2つの紹介をしていきます。

2011年3月18日金曜日

TokyoR#12でプレゼンをしてきました。


前回のTokyo.R(3/5)からだいぶ日が経っていて、ちゃんとブログにまとめておかないとなーと思いながら、いろいろな理由を自分の中で付けて延ばし延ばしにしてしまっていました。
そんな折、先週金曜日に東北関東地震があって、いろいろ大変だったのですが、ちょっと落ち着いてきて、私にできることといったらこれぐらいしかないので、まとめてみました。
(地震には直接関係はありませんが…)

RをSQLで操る

過去に初めて使った言語が「SQL(Structured Query Language)」で長くそれ(しか)使っていなかったので、私の中でのプログラミングといえば、SQLでした。
で、昨年からRを使い始めたのですが、やっぱり集計がめんどくさい…。
Dataframeはテーブルに似ているのでapply系やaggregate系で集計するよりも、手慣れたSQLで集計したい!とRを触っていながら思っていました。

と、思っていたらやっぱり世界では同じことを考えている人がいるらしく、”sqldf”というパッケージを作っている方がいらっしゃいました。
今回話しをした内容は、このパッケージの紹介(使い方)です。

■RをSQLで操る

全体的にはそんなに難しくない(はず…)なので、スライドを読んでいただければ、ある程度は分かる内容かと思います。
スライドの一番最後のほうにも載せていますが、大量のデータをsqldfで捌こうとすると、apply,aggregate系よりも処理速度が落ちますので、生産性かスピードかどちらかをよく考えて使ってみてはどうかと思います。

あと、スライドには載せていませんでしたが、sqldfではSQLで通常使うようなテーブル同士の連結、テーブル作成などもできるようです。
それ以外にけっこうイケそうな関数も準備してあるようなので、パッケージの説明書をご一読ください。(PDF注意)
http://cran.r-project.org/web/packages/sqldf/sqldf.pdf

過去のプレゼンの話がちょっとでた

@dichika (バタデ先生)の話の質疑応答中にでてきた、過去の勉強会で話した資料はこちらです。
まだまだRの日本語の資料が十分ではないと思っていたので、英語のR関連のドキュメントをまとめていました。
ご参考になれば。

Tokyo.R#12関連のページ

2010年9月2日木曜日

Tokyo.R 第8回でプレゼンしてきました。


8月28日(土)にTokyo.R(R勉強会@東京)に参加をしてきました。

前回の勉強会が終わった時に、主催者の@yokkunsから何かありませんか?というありがたいチャンスをいただいたので、初めてだけどやってみよう!ということで、時間をいただいて話をしてきました。

話の内容

お題は「Rの海外サイトのご紹介」。

Rを触り始めて1年程度経ちましたが、なかなか日本語のドキュメントで良いのが見当たらなかったため、海外のサイトではどうだろう?と思って
いろいろ探してみたところ、良いサイトが多く出てきました。

例えば、サンプルコードや、大量のサンプルグラフがあったり、Rの商用ビジネスとしてやっていこうという会社、
BigData(テラバイト級)をRで扱おうと開発している会社など、Rを利用する際に知っておいても損は無いサイトが多数ありました。
もしかしたら、そのようなサイトが有ることをご存知でない方もいるかと思って、今回紹介をしました。

初めてこういった場で話をしたのですが、なぜかそんなに緊張しませんでした。
どちらかというと、どうやって、「リラックスして聞いてもらえるか?」、どうやって「笑いを取ろうか?」と一生懸命考えていました。

もしかしたら、一部不適切な表現とかを使っていたかもしれないため、不快に思われた方がいらっしゃるかもしれません。大変申し訳ございません。ご容赦ください。

後の懇親会で聞いたところ、意外と「面白かった!」という感想も聞かれたので、あれでよかったのか?!どうだったのか?!とちょっと複雑です。
また、意外とみなさんご存知ないサイトが多数だったようで、ご紹介できてよかったと思いました。

資料中のリンク

プレゼン資料ではリンクしているところ、していないところがあったり、プロジェクタでWebページがうまく表示されなかったりがありましたので、あらためて、このページでリンクをご紹介しておきます。
先頭に「●」がついているのが実際にお見せしたページになります。

これ以外でもRに関連して(それ以外でも統計解析やBigDataに関する)サイトがあるようでしたら、コメントでいただけると助かります。

初心者用

 ・●R-Cheat Sheets … Rの各種コマンドが掲載されている一覧リンク集。以外と使えるかもしれません。 
 ・●Web R … WebでRが使えます!
 ・●Google's R Style Guide …GoogleのRコーディングスタイルガイド 
 ・●Rの動画(Youtube)  YoutubeのRに関する動画。Introducitonもあり 
 ・●Google Code Search (lang:r) … GoogleCodeのR部分
 ・Programming R … Rのプログラム紹介。最近は更新されていません…
 ・RevolutonAnalytics Blog  … RevolutonAnalyticsのブログ。毎回チェックをしています
 ・R Bloggers … Rに関する様々な情報を提供。記事数・頻度ともに多い。Facebookのグループにもあります。
 ・R Code … WordPressのリンク集。
 ・Digithead's Lab Notebook … Rのプログラム紹介
 ・R Tutorial Series … R初心者向けTips
 ・Inside-R … RevolutonAnalytics社のブログ 読み物として面白いかも。 
 ・R-Cookbook.com  … Rのプログラミング紹介 
 ・rattle … RをGUIで操作できるパッケージ 

上級者用

 ・●One R Tip A Day … RのTips集 
 ・●R-Chart …Rのグラフ集。更新頻度は高いです 
 ・●stackoverflow … 開発言語のQ&Aサイト その中のRに関連するサイト 
 ・●crantastic …Cranの紹介サイト 
 ・●Planet R  … Rのリンク集。CRANに上がっているパッケージ更新情報なども上がっているので便利 
 ・●useR! …カンファレンス
 ・R-Statistics Blog … Rのプログラム例が豊富。 
 ・Learning−R … Rのプログラム例が豊富。ggplot2をつかった例が多い 
 ・"R" you ready ? … Rのプログラムサンプル集 統計〜グラフまでかなり良いでき 
 ・Decision Stats  … Rの具体的な利用を紹介 
 ・RProgramming  … RのWiki 初心者〜上級者向け 
 ・Bay Area useR Group … Bay AreaのuseRのような集まり 
 ・R Graphics  … グラフのサンプルチャートが多数あります。 
 ・R Graphical Manual … Rのグラフ事例集 大量にサンプルがあります。(実は日本の組織で作られているようです)

その他

 ・Dataspora Blog … 「GoogleとFacebookではRをどうやって使っているか?」の参照元サイト
 ・Data Liberation Blog …googleの公式ブログ。データに関する情報が公開されています。(Rに限らず)
 ・Massive Data News … Massive Data(TeraByte級のデータ)にまつわる情報を紹介しています。
 ・Infochimps … 世界中の公開されている統計情報を検索できる。デモなどで利用が可能なのでは?

このサイトで翻訳したページ

 ・GoogleとFacebookではRをどうやって使っているのか? 
 ・GoogleでのRコーディングスタイル

プレゼン資料

2010年2月6日土曜日

GoogleでのRコーディングスタイル


前回の「GoogleとFacebookではRはどのように使われているか?」が意外と人気だったため、引き続き統計ソフトRのお話。

今回取り上げるのは、GoogleでのRコーディングスタイルについて。
これもちょっと調べ物をしていた際に発見したページです。
(もしかしたら、Rを利用されている方にとってはポピュラーなページかもしれませんが)

今回もこちらのページを日本語訳に挑戦してみました。
(例によって英訳に誤訳等があるかもしれません…ご容赦ください)

GoogleでのRコーディングスタイル

今回のページはこちら
GoogleCodeの中のページです。元々はGoogleCodeの中で、各種言語のコーディングスタイルが記載されているようです。
C++や、Objective-C、Pythonのスタイルが書いてありました。

Google's R Style Guide


サマリー:Rスタイルルール

1.ファイル名:「.R」で終わること
2.アイデンティティ:変数.名前、関数名、定数
3.一行の文字数:最大80文字
4.インデント:2つのスペース。タブは使わない
5.スペースの取り方
6.中括弧({} ←これの事!知らなかった。Curly Bracesっていうんですね)
7.代入:「<- 」を利用しましょう。「=」じゃなくて。
8.セミコロン:使っちゃダメ
9.一般的な表記
10.コメントガイドライン:すべてのコメントは「#」の後にスペースを入れる。インラインは「#」の前にスペース2つ
11.関数の定義と呼び出し
12.関数のドキュメント
13.関数例
14.ToDo例


サマリー:R言語のルール

1. attach:使用を避ける。
2.関数:エラーはstop()を利用して表示させる。
3.オブジェクトとメソッド:可能であれば、S4オブジェクトとメソッドは使用を避ける。S3とS4は混ぜて利用しない。

表記法とネーミング

・ファイル名
ファイル名は「.R」で終わり、意味がわかるように命名をする。
[ファイル名]
良い例:predict_ad_revenue.R
悪い例:foo.R

・アイデンティティ
「_」(アンダースコア)や「ー」(ハイフン)は利用しない。アイデンティティは以下の慣例にしたがって利用する。
変数名はすべて小文字で、「.」(ドット」は利用して意味をつける。関数名は先頭を大文字にしてドットを利用しない。
定数は関数と同様に表記して最初に「k」を入れる。
[変数]
良い例:avg.clicks
悪い例:avg_Clicks , avgClicks
[関数名]
良い例:CalculateAvgClicks
悪い例:calculate_avg_clicks , calculateAvgClicks
[定数名]
kConstantName

シンタックス

・一行の文字数
最大でも1行80文字

・インデント
コードにインデントを入れる場合、2つのスペースを入れる。タブやタブとスペースを混ぜたものは利用しない。

・空白
スペースは、すべてのバイナリオペレータ(=, +, -, <-, ほか.)の周りで利用する。  コンマの前にはスペースは入れずに、コンマの後にスペースを入れる。
良い例:tabPrior <- table(df[df$daysFromOpt < 0, "campaignid"])
total <- sum(x[, 1])
total <- sum(x[1, ])  
悪い例:tabPrior <- table(df[df$daysFromOpt<0, "campaignid"]) # '<'の周りにスペースが必要      
tabPrior <- table(df[df$daysFromOpt < 0,"campaignid"]) # コンマの後ろにスペースが必要   
tabPrior<- table(df[df$daysFromOpt < 0, "campaignid"]) # '<-' の前にスペースが必要   
tabPrior<-table(df[df$daysFromOpt < 0, "campaignid"]) # '<-'の周りにスペースが必要
total <- sum(x[,1]) # コンマの後にスペースが必要
total <- sum(x[ ,1]) # コンマの前にスペースが必要  

左辺の前にスペースを入れる。(関数呼び出し以外)  
良い例:if (debug)  
悪い例:if(debug)

イコールやアロー(<-)が改善するのであれば、1行に他のスペースの入れるのも問題なし。  

plot(x    = xCoord,
     y    = dataMat[, makeColName(metric, ptiles[1], "roiOpt")],
     ylim = ylim,
     xlab = "dates",
     ylab = metric,
     main = (paste(metric, " for 3 samples ", sep=""))) 
)  
※見やすくなれば、スペースは入れても問題なし。  

カッコやブラケットの周りにはスペースはいれてはならない。
例外:コンマの後にスペースを入れる。  
良い例:if (debug)
x[1, ]  
悪い例:if ( debug ) # "debug"の周りにはスペースを入れない     
x[1,] # コンマの後にはスペースを入れる。

・中括弧
中括弧の開始はそれ単体で始めてはならない。終了の中括弧はそれだけで1行にしておく。1行で構成される場合は中括弧は覗いてもよい。
if (is.null(ylim)) {
  ylim <- c(0, 0.06)
}
xor (but not both)
if (is.null(ylim)) 
ylim <- c(0, 0.06)

ブロック本体は新しい行で開始されなければならない。  
悪い例:if (is.null(ylim)) ylim <- c(0, 0.06) #中括弧を入れる      
if (is.null(ylim)) {ylim <- c(0, 0.06)} #改行を入れる  


・代入
「<-」を利用。「=」は利用しない。  
良い例:x <- 5  #「<-」を利用している。  
悪い例:x = 5 #「=」を利用している。

  ・セミコロン
セミコロンで終わらせてはいけないし、1つのコマンドを同じ行に利用する場合は、セミコロンは省略してはならない。
(セミコロンは必要ではありませんし他のGoogleスタイルガイドでも省略されています)

構成

・一般的なレイアウトと順番
みなさんが統一された順番でコードを書くと、私たちは、お互いのコード(スクリプト)を早くそしてより簡単に理解することができます。
1. 著作権コメント
2. 作者コメント
3. プログラムの目的、インプット、アウトプットを含めたファイルの詳細コメント、
4. source()、library()ステートメントを記入
5. 関数の定義
6. print ,plotなどの実行するステートメント

単体テストを行う場合は、originalfilename_unittest.Rのように別ファイルにすること。

・コメントガイドライン
コメントをコードに書いてください。すべてのコメントは「#」の後にスペースで書いてください。
短いコメントはコードの後ろに2つスペースを入れ、「#」の後に1つスペースを入れてください。

# Create histogram of frequency of campaigns by pct budget spent.
# 長いコメントは1行に。#スペースで始める
hist(df$pctSpent,
breaks = "scott", # method for choosing number of buckets 
# 短いコメントはコードの後に入れる
main = "Histogram: fraction budget spent by campaignid",
xlab = "Fraction of budget spent",
ylab = "Frequency (count of campaignids)")

・関数の定義と呼び出し
関数の定義は、デフォルト値以外を最初に持ってきて、その後にデフォルト値を持ってくる。
関数の定義と呼び出しを両方行う場合、複数行にわたってもよい。改行は代入の場合に許される。
良い例:PredictCTR <- function(query, property, numDays,     
showPlot = TRUE) # 代入を行っているため、改行してもよい。  
悪い例:PredictCTR <- function(query, property, numDays, showPlot = TRUE)# 代入で改行されていない。
原則的に、単体テストはサンプル関数で呼び出されるべきである。 


・関数のドキュメント
関数のドキュメントは関数の定義のすぐ上にコメントを書いた方がよい。これらのコメントは1センテンスで構成差れるべきで「Args:」で説明したほうがよい。日付を含む返り値は「Returns:」で説明したほうがよい。
コメントは他の利用者から関数コードを見なくても使えるように十分に書く必要がある。

・関数のサンプルコード
CalculateSampleCovariance <- function(x, y, verbose = TRUE) {
  # Computes the sample covariance between two vectors.
  #
  # Args:
  #   x: One of two vectors whose sample covariance is to be calculated.
  #   y: The other vector. x and y must have the same length, greater than one,
  #      with no missing values.
  #   verbose: If TRUE, prints sample covariance; if not, not. Default is TRUE.
  #
  # Returns:
  #   The sample covariance between x and y.
  n <- length(x)
  # Error handling
  if (n <= 1 || n != length(y)) {
    stop("Arguments x and y have invalid lengths: ",
         length(x), " and ", length(y), ".")
  }
  if (TRUE %in% is.na(x) || TRUE %in% is.na(y)) {
    stop(" Arguments x and y must not have missing values.")
  }
  covariance <- var(x, y)
  if (verbose)
    cat("Covariance = ", round(covariance, 4), ".\n", sep = "")
  return(covariance)
} 

 ・TODOスタイル
一貫したスタイルでTODOリストは書いてください。

言語

・Attach
attachを利した場合、大量のエラーを生成する場合があります。利用は避けてください。

・関数
エラーを発生させる場合は、stop()関数でエラーを表示させてください。

・オブジェクトとメソッド
S言語は2つのオブジェクトシステムを持っていて、両方ともRでは利用できます。
S3メソッドはインタラクティブで柔軟ですが、S4はフォーマルで厳格です。

S4オブジェクトを利用する強い理由がない限り、S3オブジェクトを利用してください。
S4オブジェクトを利用する際の第一の理由はC++コードを直接利用する場合です。
S3とS4を混ぜて使うのは避けてください。S4メソッドはS3の資産無視します。そのまた逆も同じです。

例外

他に合理的な理由がない限りはコーディングスタイルは上記に従うべきです。
例外は、古いコードや3rdパーティーのコードに含まれます。

最後に

コードを書く際は、一般常識と一貫性を使ってください。
もしコードを書く場合、数分間を使って、コード周りを見渡してあなたのコーディングスタイルを決めてください。
もし他の方がif文の回りにスペースを利用していた場合、それに従ってください。また、他の方がコメントに星を利用していた場合、あなたも同様にしてください。

スタイルガイドラインのポイントは、コードを書く人があなたが何をいわんとしているか、さらにどうやって実現するかを理解させ、集中させるための共通の用語です。私たちは、共通の用語を知る人のためスタイルルールを提供しました。
しかし、ローカルスタイルは同様に重要です。もしあなたが追加しようとするファイルのコーディングスタイルが大幅に違う場合、(コードスタイルの)不連続性は、コードを読むときにリズムを崩します。これは避けてください。

コードを書くためのスタイルはこれで十分です。コード自体は非常に面白いです。
楽しんで!

リファレンス

http://www.maths.lth.se/help/R/RCC/ - R Coding Conventions
http://ess.r-project.org/ - For emacs users. This runs R in your emacs and has an emacs mode.

書き終わって

このブログが始まって以来,最大の長さになってしまいました。
これからRを勉強しようとされる人(私も含めて)にとって参考になればと思います。

2010年1月26日火曜日

GoogleとFacebookではRをどうやって使っているのか?



ひさしぶりに統計ソフトRの話。

来年こそは仕事でバリバリつかってみようと思っている統計ソフトのR。
前のエントリーでも書いているように、フリーソフトなのに高機能。(統計解析・グラフの種類が豊富)

しかし、日本語での資料がまだ少ないのがちょっとイタイ…。
(最近は書籍でも多く診られるようになってきましたけどね!嬉しい限りです)

ちょうど調べ物をしてたときに、「How Google and Facebook are using R」というエントリーを見つけました。

今日はその内容をちょっと日本語に訳した内容を紹介しようと思います。

紹介するサイト

この記事が書かれていたのは、Dataspora Blog というサイトで、データに関する(Big Data, open source analytics, and data visualization)記事をメインに書かれているようです。
(私は知らないのですが、実は結構有名なブログだったりするのでしょうか…)

その中の「How Google and Facebook are using R」というエントリーです。

GoogleとFacebookではどうやってRをつかっているか?

この記事は、Bay Area R User GroupのキックオフMTGのパネルディスカッションの際に話しあわれたようです。
出席者はこの方々。

・ Bo Cowgill, Google
・ Itamar Rosenn, Facebook
・ David Smith, Revolution Computing
・ Jim Porzak, The Generations Network (and Co-Chair of our R Users Group)

それぞれ所属している組織の中でどのようにRが使われているかを紹介してくれています。
(一部抜粋をしていますので、全文を参照したい方はこちらを参照ください)
(英訳自体はそんなに得意ではないので、文法的に間違っている・意味がわからない箇所があるかもしれませんが、ご容赦ください)

■Bo Cowgill, Google

Google uses R for data exploration and model prototyping, it is not typically used in production: in Bo’s group, R is typically run in a desktop environment.


Googleではデータ探索やモデルのプロトタイピングを行って胃ます。一般的にプロダクション(公開している製品の意味?)には使っていません。デスクトップの環境だけです。

The typical workflow that Bo thus described for using R was: (i) pulling data with some external tool, (ii) loading it into R, (iii) performing analysis and modeling within R, (iv) implementing a resulting model in Python or C++ for a production environment.


(Googleでの)一般的な使い方は、1.他のツールでデータを抽出 2.Rへインポート 3.Rで解析とモデリングを作成 4.PythonやC++ でモデリング結果をプロダクションへ実装

■Itamar Rosenn, Facebook
Itamar conveyed how Facebook’s Data Team used R in 2007 to answer two questions about new users: (i) which data points predict whether a user will stay? and (ii) if they stay, which data points predict how active they’ll be after three months?


Facebookのデータチームは新規ユーザーの2つの質問について回答するために、2007年からRを使い始めた。1.どのデータポイントからユーザーが滞在するかを予測するか? 2.そのポイントによると、3ヶ月後にはユーザーはどのようなアクティビティをするか?

For the first question, Itamar’s team used recursive partitioning (via the rpart package) to infer that just two data points are significantly predictive of whether a user remains on Facebook: (i) having more than one session as a new user, and (ii) entering basic profile information.


最初の質問の回答については、ItamarのチームはRのリカーシブパーティショニング(rpartパッケージ)を使って、ユーザーがFacebookに残るための、次の2点について意義深い予測ができた。
1.新規ユーザーによる1セッション以上のアクセス 2.基礎的なプロファイルを入力しているユーザー

For the second question, they fit the data to a logistic model using a least angle regression approach (via the lars package), and found that activity at three months was predicted by variables related to three classes of behavior: (i) how often a user was reached out to by others, (ii) frequency of third party application use, and (iii) what Itamar termed “receptiveness” — related to how forthcoming a user was on the site.


次の質問については、least angle regression approachを利用したロジスティックモデルを利用した、(larsパッケージ)それらによると3つの関連している変数について、今後3ヶ月の予測がわかった。
1.どのぐらいの頻度で他の人からアクセスされているか 2.3rdパーティーのアプリケーションの利用頻度 3.Itamarが名づけた"receptiveness" と名付けた、来るべきユーザーがそのサイトにどうやってくるか。

■David Smith, Revolution Computing
David showcased how one of their life sciences clients used R to classify genomic data through use of the randomForest package, and how the analysis of classification trees could be easily parallelized using their ‘foreach’ package.


Davidは彼らのクライアント(生命科学)で遺伝子情報の分類にRのrandamForest パッケージを使っているところを見せてくれた。遺伝子情報の区分では、彼ら(Revolution Computing)のforeachパッケージが簡単に並列処理ができるとのこと。

David evangelizes and educates about R at the Revolutions blog .


DavidはRevolutions blog でエバンジェリストと教育を行っています。

■Jim Porzak, The Generations Network
Jim (also co-chairs the R Users Group), gave a brief overview of his PAW talk on using R for marketing analytics. In particular, Jim has used the flexclust package to cluster customer survey data for Sun Microsystems, and apply the resulting profiles to identify high-value sales leads.


Jim(R User Groupの共同議長(??))は、PAWtalkで話したRを使ったマーケティング分析の概要について披露した。特にflexclustパッケージを利用しSun Microsystemsの顧客アンケートデータを使って、価値の高い見込み客のプロファイルの特定を行った。

ここまでが各パネリストによるRをどのように使っているかの紹介です。
続いて目に止まったQ&Aを紹介します。

■Q&A
1.How do you work around R’s memory limitations? (R workspaces are stored in RAM, and thus their size is limited)


Rのメモリに限界がありますが、どのように作業をされていますか?(RのWorkSpaceはRAM依存であり、RAM以上のデータは利用できない)

Three responses were given (including one from the audience):


3つの回答がありました。(一つは会場から)

(i) use R’s database connectivity (e.g. RMySQL), and pull in only slices of your data, (ii) downsample your data (do you really a billion data points to test your model?), or (iii) run your scripts on a RAM-obsessed colleague’s machine or fire up an virtual server on Amazon’s compute cloud — for up to 15 Gigs.


1. Rのデータベースコネクションを利用し(RMySQLなど)必要分だけもってくる。2.サンプルサイズを減らす。(ほんとうに10億行もデータが必要ですか)3.同僚のコンピュータを利用するか、Amazonのクラウドを利用

2. How well does R interface with other tools and languages?


Rは他のツールや言語などのインターフェイスはどうなっているの?

There are several packages on CRAN for importing and exporting data to and from Matlab ( RMatlab), Splus, SAS, Excel and other tools. In addition, there are interfaces for running R within Python ( RPy ) and Java ( RJava ).


CRANにMatlab、Splus,SAS、Excelなどの他のツールからのインポート・エクスポートができるいくつかのパッケージがあります。加えて、他の言語からRを使うことができます。(RJava、RPy)

The panelists mentioned that they typically run R within a GUIs, either RCommander or Rattle .


パネリストからは、GUI経由でRを動かしたり、RCommanderやRattleを使ってRを動かしているようです。

GoogleとFacebookでは使い方が違う?!

Rの使い方を日本語訳をしてみたのですが、Google側は「どのようなデータ解析をしているか」までは踏み込んでおらず、具体的な解析手法については
このブログからはわかりませんでした。

一方で、Facebookは具体的な「ユーザーのアクティビティ」について言及してあり、サイトの中でどんなユーザーがどのような動きを今後しそうなのかを
書いてあったため、アクセス解析から一歩踏み込んだ予測まで行っていることがわかりました。

おそらくGoogleは、サイト内の解析というよりも、検索にかかわる解析を行っているのではないかと考えられます。彼らのビジネスのコアは「検索」です。
「検索キーワードと検索結果のクリックとの相関」、「検索キーワードと、検索広告・クリエイティブとの相関」などなど…

両社とも世界のシェアの数十%を持っていて、解析対象となるデータは十分にあるので、モデリングとしての精度は非常に高くなり、その解析結果をプロダクションに反映し、さらにユーザーを呼び込んでいるのではないでしょうか。

今後、No.1がNo.2以下を大きく離す可能性が高いと考えられます。

これからもひろがるRの利用

GoogleでもFacebookでも利用されているR。
日本でも学術系、生命科学系の分野で活発に利用がされ始めてきているようです。

マーケティング分野や、予算、市場分析などの分野でもこれからRはもっと使われていくのではないかと思います。

2009年9月2日水曜日

統計ソフトRでおもしろいのを見つけた!



以前、「Rを使ってみる」というエントリーを書きました。
統計解析ソフトでフリーソフトなのですが、ちょっとずつ世間の注目を浴びているようです。
先日行った大型書店でもRに関連した本が出版されていました。
自分が注目していたソフトがどんどん利用されていくというのは、ちょっとうれしいですね。

自分もRを使っていきたいので、近々勉強メモみたいな物を上げていきたいと思っています。

そんなRですが、2つほど、おもしろい物を見つけました。

seek R


RってPHPやPerlのようにユーザー数がそれほど多くないので、技術情報を探すのが結構大変。
「R」で検索しても、商標のRとかがでてきて、目的の情報にたどり着けないのもしばしば。

そこで、Rの情報に特化した検索エンジンが作られたようです。
seek R
そこで、seekR は、Google Custom Search を使用して主に国内の R に詳しいサイト、はてなダイアリーから、統計・ソフトウェア関係のキーワードでバイアスをかけて検索します。


で、実際に検索をしてみました。

確かに、Rに特化した内容になっていて、よい感じです。

これからRを勉強していきたいという人や、Rでわからないところがある!といったユーザーに使って欲しいですねー。
もちろん、私も使います!

【初音ミク】えれくとりっく・えんじぇぅをRで描いてみた


という、ニコニコ動画にあがっている動画。
Rで無駄に描画していますw

こんな使い方もできるのかー。というところが正直な感想です。世の中、技術とヒマをもてあましている人もいるんですね・・・ふつうにすごいですね。

以上、Rで最近見つけたものでした。