Monthly Archives: 4月 2012

「集合知プログラミング」第35回(4月27日)

Posted on by 0 comment

参加者 青木(読み手)、今井(記)
範囲 pp. 249 – 260

10章 特徴を発見する

  • 10.1 ニュースのコーパス
    • 10.1.3 行列に変換する
  • 10.2 これまでのアプローチ
    • 10.2.1 ベイジアン分類器
    • 10.2.2 クラスタリング
      • p.252 図10-1
        本文中でこの図の中身を参照しているが、図が小さすぎて文字が読み取れない。
  • 10.3 非負値行列因子分解
    • 10.3.1 行列に関する数学の簡単な紹介
    • 10.3.2 これは記事の行列とどのような関わりがあるの?
      • p.255 図10-6
        なぜ計算結果はかかれていないのだろう?

        20   0  30   0
         0  16   1   9
         0  10   6  11
    • 10.3.3 NumPyを使う
      • p.256 l.4 行頭
        「比肩」の読みは? → ひけん
    • 10.3.4 アルゴリズム

「集合知プログラミング」第34回(4月24日)

Posted on by 0 comment

参加者 今井(読み手)、青木(記)
範囲 pp. 241 – 249

9章 高度な分類手法:カーネルメソッドとSVM

  • 9.9 Facebookでのマッチ
    • 9.9.4 マッチのデータセットを作る
      友人であれば1を、そうでなければ0を返すメソッドarefriendsを追加。
      LIBSVNで動作するデータセットを作成するメソッドmakedatasetを追加。
    • 9.9.5 SVNモデルを構築する
  • 9.10 エクササイズ

10章 特徴を発見する

  • 10.1 ニュースのコーパス
    • 10.1.1 情報源の選択
    • 10.1.2 情報源をダウンロードする

「集合知プログラミング」第33回(4月20日)

Posted on by 0 comment

参加者 青木(読み手)、今井(記)
範囲 pp. 232 – 241

9章 高度な分類手法:カーネルメソッドとSVM

  • 9.7 サポートベクトルマシン
  • 9.8 LIBSVMを使う
    • 9.8.1 LIBSVMの入手
    • 9.8.2 セッション中での使用例
    • 9.8.3 SVMをmatchmakerデータセットに適用する
      • p.235 下から3行目 ミスタイプ
        LIVSVM → LIBSVM
  • 9.9 Facebookでのマッチ
    • 9.9.1 Developer Keyを取得する
      • p.237 下のコード
        1行目と2行目の改行位置がおかしい。fromの前ではなくimportの前のはず。
    • 9.9.2 セッションを作成する
    • 9.9.3 友人データをダウンロードする

「集合知プログラミング」第32回(4月17日)

Posted on by 0 comment

参加者 今井(読み手)、青木(記)

範囲 pp. 226 – 232

9章 高度な分類手法:カーネルメソッドとSVM

  • 9.4 カテゴリーデータな特徴たち
    • 9.4.4 新たなデータセットの作成
      データファイルからloadmatch関数を利用してデータセットを読み込み、列に適切な変換をかけるloadnumericalをadvancedclassify.pyに追加。
  • 9.5 データのスケーリング
    全てのデータの値が0と1の間にように変換する関数scaledataをadvancedclassify.pyに追加。
  • 9.6 カーネルメソッドを理解する
    • 9.6.1 カーネルトリック
      radial-basis関数を用い非線形なデータセットを線形に写像する関数rdfをadvancedclassify.pyに追加。関数rdfを使用した分類器nlclassifyをadvancedclassify.pyに追加。

「集合知プログラミング」第31回(4月13日)

Posted on by 0 comment

参加者 青木(読み手)、今井(記)
範囲 pp. 218 – 226

9章 高度な分類手法:カーネルメソッドとSVM

  • 9.3 基礎的な線形分類
    • p.221 classの数式中
      分母の2 (/2) の記述が添え字の2(/2下付き文字)になっている。
    • p.221 下のプログラムの b を求める式
      上のclassを求めるの式では、(M0.M0 - M1.M1)/2 だが、プログラムでは、(M1.M1 - M0.M0)/2 を表している。これで大丈夫なのか?
  • 9.4 カテゴリーデータな特徴たち
    • 9.4.1 Yes/Noクエスチョン
    • 9.4.2 「興味があるもの」リスト
      • p.223 プログラム
        文中には、「floatとして返してくれる」とある。プログラム中戻り値xは、x=1x+=1だけだが、これでfloatになるのか?
    • 9.4.3 Yahoo! Mapsを使って距離を決定する
      • p.225 上のコード中
        logitudeを表す変数名が、longなのはlong型と紛らわしい。

「集合知プログラミング」第30回(4月10日)

Posted on by 0 comment

参加者 今井(読み手)、青木(記)

範囲 pp. 209 – 218

8章 価格モデルの構築

  • 8.8 実データの利用 — eBay API
    • 8.8.4 アイテムの詳細を得る
      eBayのAPI「GetItem」をコールしてアイテムの属性を取得する関数getItemをebaypredict.pyに追加。
    • 8.8.5 価格予測器の構築
      getItemで取得したデータをK近傍法の関数群に適した構造体に変換する関数makeLaptopDatasetebaypredict.pyに追加。
  • 8.9 K近傍法はどこで使うべきか
    K近傍法の欠点:
    予測器の構築にコストがかかる。
    適切な重み付けや一部の変数の排除の可否などが定めにくい場合がある。
    K近傍法の利点:
    新しい観測値の追加には計算力を全く必要としない。
    解釈がすることが容易。
  • 8.10 エクササイズ

9章 高度な分類手法:カーネルメソッドとSVM

  • 9.1 matchmakerデータセット
    kiwitobes.comにあるデータからmatchmakerデータセットを作成する。
  • 9.2 このデータセットの難点
    難点は、データセットが非線形であるということ、変数が相互に影響を与え合っているということ。

    • 9.2.1 決定木による分類器
      重要なポイント:
      与えられたデータの意味を考えたり解釈しやすい形に変更することを検討せずにそのまま使うのはよい考えではない。
      決定木はシンプルな関係を示さないような複数の数字の入力をクラス分けするには向いていないことが多い。

「集合知プログラミング」第29回(4月3日)

Posted on by 0 comment

不本意ながらしばらく休止していましたが、2ヶ月ぶりに再開です。

参加者 青木(読み手)、今井(記)
範囲 pp. 200 – 209

8章 価格モデルの構築

  • 8.7 不均一な分布
    • 8.7.2 確率のグラフ化
      • p.200 下方の実行例
        初めの方の、a, b, plot(a,b)は何をプロットしているのだろう? 図8-9にはそれらしきものはプロットされていない。
      • p.201 下方のコード
        inport*import *
      • p.202 コードの下 1行目
        「累積確率は0から始まり1まで増加するだけだ」とあるが、図8-10を見ると、120ドルまででは、1までいっていないね。
      • p.203 コード中ほど
        range(len(probs))range(0, len(probs)) の違いは?
        range([start,] stop[, step]) で、start 省略時は0なので、同じはず。
  • 8.8 実データの利用 — eBay API
  • 8.8.1 ディベロッパキーの取得
  • 8.8.2 コネクションのセットアップ
  • 8.8.3 検索する