Submit Search
Upload
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
•
Download as PPTX, PDF
•
1 like
•
418 views
dots.
Follow
dots.女子部勉強会 vol.5の資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 14
Download now
Recommended
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれ
Makoto Koike
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
Masato Fujitake
PythonでPodcastを聴く
PythonでPodcastを聴く
Masato Fujitake
Pythonで自動化した話1
Pythonで自動化した話1
Masato Fujitake
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
Norihiro Yoshida
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
1030 twitter講座.key
1030 twitter講座.key
Tokyo City University, Ueno Lab.
Recommended
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれ
Makoto Koike
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
Masato Fujitake
PythonでPodcastを聴く
PythonでPodcastを聴く
Masato Fujitake
Pythonで自動化した話1
Pythonで自動化した話1
Masato Fujitake
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
ファジングツールAFLの利用を支援するツールFuzz4Bによるファジング教育の試み
Norihiro Yoshida
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
1030 twitter講座.key
1030 twitter講座.key
Tokyo City University, Ueno Lab.
T4使ってみた
T4使ってみた
Ryota Murohoshi
S18 t0 introduction
S18 t0 introduction
Takeshi Akutsu
TensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
yaju88
Python
Python
卓馬 三浦卓馬
情報検索の基礎 第1章 論理検索
情報検索の基礎 第1章 論理検索
nishioka1
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
Kimikazu Kato
Mr201306 機械学習のセキュリティ技術応用
Mr201306 機械学習のセキュリティ技術応用
FFRI, Inc.
Tfug kansai vol1
Tfug kansai vol1
Natsutani Minoru
UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。
tak9029
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
Takeshi Akutsu
XMPPの紹介
XMPPの紹介
隆行 神戸
IPython notebookを使おう
IPython notebookを使おう
Kazufumi Ohkawa
ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発
Yuya Oka
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Takeshi Akutsu
Tfug kansai vol2
Tfug kansai vol2
Natsutani Minoru
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
Python languageupdate (2004)
Python languageupdate (2004)
泰 増田
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
Kotatsu RIN
協調フィルタリング
協調フィルタリング
miyagawa50
More Related Content
What's hot
T4使ってみた
T4使ってみた
Ryota Murohoshi
S18 t0 introduction
S18 t0 introduction
Takeshi Akutsu
TensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
yaju88
Python
Python
卓馬 三浦卓馬
情報検索の基礎 第1章 論理検索
情報検索の基礎 第1章 論理検索
nishioka1
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
Kimikazu Kato
Mr201306 機械学習のセキュリティ技術応用
Mr201306 機械学習のセキュリティ技術応用
FFRI, Inc.
Tfug kansai vol1
Tfug kansai vol1
Natsutani Minoru
UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。
tak9029
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
Takeshi Akutsu
XMPPの紹介
XMPPの紹介
隆行 神戸
IPython notebookを使おう
IPython notebookを使おう
Kazufumi Ohkawa
ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発
Yuya Oka
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Takeshi Akutsu
Tfug kansai vol2
Tfug kansai vol2
Natsutani Minoru
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
Python languageupdate (2004)
Python languageupdate (2004)
泰 増田
What's hot
(20)
T4使ってみた
T4使ってみた
S18 t0 introduction
S18 t0 introduction
TensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
Python
Python
情報検索の基礎 第1章 論理検索
情報検索の基礎 第1章 論理検索
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
Mr201306 機械学習のセキュリティ技術応用
Mr201306 機械学習のセキュリティ技術応用
Tfug kansai vol1
Tfug kansai vol1
UnityでのLINQ活用例
UnityでのLINQ活用例
TensorFlowで会話AIを作ってみた。
TensorFlowで会話AIを作ってみた。
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
XMPPの紹介
XMPPの紹介
IPython notebookを使おう
IPython notebookを使おう
ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Tfug kansai vol2
Tfug kansai vol2
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
Python languageupdate (2004)
Python languageupdate (2004)
Viewers also liked
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
Kotatsu RIN
協調フィルタリング
協調フィルタリング
miyagawa50
前期反省&下期目標 吉澤和香奈
前期反省&下期目標 吉澤和香奈
Wakana Yoshizawa
Hack tutorial
Hack tutorial
Wakana Yoshizawa
自己紹介&自社紹介 吉澤和香奈
自己紹介&自社紹介 吉澤和香奈
Wakana Yoshizawa
dots 女子部 LT会 Vol.2 ぼっち振り返り
dots 女子部 LT会 Vol.2 ぼっち振り返り
Michiyo Chuman
React.js触ってみた 吉澤和香奈
React.js触ってみた 吉澤和香奈
Wakana Yoshizawa
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
Tomoaki Shimizu
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Tomoaki Shimizu
CEDEC 2015: PlaygroundとLuaによる 大規模モバイルオンラインゲーム開発のレベルアップ Part3
CEDEC 2015: PlaygroundとLuaによる 大規模モバイルオンラインゲーム開発のレベルアップ Part3
Takuya Hashimoto
ゲーム業界で思う3つの大事なこと 2016-06-28
ゲーム業界で思う3つの大事なこと 2016-06-28
俊仁 小林
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hikari Fukasawa
今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと
Akira Miki
迷ったもん勝ち!~迷走するクラウド人生~ 20151221
迷ったもん勝ち!~迷走するクラウド人生~ 20151221
Michiyo Chuman
Viewers also liked
(14)
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
クラウドサービスを活用した『教育の情報化整備ガイドライン』の開発
協調フィルタリング
協調フィルタリング
前期反省&下期目標 吉澤和香奈
前期反省&下期目標 吉澤和香奈
Hack tutorial
Hack tutorial
自己紹介&自社紹介 吉澤和香奈
自己紹介&自社紹介 吉澤和香奈
dots 女子部 LT会 Vol.2 ぼっち振り返り
dots 女子部 LT会 Vol.2 ぼっち振り返り
React.js触ってみた 吉澤和香奈
React.js触ってみた 吉澤和香奈
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
CEDEC 2015: PlaygroundとLuaによる 大規模モバイルオンラインゲーム開発のレベルアップ Part3
CEDEC 2015: PlaygroundとLuaによる 大規模モバイルオンラインゲーム開発のレベルアップ Part3
ゲーム業界で思う3つの大事なこと 2016-06-28
ゲーム業界で思う3つの大事なこと 2016-06-28
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと
迷ったもん勝ち!~迷走するクラウド人生~ 20151221
迷ったもん勝ち!~迷走するクラウド人生~ 20151221
Similar to dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
PENGUIN AI ML-Agents
PENGUIN AI ML-Agents
yosukehirano1
XMPPクライアント・プログラミング
XMPPクライアント・プログラミング
隆行 神戸
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
学 松崎
Pytorch 強化学習プラットフォーム horizonのドキュメントを読む
Pytorch 強化学習プラットフォーム horizonのドキュメントを読む
mogamin
Php Lt 20080316
Php Lt 20080316
Soshi NEMOTO
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Python charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introduction
ssuserc75dc7
Generating word clouds in python
Generating word clouds in python
AyakaHonda1
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
Hiroki Yamamoto
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
Rina Fukuda
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
Shinsuke Sugaya
Machine Learning Bootstrap
Machine Learning Bootstrap
Takahiro Kubo
appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1
Go Sueyoshi (a.k.a sue445)
Automatic Summarization
Automatic Summarization
Hitoshi Nishikawa
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
Yuya Unno
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化
Hirokazu Kutsu
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
Shuichi Yukimoto
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Yoshikazu Kawashima
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
ssuser551c92
Similar to dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
(20)
PENGUIN AI ML-Agents
PENGUIN AI ML-Agents
XMPPクライアント・プログラミング
XMPPクライアント・プログラミング
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
Pytorch 強化学習プラットフォーム horizonのドキュメントを読む
Pytorch 強化学習プラットフォーム horizonのドキュメントを読む
Php Lt 20080316
Php Lt 20080316
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Python charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introduction
Generating word clouds in python
Generating word clouds in python
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
Machine Learning Bootstrap
Machine Learning Bootstrap
appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1
Automatic Summarization
Automatic Summarization
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
Recently uploaded
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
1.
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング
~ 2016/01/19 @dots.
2.
自己紹介 杉山 隆(Takashi Sugiyama) Pythonista,
PHPer 2008/04~2013/03 : ヤフー株式会社 2013/04~2015/03 : 株式会社アイ・エム・ジェイ 2015/04~ : 株式会社インテリジェンス dots. 開発リーダー(兼PM)
3.
アジェンダ 1. レコメンデーションの種類 2. 協調フィルタリングとは 3.
Pythonインストール 4. 実装1 - 基本的な処理 - 5. 実装2 - 実データを使う - 6. 実装3 - Apache Spark -
4.
1. レコメンデーションの種類 内容ベース(コンテンツベース)フィルタリング 内容やタグの類似度でレコメンドを行う。 協調フィルタリング 今回説明。 cf. http://qiita.com/haminiku/items/f5008a57a870 e0188f63
5.
2. 協調フィルタリングとは ユーザのコミュニティや過去の振る舞いを利用し て、ユーザの好みや興味を持つ情報を予測する方 法論 使用事例 Amazon: 「この商品を買った人はこんな商品も 買っています」 Yahoo!ニュース:
「こんな記事も読まれていま す」
6.
2. 協調フィルタリングとは Jaccard指数を使って計算するのが一般的 Item Aに対するItem
Bの類似度 ・・・ 0.4 Item Aに対するItem Cの類似度 ・・・ 0.2 User A User B User C User D User E 計算式 類似度 Item A 1 1 1 Item B 1 1 1 2/5 0.4 Item C 1 1 1 1/5 0.2 ※UserがItemに興味(購入や閲覧等)を示していれば1が入る
7.
3. Pythonインストール PyEnv、及びPythonのインストール http://qiita.com/a_yasui/items/8cdc9be7a410e 9529687 ※最新のバージョンと2.7.9をインストールしてくだ さい。 redisインストール $ brew
install redis redisの自動起動 http://qiita.com/marqs/items/05cec2b1a305b5 0ee7b2
8.
4. 実装1 -
基本的な処理 - 以下のページに書いてあるソースをコピペして、拡 張子.pyで保存してください。 http://qiita.com/haminiku/items/cdbf8eb488e0 cf6a62fe 以下のコマンドで実行します。 $ python ファイル名
9.
5. 実装2 -
実データを使う - dots.のアクセスログ(ユーザーIDフィルタリング済 み)を使用します。アクセスログの置き場所は別途 説明します。 実装1.のプログラムをコピーし、以下の赤字部分を 修正ください。 実装1.と同様に、以下のコマンドで実行します。 $ python ファイル名
10.
5. 実装2 -
実データを使う - #!/usr/bin/env python # -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import unicode_literals import csv import redis import re CSV_PATH = 'アクセスログファイルパス' def jaccard(e1, e2): """ ジャッカード指数を計算する :param e1: list of int :param e2: list of int :rtype: float """ set_e1 = set(e1) set_e2 = set(e2) return float(len(set_e1 & set_e2)) / float(len(set_e1 | set_e2))
11.
5. 実装2 -
実データを使う - def get_key(k): return 'JACCARD:PRODUCT:{}'.format(k) page_view = {} f = open(CSV_PATH, 'rb') dataReader = csv.reader(f) for row in dataReader: match = re.match(r'/event/(d+).*$', row[0]) if match: key = match.group(1) if page_view.has_key(key): page_view[key].append(row[1]) else: page_view[key] = [row[1]] r = redis.Redis(host='localhost', port=6379)
12.
5. 実装2 -
実データを使う - for key in page_view: base_customers = page_view[key] for key2 in page_view: if key == key2: continue target_customers = page_view[key2] j = jaccard(base_customers, target_customers) r.zadd(get_key(key), key2, j) print r.zrevrange(get_key(577776), 0, 2) print r.zrevrange(get_key(577777), 0, 2)
13.
5. 実装2 -
実データを使う - 実行して見て分かったと思いますが、たった3万弱の データ数でも処理に5分も掛かります・・・。 ↓ 機械学習でやりましょう! (もしくはライブラリ使う。)
14.
次回、Apache Spark編 お楽しみに!!
Download now