More Related Content Similar to Pythonによる機械学習 (20) More from Kimikazu Kato (20) Pythonによる機械学習3. 3
≪著書≫「One to Oneマーケティングを超えた
戦略的Webパーソナライゼーション」
(出版社:日経BP社 発売:2002年5月)
「ASP・SaaS・ICTアウトソーシングアワード2009」
ASP・SaaS部門「委員長特別賞」受賞
第8回(2010)、第9回(2011)
「デロイト 日本テクノノロジー Fast50」受賞
リアルタイム・スマートターゲティング技術で、レコメンドサービス
『アイジェント レコメンダー』やターゲティング型広告サービス『HotView』を提供
社名 :
設立 :
役員 :
資本金 :
事業内容:
株主 :
所在地 :
シルバーエッグ・テクノロジー株式会社
1998年8月
代表取締役兼CEO トーマス・フォーリー
専務取締役兼COO 西村淳子
7,800万円(2012年12月末時点)
人工知能技術をベースとした、
リアルタイムレコメンドサービスおよび
ターゲティング型広告サービスの提供。
トーマス・フォーリー
伊藤忠テクノロジーベンチャーズ株式会社
カルチュア・コンビニエンス・クラブ株式会社
株式会社オプト
【大阪本社】吹田 【東京オフィス】九段下
【大阪本社】
〒564-0051 大阪府吹田市豊津9-22 大同門本部ビル5F
【東京オフィス】
〒102-0072 東京都千代田区飯田橋2-6-6
ヒューリック飯田橋ビル5F
代表トーマス・フォーリー執筆
の書籍です。
是非、ご覧ください!
日本で最初にレコメンドASPを商用化したレコメンドサービス専業企業です。
シルバーエッグテクノロジーについて
11. ベンチマーク
s = 0
for i in range(1, 100000001):
s += i
print(s)
s = sum(range(1, 100000001))
print(s)
30.21秒
12.33秒
0.38秒
import numpy as np
a = np.arange(1, 100000001, dtype=np.int64)
print(a.sum())
22. >>> import numpy as np
>>> x=np.array([1,2,3])
>>> y=np.array([4,5,6])
>>> xx,yy=np.meshgrid(x,y)
>>> xx
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
>>> yy
array([[4, 4, 4],
[5, 5, 5],
[6, 6, 6]])
>>> xx.ravel()
array([1, 2, 3, 1, 2, 3, 1, 2, 3])
>>> yy.ravel()
array([4, 4, 4, 5, 5, 5, 6, 6, 6])
>>> np.c_[xx.ravel(),yy.ravel()]
array([[1, 4],
[2, 4],
[3, 4],
[1, 5],
[2, 5],
[3, 5],
[1, 6],
[2, 6],
[3, 6]])
(1, 4) (2, 4) (3, 4)
(1, 5) (2, 5) (3, 5)
(1, 6) (2, 6) (3, 6)
x=np.array([1,2,3])
y=np.array([4,5,6])
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
array([[4, 4, 4],
[5, 5, 5],
[6, 6, 6]])
meshgrid
array([1, 2, 3, 1, 2, 3, 1, 2, 3])
array([4, 4, 4, 5, 5, 5, 6, 6, 6])
ravel (二次元配列を一次元に)
C_ (列ベクトルだと思って横につなげる)
25. 参考: scikit-learnの使い方テンプレート
model = SomeAlogrithm(hyperparameters)
model.fit(x,y)
prediction = model.predict(z)
model = SomeAlogrithm(hyperparameters)
model.fit(x)
prediction_x = model.labels_
prediction_z = model.predict(z)
model = SomeAlogrithm(hyperparameters)
model.fit(x,y)
transformed = model.transform(z)
教師あり学習
教師なし学習
変換系
わかりやすい!直感的!
28. >>> a=np.array([[1,2],[3,4]])
>>> a
array([[1, 2],
[3, 4]])
>>> np.pad(a,((2,3),(1,4)),"constant",constant_values=9)
array([[9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9],
[9, 1, 2, 9, 9, 9, 9],
[9, 3, 4, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9]])
>>> a=np.arange(8).reshape(2,2,2)
>>> a
array([[[0, 1],
[2, 3]],
[[4, 5],
[6, 7]]])
>>> b=a.transpose(1,0,2) # b[i,j,k]=a[j,i,k]
>>> b
array([[[0, 1],
[4, 5]],
[[2, 3],
[6, 7]]])
>>> b=a.transpose(2,1,0) # b[i,j,k]=a[k,j,i]
>>> b
array([[[0, 4],
[2, 6]],
[[1, 5],
[3, 7]]])
pad: 行列の前後に数値を埋める
transpose: 多次元配列(数学的にはテ
ンソル)の添字の入れ替えをする
Caffeのサンプルコードではpadで画像
の間に余白を入れて、trasposeでメモリ
上のアライメントを変えて可視化してい
る
使い方の例