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

Weitere ähnliche Inhalte

Was ist angesagt?

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

Was ist angesagt? (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を使ったゲームサーバ
 

Ähnlich wie RubyとRのおいしい関係

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

Ähnlich wie 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
 

Mehr von sady_nitro

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

Mehr von 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のおいしい関係