SlideShare une entreprise Scribd logo
1  sur  28
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が便利
–ケーススタディで示したように意外と実践的

Contenu connexe

Tendances

「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
Akihiro Nitta
 

Tendances (20)

[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
MediaPipeの紹介
MediaPipeの紹介MediaPipeの紹介
MediaPipeの紹介
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
 
MS COCO Dataset Introduction
MS COCO Dataset IntroductionMS COCO Dataset Introduction
MS COCO Dataset Introduction
 
CatBoost on GPU のひみつ
CatBoost on GPU のひみつCatBoost on GPU のひみつ
CatBoost on GPU のひみつ
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
 
PyMC mcmc
PyMC mcmcPyMC mcmc
PyMC mcmc
 
Teslaにおけるコンピュータビジョン技術の調査
Teslaにおけるコンピュータビジョン技術の調査Teslaにおけるコンピュータビジョン技術の調査
Teslaにおけるコンピュータビジョン技術の調査
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 

Similaire à RubyとRのおいしい関係

Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
 

Similaire à RubyとRのおいしい関係 (20)

RubySeminar16_Analyze
RubySeminar16_AnalyzeRubySeminar16_Analyze
RubySeminar16_Analyze
 
素人のための機械学習
素人のための機械学習素人のための機械学習
素人のための機械学習
 
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
 
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組みEightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
 
JRubyで作るapiサーバー
JRubyで作るapiサーバーJRubyで作るapiサーバー
JRubyで作るapiサーバー
 
逆引きクイックセミナー
逆引きクイックセミナー逆引きクイックセミナー
逆引きクイックセミナー
 
The World is Connected
The World is ConnectedThe World is Connected
The World is Connected
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計
 
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
Reading 1st dRuby
Reading 1st dRubyReading 1st dRuby
Reading 1st dRuby
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 

Plus de sady_nitro

Plus de sady_nitro (11)

What's new with Amazon SageMaker
What's new with Amazon SageMakerWhat's new with Amazon SageMaker
What's new with Amazon SageMaker
 
20181117 azure ml_seminar_3
20181117 azure ml_seminar_320181117 azure ml_seminar_3
20181117 azure ml_seminar_3
 
20181117 azure ml_seminar_2
20181117 azure ml_seminar_220181117 azure ml_seminar_2
20181117 azure ml_seminar_2
 
20181117 azure ml_seminar_1
20181117 azure ml_seminar_120181117 azure ml_seminar_1
20181117 azure ml_seminar_1
 
座駆動LT Surface Go 実機レビュー
座駆動LT Surface Go 実機レビュー座駆動LT Surface Go 実機レビュー
座駆動LT Surface Go 実機レビュー
 
組合せ最適化問題と解法アルゴリズム
組合せ最適化問題と解法アルゴリズム組合せ最適化問題と解法アルゴリズム
組合せ最適化問題と解法アルゴリズム
 
オカヤマ コンピュータサイエンス ラボ についてのおはなし
オカヤマ コンピュータサイエンス ラボ についてのおはなしオカヤマ コンピュータサイエンス ラボ についてのおはなし
オカヤマ コンピュータサイエンス ラボ についてのおはなし
 
Try Azure Machine Learning
Try Azure Machine LearningTry Azure Machine Learning
Try Azure Machine Learning
 
Comcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSComcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTS
 
OITEC19_TFS
OITEC19_TFSOITEC19_TFS
OITEC19_TFS
 
みんな大好き機械学習
みんな大好き機械学習みんな大好き機械学習
みんな大好き機械学習
 

RubyとRのおいしい関係