( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

BP Study #14に行ってきた

今回は28人でpython系コミュニティの人たちもきてたみたい。
まずは、感想。

集合知(松風さん)

オライリー集合知プログラミング本について。
実際にWebアプリを作ってみたよって話。
なんとScalaとliftで実装したそうだ。

懇親会でLiftについて感想聞いてみたけど、やっぱりわかりづらいって。
そりゃそうだ。

集合知プログラミングでは、データをクラスタリングしたり、特徴を抽出したりと
面白いアルゴリズムがあるので、本を買って読んでみようと思う。

集合知プログラミング
Toby Segaran
オライリージャパン
売り上げランキング: 1408
おすすめ度の平均: 5.0
5 応用しやすいアルゴリズム

Djangoの紹介とAdminカスタマイズ (id:tokibito id:nullpobug)

Djangoについての紹介。
DjangoのAdminサイトのカスタマイズについての方法。
実際にカスタマイズする際には参考になりそうなないようだった。

やっぱり今はpythonがアツいのか。

懇親会

にんにく屋という店で。
にんにくメインの料理で、かなりおいしかった。
っていうか、BP Studyの懇親会で行くお店はどこもおいしい。
密かに楽しみにしてます。

集合知プログラミングとか遺伝的PGとかと関数型言語の話で盛り上がった。
あと、MoonGiftの方とお会いできた。
今度ランチに行くことに。楽しみだ。

元気な人は2次会に行ったみたいだけど、昨日はさすがに電車で帰らないと嫁に怒られるので、終電で帰ってきた。
でも楽しかった。

以下はメモ。

■集合知(松風さん)
 オライリーの集合知プログラミング
 
 集合知とは?
  ようはみんなの知識をまとめたもの
 サイト
  投票型 食べログ、ラーメンデータベース、4travel.jp,
  解析型 kizasi,NewsGraphy
 集合知プログラミング
  blogの内容を解析してグルーピング、特徴をまとめる
 Webアプリ作ってみるお!
  キーワードを入れると関連するサイトを自動で作る
  Scalaで実装。なんとLift!
   →Djangoの方が楽に出来たかも?
   →でも楽しいお!
  サーバー環境はslicehost
   EC2は初期設定めんどそう
    →2分くらいで
    →インスタンスを停止するとイメージが消える
  グループを見つけ出す
  データクラスタリング
   googleのblog検索RSSを利用してグループ分け
   形態素解析で名詞を抽出。Mecabのjava binding
    Yahooは一日5万アクセスって制限ある
   単語の頻度表を作成
    K平均法によるクラスタリング
  RSS Auto Discoveryでblog検索からblogのFeedを取得
   RSSの解析はscalaのxmlリテラルで
  
  K平均法クラスタリング
   ビアソン相関
    2つの確率変数間の相関を-1〜1で表す
	→2つのデータ列をグラフにし、プロットした点の近似直線が
	  傾き1に近いほど似ている
	  似ていない場合は傾きが0に近い
	→AmazonのRecomendationなど
	
   重心の数は?
    重心がカテゴリ数
	グルーピングされたクラスタの特徴は?
	  →なんか分析するアルゴリズムがある
	 二次元の図で見せるとわかりやすいかも
	  見せ方重量 

   データの特徴をつかむ
    Blogのエントリ1個1個を要素として
	エントリ単位で単語頻度表を作る
	→表を行列にして
	→非負値行列印紙分解(NMF)すると特徴のデータが抽出できる
	  →oracle data miningとかでもやってるぽい
	  →2つの行列に分解する
	  →重みの行列 × 特徴の行列 の形にする
	  →特徴の行列 単語がそれぞれの特徴に対してどのくらい重要度をもつかの表
	  →重みの行列 特徴に対して記事がどのくらいマッチするか表す
    →(何らかのスコアリングに使えそうなアルゴリズム)
	
  遺伝的プログラミング
    →機械学習の技術
	→大量のプログラムの集団を生成して、交配などさせる
  
  Box2DAS3
    →物理法則を勝手にやってくれる
  amCharts
    →グラフとか表示してくれる

  
■Djangoの紹介とAdminカスタマイズ (id:tokibito id:nullpobug)
 
 Djangoの紹介
 
 DjangoAdmin
  標準で管理サイトのアプリがついてる
  →ちょっと物足りないのでカスタマイズ
  
  ModelAdminを登録することでCRUDをカスタマイズ
    →ModelAdmin.Inlinesで関連先も同時に編集
	→ListFilter
  テンプレートのカスタマイズ
    AdminSite.index_templteや.login_tempate、.app_templateにテンプレートのパスを設定すると優先して見に行く
    templates/adminにおいておく
	  app_directoriesに優先して使用させたいTEMPLATE_LOADERを指定する
  メディアファイル(CSS,JavaScript)
    ModelAdmin.Media
	{% block extrahead %}に書く
  Viewをカスタマイズ
    AdminSite/ModelAdminを軽装して
	  URLバンドリングのメソッドをOverride
	  urlresolverを使う?(未確認)
	別アプリケーションとしてViewにパーミッション設定する

  google codeにDjango Profiler
 
 
  (Templateの継承を指定するときにXPATHとかで指定できたら便利なのになぁ)