RubyとRのおいしい関係
2015/06/06
第18回 岡山Ruby, Ruby on Rails勉強会
貞松 政史
@sady_nitro
自己紹介
•名前:貞松 政史 (@sady_nitro)
•所属:株式会社リゾーム
•興味:Microsoft系テクノロジー/Ruby/機械学習
•多芸は無芸を地で行く 自作自演なんでも屋
近況
•弊社の新パッケージを開発中
–必然的にMSテクノロジー寄りに
そうでなくても寄ってる
•Azure Machine Learningと
Visual Studio Onlineが好き
•オープンセミナー岡山2015に参加しました
–懇親会でRubyとRを使ったネタでLTしました
オープンセミナー岡山2015 懇親会LT
オープンセミナー岡山2015 懇親会LT
•人の主観でなく、システマティックに当日の
ハイライトを作成
•RubyとRとMeCabを利用して#oso2015の
ハッシュタグツイートを分析
•テキスト分析とビジュアライズの一例として
•延長線上として本発表を志願
おしながき
•なぜRubyとRの組合せが「おいしい」のか
•数値分析のケーススタディ
•テキスト分析のケーススタディ
•まとめ
なぜRubyとRの組合せが「おいしい」のか
「RubyとR」といえば…
•「RとRubyによるデータ解析入門」
•「R」が先に付いてるだけあって
R力がアップする一冊
•Rubyはデータ取得・加工の手段
という位置付け
なぜRubyとRの組合せが「おいしい」のか
•世間一般に溢れる「分析」を実施する場合…
–データの蓄積
–データのクリーニング
–データの加工・集計
–分析・解析アルゴリズムの適用
–分析・解析結果のビジュアライズ
なぜRubyとRの組合せが「おいしい」のか
•Rubyが得意な領域
–データの蓄積
•Ruby on Railsで構築されたWebアプリ・サービス
•既にデータの蓄積があるケースも多い
–データのクリーニング
–データの加工・集計
•言語の仕様としてコレクション操作や文字列操作に強い
•Ruby on RailsでActive Recordが利用できる
なぜRubyとRの組合せが「おいしい」のか
•Rが得意な領域
–分析・解析のアルゴリズム適用
–分析・解析結果のビジュアライズ
•R自体がそれに特化した言語
•実用的なパッケージが多く存在する
なぜRubyとRの組合せが「おいしい」のか
分析・解析の実施において
互いの長所を生かしてより良いアウトプットを得られる
どちらも強力なライブラリ(パッケージ)が存在するので
学習コストなども低め
テキスト分析のケーススタディ
テキスト分析のケーススタディ
•キーワード抽出+Word Cloudsによる可視化
–オープンセミナー岡山2015 懇親会LTでやったやつ
•TwitterAPIで取得したツイート
•MeCabによる単語抽出
•Rubyによるフィルタリング
•Rのパッケージによるビジュアライズ
テキスト分析のケーススタディ
•ツイートの取得
–twitter gemを導入すれば楽勝
テキスト分析のケーススタディ
•MeCabによる単語の抽出
–mecab-ruby gemを導入すれば楽勝
–(導入が楽勝ではないという話も)
テキスト分析のケーススタディ
•Rubyによるフィルタリング
–Rubyはコレクション操作が容易
•select
•reject
•collect etc…
–正規表現の扱いが容易
•「=~」とか
–URLや記号など、不要なワードを除外する
テキスト分析のケーススタディ
•Rのパッケージによるビジュアライズ
–wordcloudパッケージを導入すr(以下略
–RStudioを使えばさらに便利に
テキスト分析のケーススタディ
•RStudio
–RのGUIツール(IDE的なもの)
–Rスクリプトが利用しやすい
–パッケージのインストール等も画面操作で出来る
テキスト分析のケーススタディ
•せっかくなので#okarubyハッシュタグの
ツイートを分析
数値分析のケーススタディ
数値分析のケーススタディ
•ユーザー(顧客)のクラスタリング(グルーピング)
–ちょっとギョーミーな題材を
•ユーザーIDと利用ショップの入ったデータを集計
•クラスター分析を実行し、ユーザーを分類
•せっかくだから取得した分類を使ってさらに分析
数値分析のケーススタディ
•データの定義
–DBに以下のテーブルが存在するという想定
数値分析のケーススタディ
•データの集計
–テーブルを集計して以下の形式のデータを作る
会員(ユーザー)のID ユーザーごとのショップの利用回数
数値分析のケーススタディ
•クラスター分析
–Rを使用してデータをクラスター分析にかける
–K-Means Clusteringを使用
数値分析のケーススタディ
•取得した分類を使ってさらに分析
–分類ごとの特徴、傾向を分析する
まとめ
まとめ
•分析・解析の実施において
–RubyとRは互いの長所を生かしやすい
–どちらも強力なライブラリ(パッケージ)が存在するので
学習コストなども比較的低め
–Rを使うときはRStudioが便利
–ケーススタディで示したように意外と実践的

RubyとRのおいしい関係