Hatena::Groupcollectiveintelligence

polog@集合知プログラミング

2008-11-07

nodebox楽しい

01:42

いきなり脇道にそれた

なんとなくワイザツな動画作った

http://polog.org/files/oppai.mov

size(100, 100)
speed(3)
c = ximport("colors")

def draw():
    cs = c.list('oppai.jpg', n=100)
    x = y = 0
    for color in cs:
        rect(x, y, 10, 10, fill=color)
        x += 10
        if x >= 100:
            x = 0
            y += 10

ちと高速化して

size(100, 100)
speed(30)
c = ximport("colors")

def setup():
    global cs
    cs = c.list('oppai.jpg', n=100)

def draw():
    global cs
    x = y = 0
    for void in range(100):
        rect(x, y, 10, 10, fill=choice(cs))
        x += 10
        if x >= 100:
            x = 0
            y += 10

次回nodebox + リコメンデーションエンジンでなんかやりたいす

2008-11-06

第2章 おすすめ

00:10

  • 人の類似度

アマゾンの様な、人1対物nで評価がある場合の人と人の間の類似性を出したい

ユークリッド距離

人をn次元の物空間にばらまく。軸は評価

人と人の間の距離を出す

評価の差の平方を全て足して正規化

ピアソン相関

人と人、軸が評価の二次元空間に物をばらまいて、直線への乗り具合を見る

片方の人が辛く評価をつける傾向にある場合はユークリッド距離だと対応できない

他のJaccard係数、マンハッタン距離など 用途に応じて

  • 類似度に基づいたおすすめ

ある人に対してある物のおすすめ度を出したいとき、それを評価している他全員との類似度を算出して、類似度*評価を正規化してやればよい

  • 似ている物

物の類似度に基づいたおすすめ

上段の内容の人、物を入れ替えれば良い

ある人Aにある物aのおすすめ度を算出したい

  1. A->全ての人との類似性->aのおすすめ度
  2. A->aに似ていて評価済みの物グループへの評価->aのおすすめ度

物同士の類似性はなかなか変化しないため、前もって算出しておいた上で(2)を用いるのが良い

第1章読んだ

23:05

Nodeboxライブラリインストールしている間に読んだ

集合知の定義と歴史/機械学習の限界/現在用いられている分野

python on Mac OSX

22:48

デフォルトで入ってる

$ python --version
Python 2.5.1

hash, array

>>> a = [1,2,3,4,5]
>>> a
[1, 2, 3, 4, 5]
>>> a[1]
2
>>> h = {'abc': 123}
>>> h['abc']
123
>>> 

map, inject => リスト内包、dict かしら

>>> [v + 10 for v in a if v > 2]
[13, 14, 15]
>>> dict([(v, v + 10) for v in a])
{1: 11, 2: 12, 3: 13, 4: 14, 5: 15}

これくらいのチュートリアルがイントロに書いてあった

あとWebAPI使えばリソースとしていいよ的なことが書いてある ワオ、トビー、最高じゃん

↓こんなのブクマしてた。よも。

http://www.python.jp/doc/nightly/tut/

デバッグ(pdb)

http://0xcc.net/blog/archives/000162.html

negipo的集合知プログラミング

14:27

集合知プログラミング読んでねー pythonだし

友達がpythonやるとか言い出す

集合知プログラミングをついでにやろうかなとか言う

じゃーオレも!

と言う訳で、この日記では2つのことを勉強しながら書いていく感じになると思います

python側の教科書どうしよっかな

とりあえず本

11:51

集合知プログラミング

集合知プログラミング

英語版と日本語版両方持ってる アホ

test

11:43

mic check yo

yosketchyosketch2008/11/06 21:32じぶん「初めての Python」持ってるんだけど、かぶるともったいない感が。しかしあれが良いという評判も多数ネットにあるので、どうしたものやらね。> python側の教科書

yosketchyosketch2008/11/06 21:33ぎゃ、はてなちゃん、コメントの改行シカトすんのか!!

korn_freakkorn_freak2008/11/06 22:50しばらく本なしでやるわー

yosketchyosketch2008/11/07 10:17おk

ha1tha1t2008/11/07 15:08構文を知る為なら http://cydn.cybozu.co.jp/files/python_survey_at_cydn.html でカバーできる気がします.あと公式ドキュメントもめっちゃわかりやすいです.

korn_freakkorn_freak2008/11/08 01:40おーありがとうございます :)
公式も読んでみます

gamellagamella2008/11/08 02:04ほとんどの事例はこのページに書いてある知識で大丈夫なはず。
http://www.planewave.org/translations/python/PQR/PQR2.4.ja.html
set()とか結構役に立つよ。あと、これ読んでおくと役に立つ。
http://wiki.python.org/moin/PythonSpeed/PerformanceTips