SlideShare a Scribd company logo
1 of 24
集合知プログラミング
5章 最適化 (後半)
@tetsuroito
自己紹介
名前           バックボーン
伊藤 徹郎       経済・ファイナンス
twitter ID Python歴
@tetsuroito ビギナー
所属
株式会社ALBERT データ分析部
株式会社ALBERTについて
私たちは「分析力をコアとする情報最適化企業」です!
ALBERTの事業領域
CRMソリューションの開発・提供
レコメンドエンジンの開発・提供
行動ターゲティング広告システムの
開発・提供
データサイエンティスト大募集中です!
皆様、ぜひよろしくお願いします!
この前、こんな会に出てきました
http://www.slideshare.net/yokkuns/japan-r-15449897
前半サマリー
グループ旅行の最適化のために解の表現を
行い、コスト関数を学びましたね。
探索アルゴリズムとして、         
ランダムサーチ、ヒルクライム、    
模擬アニーリング、遺伝アルゴリズムを 
学びましたね。
@gepuro 君が5.1∼5.7まで
わかりやすく発表してくれましたから、
みなさん準備はいいですね!
アジェンダ
実際のフライトを検索する           
-Kayak API                 
-minidomパッケージ             
-フライト検索
嗜好への最適化               
-学寮の最適化                
-コスト関数                 
-最適化の実行     
ネットワークの可視化    
-レイアウト問題      
-交差線のカウント     
-ネットワークの描画
さらなる可能性
 etc‥
実際のフライトを検索する
Kayak API
(本書抜粋)                     
Kayak APIは旅行用の垂直検索エンジンとして人気がある。
旅程検索の優れたXML APIを持っているからだ。
http://www.kayak.com/labs/api/search/ に行こう!
ちーん
以後、APIを取れた体で説明していきます。
実際のフライトを検索する
■minidomパッケージ
minidomは標準Pythonディストリビューションパッケージ
XMLドキュメントをオブジェクトのツリーとして扱う方法
DOMオブジェクトのメソッド
■Kayak APIを使う上で大事なものだよ!
・getElementsByTagName(name)
ドキュメント全体を検索し、タグ名がnameにマッチするエレメントをすべて
DOMノードのリストにして返す。
・firstChild
オブジェクトの最初のノードを返す。
・data
オブジェクトに結びついたデータを返す。大体Unicode
フライト検索の手順
・APIからセッションを取得
・XMLをパースする
・フライト検索を開始する関数を作る
・結果を最後までリクエストする関数を作る
・うまく動くかフライトを検索してみる
・行きと帰りの便を検索する
・2人分の検索をする
https://gist.github.com/4201232
嗜好への最適化
多くの問題に適用可能な問題
必要
問題に対し、コスト関数が定義されていること
類似の解が類似の結果をもたらすこと
みんなハッピーになるかもね!
学寮の最適化
学寮に入る際の第1、2希望の最適な組み合わせの例
5つの寮と2人分のスペースを10人の学生が争う。
コードは見てください。
この例では1万通りなので、全部やってもよいが、学生や部
屋数が増加すると組合せ爆発となる
https://gist.github.com/4201235
解の表現
解の表現はトリッキー
学生と寮を数字で割り当ててもよいが、2人の制約を満たせない
解1
無効解にはコスト関数が非常に大きな値になるように返してやる
最適化アルゴリズムの解の探索が難しい
無効な解の間を探索するのにプロセッササイクルを捨てるのはやめ
た方がいいよ!
もっとうまい方法があるよ
必ず有効となるような解を見つけること
有効解 優れた解 でいい
最初の学生は10のスロットのうちどれか
2人目は残りの9つのどれか
といった感じ
解を出力するコード
①まずスロット(各寮2つ)によるリスト生成
②解の数字にループをかけて、各数字が示す寮番号をスロッ   
トの中から見つける
③学生と寮の名前を出力し、そのスロットをリストから削
除して、他の学生が同じスロットを使わないようにする
④ループが終わると、スロットのリストは空
学生と寮はすべてプリント済みになる
コスト関数
コスト関数は出力関数と似た動作をする
スロットのリストを構築し、使ったスロットを削除
学生が第1希望に割り振られているとき
コスト=0
学生が第2希望に割り振られているとき
コスト=1
どちらでもない場所に割り当てられる 
コスト=3
コスト関数
完全な解のコストをゼロとなるようにする
コスト関数の有効なルール
完全解のコストがゼロであれば、どの程度近いかわかる
完全な解を見つけたら探索をストップするように最適化
アルゴリズムに教えてあげられること
利点
最適化の実行
解の表現、コスト関数、結果の出力関数がそろえば、先に
定義しておいた最適化関数が実行できる!
遺伝最適化アルゴリズムのパラメータをいじることで良い解
をより速く見つけられるか調べてみよう!
ネットワークの可視化
ネットワークの可視化
後はGistのコードを見てください
https://gist.github.com/4201248
おわり
解の表現とコスト関数の決定
が大事!

More Related Content

Viewers also liked

Grocery section in www.shopvatika.com
Grocery section in www.shopvatika.comGrocery section in www.shopvatika.com
Grocery section in www.shopvatika.comShop Vatika
 
Finding Translations: Localization and Internationalization in Rails
Finding Translations: Localization and Internationalization in RailsFinding Translations: Localization and Internationalization in Rails
Finding Translations: Localization and Internationalization in RailsValerie Woolard
 
Finding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goFinding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goEleanor McHugh
 

Viewers also liked (6)

Grocery section in www.shopvatika.com
Grocery section in www.shopvatika.comGrocery section in www.shopvatika.com
Grocery section in www.shopvatika.com
 
Finding Translations: Localization and Internationalization in Rails
Finding Translations: Localization and Internationalization in RailsFinding Translations: Localization and Internationalization in Rails
Finding Translations: Localization and Internationalization in Rails
 
S Reeves Resume
S Reeves ResumeS Reeves Resume
S Reeves Resume
 
AFT Task 2
AFT Task 2AFT Task 2
AFT Task 2
 
Finding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goFinding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in go
 
mANEJO DEL ESTRES
mANEJO DEL ESTRESmANEJO DEL ESTRES
mANEJO DEL ESTRES
 

Similar to 集合知プログラミング5章発表

第31回TokyoR LT資料
第31回TokyoR LT資料第31回TokyoR LT資料
第31回TokyoR LT資料tetsuro ito
 
1日で分かった気になる機械学習
1日で分かった気になる機械学習1日で分かった気になる機械学習
1日で分かった気になる機械学習Junji Imaoka
 
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」GIG inc.
 
LLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみたLLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみたKunihiroSugiyama1
 
はじパタ2章
はじパタ2章はじパタ2章
はじパタ2章tetsuro ito
 
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」GIG inc.
 
Pycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテストPycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテストShoichi Taguchi
 
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナーHiroshi Senga
 
Tableau x データサイエンス
Tableau x データサイエンスTableau x データサイエンス
Tableau x データサイエンスHiroshi Masuda
 
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!Hideto Masuoka
 
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用 -(GIG)」
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用  -(GIG)」【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用  -(GIG)」
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用 -(GIG)」GIG inc.
 
中国のAI産業状況、スタートアップ情報リサーチ
中国のAI産業状況、スタートアップ情報リサーチ中国のAI産業状況、スタートアップ情報リサーチ
中国のAI産業状況、スタートアップ情報リサーチYangnuoLiu
 
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセス
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセスPydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセス
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセスShoichi Taguchi
 
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能TATSUYA HAYAMIZU
 
深層学習基礎勉強会資料
深層学習基礎勉強会資料深層学習基礎勉強会資料
深層学習基礎勉強会資料shinya murakawa
 
SCORER Partner Summit 2018_ Yamasaki
SCORER Partner Summit 2018_ YamasakiSCORER Partner Summit 2018_ Yamasaki
SCORER Partner Summit 2018_ YamasakiFuture Standard
 
2018/8/6トレLABO3_AIの学び方・使い方
2018/8/6トレLABO3_AIの学び方・使い方2018/8/6トレLABO3_AIの学び方・使い方
2018/8/6トレLABO3_AIの学び方・使い方Trainocate Japan, Ltd.
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumiTokoroten Nakayama
 
参謀本部事業計画書
参謀本部事業計画書参謀本部事業計画書
参謀本部事業計画書貴義 齊藤
 

Similar to 集合知プログラミング5章発表 (20)

第31回TokyoR LT資料
第31回TokyoR LT資料第31回TokyoR LT資料
第31回TokyoR LT資料
 
1日で分かった気になる機械学習
1日で分かった気になる機械学習1日で分かった気になる機械学習
1日で分かった気になる機械学習
 
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」
【Tech Trend Talk vol.3】社外向け勉強会「環境準備と教師なし学習の実践 -(GIG)」
 
LLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみたLLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみた
 
はじパタ2章
はじパタ2章はじパタ2章
はじパタ2章
 
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」
【Tech Trend Talk vol.5】社外向け勉強会「教師あり学習とプロダクトへの活用 -(GIG)」
 
Pycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテストPycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテスト
 
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー
日経コンピュータ主催:さわってわかる機械学習 Azure Machine Learning 実践セミナー
 
Tableau x データサイエンス
Tableau x データサイエンスTableau x データサイエンス
Tableau x データサイエンス
 
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
 
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用 -(GIG)」
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用  -(GIG)」【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用  -(GIG)」
【Tech Trend Talk vol.11】社外向け勉強会「自然言語処理の初歩と活用 -(GIG)」
 
中国のAI産業状況、スタートアップ情報リサーチ
中国のAI産業状況、スタートアップ情報リサーチ中国のAI産業状況、スタートアップ情報リサーチ
中国のAI産業状況、スタートアップ情報リサーチ
 
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセス
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセスPydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセス
Pydata_リクルートにおけるbanditアルゴリズム_実装前までのプロセス
 
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能
コンピュータの舞台裏 Vol.08 - 身近な事例からひも解く人工知能
 
深層学習基礎勉強会資料
深層学習基礎勉強会資料深層学習基礎勉強会資料
深層学習基礎勉強会資料
 
SCORER Partner Summit 2018_ Yamasaki
SCORER Partner Summit 2018_ YamasakiSCORER Partner Summit 2018_ Yamasaki
SCORER Partner Summit 2018_ Yamasaki
 
2018/8/6トレLABO3_AIの学び方・使い方
2018/8/6トレLABO3_AIの学び方・使い方2018/8/6トレLABO3_AIの学び方・使い方
2018/8/6トレLABO3_AIの学び方・使い方
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
 
参謀本部事業計画書
参謀本部事業計画書参謀本部事業計画書
参謀本部事業計画書
 
Tdc 20181121
Tdc 20181121Tdc 20181121
Tdc 20181121
 

More from tetsuro ito

[Up用]rでqr
[Up用]rでqr[Up用]rでqr
[Up用]rでqrtetsuro ito
 
20170912 data analyst meetup tokyo vol.5
20170912 data analyst meetup tokyo vol.5 20170912 data analyst meetup tokyo vol.5
20170912 data analyst meetup tokyo vol.5 tetsuro ito
 
DataOps in Moneyforward
DataOps in Moneyforward DataOps in Moneyforward
DataOps in Moneyforward tetsuro ito
 
20170207 bigdata analytics_tokyo講演資料
20170207 bigdata analytics_tokyo講演資料20170207 bigdata analytics_tokyo講演資料
20170207 bigdata analytics_tokyo講演資料tetsuro ito
 
20161029 dots machine learning in money forward
20161029 dots machine learning in money forward20161029 dots machine learning in money forward
20161029 dots machine learning in money forwardtetsuro ito
 
20160906 bq sushi
20160906 bq sushi20160906 bq sushi
20160906 bq sushitetsuro ito
 
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化tetsuro ito
 
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysistetsuro ito
 
20150303続パタ5章後半
20150303続パタ5章後半20150303続パタ5章後半
20150303続パタ5章後半tetsuro ito
 
PRML読書会1スライド(公開用)
PRML読書会1スライド(公開用)PRML読書会1スライド(公開用)
PRML読書会1スライド(公開用)tetsuro ito
 
20140614 tokyo r lt
20140614 tokyo r lt 20140614 tokyo r lt
20140614 tokyo r lt tetsuro ito
 
20140329 tokyo r lt 「カーネルとsvm」
20140329 tokyo r lt 「カーネルとsvm」20140329 tokyo r lt 「カーネルとsvm」
20140329 tokyo r lt 「カーネルとsvm」tetsuro ito
 
20140204はじパタlt
20140204はじパタlt20140204はじパタlt
20140204はじパタlttetsuro ito
 
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」Japan.r 2013 「実ビジネスデータへのrの活用とその限界」
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」tetsuro ito
 
はじパタ8章 svm
はじパタ8章 svmはじパタ8章 svm
はじパタ8章 svmtetsuro ito
 
Tokyo R LT 20131109
Tokyo R LT 20131109Tokyo R LT 20131109
Tokyo R LT 20131109tetsuro ito
 
集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料tetsuro ito
 
20120326 zansa勉強会発表資料 (公開用) 02 04-38
20120326 zansa勉強会発表資料 (公開用) 02 04-3820120326 zansa勉強会発表資料 (公開用) 02 04-38
20120326 zansa勉強会発表資料 (公開用) 02 04-38tetsuro ito
 
複雑ネットワーク勉強会 第6章 後半
複雑ネットワーク勉強会 第6章 後半複雑ネットワーク勉強会 第6章 後半
複雑ネットワーク勉強会 第6章 後半tetsuro ito
 
複雑ネットワーク勉強会 第6章
複雑ネットワーク勉強会 第6章複雑ネットワーク勉強会 第6章
複雑ネットワーク勉強会 第6章tetsuro ito
 

More from tetsuro ito (20)

[Up用]rでqr
[Up用]rでqr[Up用]rでqr
[Up用]rでqr
 
20170912 data analyst meetup tokyo vol.5
20170912 data analyst meetup tokyo vol.5 20170912 data analyst meetup tokyo vol.5
20170912 data analyst meetup tokyo vol.5
 
DataOps in Moneyforward
DataOps in Moneyforward DataOps in Moneyforward
DataOps in Moneyforward
 
20170207 bigdata analytics_tokyo講演資料
20170207 bigdata analytics_tokyo講演資料20170207 bigdata analytics_tokyo講演資料
20170207 bigdata analytics_tokyo講演資料
 
20161029 dots machine learning in money forward
20161029 dots machine learning in money forward20161029 dots machine learning in money forward
20161029 dots machine learning in money forward
 
20160906 bq sushi
20160906 bq sushi20160906 bq sushi
20160906 bq sushi
 
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
 
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis
20150531分析プラットホームとその技術(bizreach) cookpad ito #dcube_analysis
 
20150303続パタ5章後半
20150303続パタ5章後半20150303続パタ5章後半
20150303続パタ5章後半
 
PRML読書会1スライド(公開用)
PRML読書会1スライド(公開用)PRML読書会1スライド(公開用)
PRML読書会1スライド(公開用)
 
20140614 tokyo r lt
20140614 tokyo r lt 20140614 tokyo r lt
20140614 tokyo r lt
 
20140329 tokyo r lt 「カーネルとsvm」
20140329 tokyo r lt 「カーネルとsvm」20140329 tokyo r lt 「カーネルとsvm」
20140329 tokyo r lt 「カーネルとsvm」
 
20140204はじパタlt
20140204はじパタlt20140204はじパタlt
20140204はじパタlt
 
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」Japan.r 2013 「実ビジネスデータへのrの活用とその限界」
Japan.r 2013 「実ビジネスデータへのrの活用とその限界」
 
はじパタ8章 svm
はじパタ8章 svmはじパタ8章 svm
はじパタ8章 svm
 
Tokyo R LT 20131109
Tokyo R LT 20131109Tokyo R LT 20131109
Tokyo R LT 20131109
 
集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料
 
20120326 zansa勉強会発表資料 (公開用) 02 04-38
20120326 zansa勉強会発表資料 (公開用) 02 04-3820120326 zansa勉強会発表資料 (公開用) 02 04-38
20120326 zansa勉強会発表資料 (公開用) 02 04-38
 
複雑ネットワーク勉強会 第6章 後半
複雑ネットワーク勉強会 第6章 後半複雑ネットワーク勉強会 第6章 後半
複雑ネットワーク勉強会 第6章 後半
 
複雑ネットワーク勉強会 第6章
複雑ネットワーク勉強会 第6章複雑ネットワーク勉強会 第6章
複雑ネットワーク勉強会 第6章
 

集合知プログラミング5章発表