Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
ac-mozc
igjit
Laravelのeloquent だけ入れた話
Masataka Kono
最強のPHP統合開発環境 PHPStorm
晃 遠山
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
Awesome PHP extensions! Top 50!
sasezaki
Redmineで始めるチケット駆動開発
Takuya Sato
いよいよPHPerもリーンで行こう
Tsutomu Chikuba
20110910 闇鍋的php魔改造
do_aki
1
of
29
Top clipped slide
PHP-MLを使用して気軽に機械学習にトライしてみる
Jun. 10, 2017
•
0 likes
2 likes
×
Be the first to like this
Show More
•
4,904 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Engineering
PHPカンファレンス福岡2017の15分枠でお話した内容です。 Feel free to try machine learning with php-ai/php-ml
Ryo Shibayama
Follow
Engineer at GameWith, Inc.
Advertisement
Advertisement
Advertisement
Recommended
PHP-ML で手書き数字認識
y-uti
2.3K views
•
14 slides
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
14.6K views
•
34 slides
Phpstormちょっといい話
Hisateru Tanaka
4.5K views
•
17 slides
20090801phpstudy Sanemat
Kenichi Murahashi
755 views
•
17 slides
それPhpStormで出来るよ #phpstudy
晃 遠山
33.9K views
•
71 slides
Nom de fonction français
hajikami
495 views
•
20 slides
More Related Content
Slideshows for you
(20)
ac-mozc
igjit
•
1.6K views
Laravelのeloquent だけ入れた話
Masataka Kono
•
2.9K views
最強のPHP統合開発環境 PHPStorm
晃 遠山
•
12.3K views
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
•
23.4K views
Awesome PHP extensions! Top 50!
sasezaki
•
6.2K views
Redmineで始めるチケット駆動開発
Takuya Sato
•
7.6K views
いよいよPHPerもリーンで行こう
Tsutomu Chikuba
•
2K views
20110910 闇鍋的php魔改造
do_aki
•
2.6K views
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
77web
•
4.9K views
anything-php-funcref-perl.el
Kenichirou Oyama
•
676 views
Phperがgoをさわってみた
yasuo424
•
4.7K views
ac-mozc (kansai-emacs #x09)
igjit
•
2.8K views
Clrh60 lt
zecl1231
•
534 views
コードを書いて理解する!Enumについて
Takhisa Hirokawa
•
187 views
php-buildがいかに便利かを力説する
Yoshio Hanawa
•
10.6K views
ぼくのNode.jsのだいいっぽ
拓弥 遠藤
•
520 views
Phpでアプリケーションサーバー
k-motoyan
•
5.4K views
Introducing hhvm hack-async
Kenjiro Kubota
•
898 views
PHP conference kansai2018_ishihara
ishihara_yuki
•
494 views
Rのコードをキレイに見せたい
mangantempy
•
1.3K views
Similar to PHP-MLを使用して気軽に機械学習にトライしてみる
(20)
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
•
49.3K views
Php Lt 20080316
Soshi NEMOTO
•
559 views
PHPでセキュリティを真面目に考える
Takuya Sato
•
34.8K views
俺と今年請けた仕事のテック分布
Masayuki KaToH
•
715 views
俺 と 今年度 Civic Hack Night 運営
Masayuki KaToH
•
1K views
自己紹介とWebサービスAPI勉強会について
脇村 隆
•
810 views
爆速フレームワークでREST APIを作った話
Shohei Tai
•
7.4K views
PyPy 紹介
shoma h
•
8.2K views
2009年のPHPフレームワーク
Takuya Sato
•
3.1K views
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
ceres-inc
•
354 views
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
•
3.4K views
括弧を使わないLispプログラミング
Yuta Mizushima
•
1.8K views
PHPとJavaScriptの噺
Shogo Kawahara
•
17K views
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
•
13K views
The tale of I and python / Python とのはなし
Takanori Suzuki
•
1.5K views
10分でわかるPythonの開発環境
Hisao Soyama
•
132.3K views
フレームワークを使うべき 3 つの理由
Kenichi Mukai
•
15.5K views
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
•
11.8K views
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Yuta Hayakawa
•
1.3K views
第1回勉強会
Yukie Kanzawa
•
592 views
Advertisement
More from Ryo Shibayama
(15)
倒れても進捗
Ryo Shibayama
•
2K views
CircleCI 導入への入門
Ryo Shibayama
•
713 views
エンジニア採用と PHP #phpconfuk_rej
Ryo Shibayama
•
2.3K views
Start OSS Contribution With What You Know / できることから始める OSS Contribution
Ryo Shibayama
•
1.3K views
チームから気軽に始めるピアボーナス
Ryo Shibayama
•
1.5K views
ソフトウェアエンジニアとしてのワークアズライフ
Ryo Shibayama
•
1.3K views
Try to use chromeless on AWS Lambda
Ryo Shibayama
•
1.8K views
CircleCI 2.0 でビルド時間を大幅に短縮する
Ryo Shibayama
•
678 views
OSS Contribution through CircleCI 2.0
Ryo Shibayama
•
1.1K views
Carbon と Chronos から見る OSS 運営
Ryo Shibayama
•
6.2K views
ElasticBeanstalk で新規事業を爆速ローンチする
Ryo Shibayama
•
4.4K views
Amazon inspector で自動セキュリティ診断
Ryo Shibayama
•
2.8K views
WordPress on PHP7 on CentOS7 on Saraku-VPS
Ryo Shibayama
•
3.9K views
Security Advisories Checker on Travis/Circle CI
Ryo Shibayama
•
6K views
第87回PHP勉強会 LT 知って得するかもしれないテキスト処理コマンドのお話
Ryo Shibayama
•
3K views
Recently uploaded
(20)
68范莎学院.pdf
fdhrtf
•
2 views
★可查可存档〖制作贝桑松大学文凭证书毕业证〗
tujjj
•
2 views
SPECIALIZED heavy racks.pdf
FernandoRivasCortes1
•
2 views
72亚历山大学院.pdf
fdhrtf
•
2 views
★可查可存档〖制作巴黎第十二大大学文凭证书毕业证〗
tujjj
•
3 views
AI予約サービスのMLOps事例紹介
Takashi Suzuki
•
4 views
法国:蒙彼利埃大学毕业证办理流程
cyvyvgk
•
3 views
☀️《UMB毕业证仿真》
hjhgg
•
2 views
办皇家墨尔本理工大学毕业证成绩单
JhhhfGffh
•
3 views
#国外留学文凭购买Trent假毕业证书
fc2c0f2b1mymailol
•
2 views
☀️《Curtin毕业证仿真》
hjhgg1
•
2 views
美国:伦斯勒理工学院毕业证办理流程
amdfot
•
2 views
28西澳.pdf
dsadasd17
•
2 views
☀️《UMKC毕业证仿真》
DFFFFG
•
2 views
204-杨百翰大学.pdf
fdhrtf
•
2 views
AI時代の要件定義
Zenji Kanzaki
•
288 views
EchoyaGinhanazeSu_inoka.pptx
keink
•
2 views
☀️《Ohio毕业证仿真》
DFFFFG
•
2 views
信赖的留信网服务,帮您获取正规毕业证成绩单加q威信634068167做卡普顿大学毕业证外壳#成绩单#信封#加拿大文凭#学生卡#雅思托福#留信留才#offer
AlifAle
•
3 views
143-南卫理公会大学.pdf
dsadasd17
•
3 views
Advertisement
PHP-MLを使用して気軽に機械学習にトライしてみる
PHP‑ML を使用して 手軽に機械学習にトライしてみる @serima /
柴山嶺 PHP カンファレンス福岡2017
はじめにおことわり 機械学習まわりのビギナーむけのお話になります 数式などを出しての、アルゴリズムの説明などはしません 中級者ラベルがついていますが、それは私の設定ミスです Python のライブラリなどをつかってすでに機械学習を試してみている方 などには退屈な話になってしまうことをご了承ください...
気を取り直して、自己紹介 サーバサイドエンジニア Twitter / GitHub
: @serima ウェブサービスを開発しています ひたすらPHP と戯れる日々を過ごしてきました かれこれ10 年弱 東京の西のほう在住 福岡には初めて来ました!
普段のcommit 状況 最近はコードを結構書いています(ほとんど会社でですが ) 割合的にはこんな感じ PHP
70 % JavaScript 20 % Go 5 % Python 5 %
いままで作ってきたもの ガラケー向けウェブアプリ(GPS を絡めた位置情報系) ウェブソーシャルゲーム ホテル予約アプリ 占い・キュレーションアプリ ポータル的なサイト 何が言いたいかといいうと、いままで機械学習的な要素を何も触っ てきていない 強いて言うなら、ソーシャルゲームのデータ分析(気合)
AI?機械学習?ディープラーニング? ネットでひととおり話題となる記事は読んでるものの、トレンドに ついていけていないコンプレックス
AI と機械学習とディープラーニング 機械学習とは データ解析の結果をもとに反復パタンなどから判断や予測を行う技術 出典:NVIDIA Official
Blog
ある日 GitHub Trending に php-ai/php-ml というリポジトリが現れ、ス ターを稼いでいるのを見かける Machine
Learning library for PHP だと? 3499 stars (2017/06/10 現在)
機械学習といえばPython? ライブラリが非常に充実している scikit‑learn (機械学習ライブラリ) NumPy (計算ライブラリ) SciPy
(計算ライブラリ) Pandas (統計データ処理ライブラリ) 機械学習のライブラリの充実度合いといえばPython 一択という認識 PHP にもこういうものがついに出てきたのか! 実際に触ったことはありませんでした
なにはともあれREADME を読んでみる やけに簡単そうに見えませんか require_once 'vendor/autoload.php'; use
PhpmlClassificationKNearestNeighbors; $samples = [[1, 3],[1, 4],[2, 4],[3, 1],[4, 1],[4, 2]]; $labels = ['a', 'a', 'a', 'b', 'b', 'b']; $classifier = new KNearestNeighbors(); $classifier->train($samples, $labels); echo $classifier->predict([3, 2]); // return 'b'
k 近傍法 教師あり学習 分類問題を解くときに使用されるアルゴリズムのひとつ 先程の例でやっていること [1, 3] ,
[1, 4] , [2, 4] に a というラベル、 [3, 1] , [4, 1] , [4, 2] に b というラベルをつけておき [3, 2] というデータがあった場合、 どちらのラベルがつきますか?というのを分類する →この場合、 b が返ってくる
サンプルデータってないの? デモ用にすぐ使えるデータセットが3 種類あります。 Iris(あやめ) Wine(ワイン)
Glass(ガラス) 種類数 3 3 6 総サンプル数 150 178 214 特徴量次元数 4 13 9 R 言語やscikit‑learn でも定番のデモデータセットらしい
Iris Dataset サンプル例 sepal length,sepal
width,petal length,petal width,class 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 7.0,3.2,4.7,1.4,Iris-versicolor 6.4,3.2,4.5,1.5,Iris-versicolor 6.9,3.1,4.9,1.5,Iris-versicolor 6.3,3.3,6.0,2.5,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 7.1,3.0,5.9,2.1,Iris-virginica 6.3,2.9,5.6,1.8,Iris-virginicacs がく(sepal)・花弁(petal)の幅と高さを特徴量としている
Iris Dataset (出典:https://github.com/haruosuz/books/tree/master/bbs)
デモを使ってみる $classifier = new
PhpmlClassificationNaiveBayes(); $iris_dataset = new PhpmlDatasetDemoIrisDataset(); $classifier->train( $iris_dataset->getSamples(), $iris_dataset->getTargets() ); // 試しに適当な sepal, petal を入れて predict させてみる echo $classifier->predict([1.0, 2.0, 2.1, 2.5]); // virginica
Dataset Class データソースを読み込みやすくするために、データセット用のヘルパー クラスが用意されている ArrayDataset CsvDataset カンマ区切りで特徴量、行の最後にラベル FileDataset 階層構造になっているファイル群をひとつのメソッドでロード getSamples() 、 getTargets() などのメソッドが定義されている
なにか自分のデータを入れてみたいよね 都道府県・市区町村データを手に入れた 「この市名って○○県っぽい」を実現できないか? たとえば、「浅口市」ってどこの県にありそうですか?
正解は 岡山県 全く知らない人には、想像もつかない なぜなら、どこの県にあってもおかしくなさそう 人間は、経験的に市区町村と都道府県のラベリングを知ってい る train メソッドで特徴量を学習させる必要がある 「それっぽさ」=「尤もらしさ」がデータとして偏りが出ることが 重要
特徴量抽出の難しさ 都道府県でいうと、沖縄県の市区町村って特徴的だと思いませんか? 那覇市 宜野湾市 石垣市 浦添市 名護市 糸満市 沖縄市 豊見城市 ... それを、どうして特徴的だと思うのか? どのような関数を通せばそれが表せるか? 例) 常用漢字で使われない文字数の割合・訓読みの一致率
特徴量抽出の難しさ なんでもかんでも特徴量にすれば良いというものではない 有用な組み合わせを見つける必要がある
Preprocessing データの前処理を行う Normalization データを0 ~ 1
の間にrescaling する Imputer 現実のデータはそううまくすべて揃っていることがない いわばnull みたいな値をなんらかのデータとして埋める
語句解析 Token Count Vectorizer ある文書集合における、その単語の出現頻度に応じて重み付け を行う 文書検索に有用
Math ライブラリ 行列計算 距離 ユークリッド距離 マンハッタン距離 チェビシェフ距離 ミンコフスキー距離 集合 統計 ピアソン分布
現時点で、実装されているアルゴリズム 相関ルールマイニング Apiori アルゴリズム 分類 SVC(サポートベクトル分類)・k 近傍法・ナイーブベイズ 回帰 最小二乗法・サポートベクトル回帰 クラスタリング k‑means
法・DBSCAN ニューラルネットワーク MLPClassifier scikit‑learn には及ばないもののニューラルネットワークも実装されてい る
scikit‑learn cheat sheet
データのプロットはできるの? Python にはmatplotlib という強力なグラフ描画ライブラリがある PHP
にはなさそう PHP からPython を外部実行しているケースが見られる
それなりの頻度でPR はマージされている模様 今後、他のアルゴリズムが実装されていくといいですね
まとめ 重い腰をあげてPython 使うほどでもない けれども、ちょっと触ってみたい そんなときに導入としてぜひ使ってみるとよいのでは? (でも、やっぱり本格的にやるならPython を選んだほうが良いよ) ライブラリを使うこと自体は実はすごく簡単 高い精度の結果を出すには、教師データとパラメータチューニングが肝要 大事なことなので二回言いま(す|した)
ご清聴ありがとうございました!
Advertisement