タグ

collaborativeに関するishideoのブックマーク (2)

  • PySparkで協調フィルタリング - Qiita

    ratingの名前の通り、「ユーザーがその商品にどれだけ評価値を付けたかどうか」が来の使い方になりますが、上記の通り「商品を購入したかどうか」、または「ページにアクセスしたかどうか」といったデータでも実装は可能です。前者の場合は「ユーザーがその商品を購入するスコアはどのくらいか」、後者は「ユーザーがそのページにアクセスするどのくらいか」を予測するモデルになります。 学習データを加工する ユーザーIDや商品IDがint32の最大値(2,147,483,647)までしか扱えないため、それを超えるIDがある場合にIDを改めてナンバリングし直します。また整数値しか扱えないので、文字列含まれる場合も同様にナンバリングし直します。 IDが整数値かつint32の最大値を超えない場合は、この工程は飛ばしてください。 #!/usr/bin/env python # -*- coding: UTF-8 -*

    PySparkで協調フィルタリング - Qiita
  • 協調フィルタリングでアイテムの推薦をする - Qiita

    みな味の好みがバラバラで、同じメニューでも人によって採点が高かったり低かったりしているようです。 似ている人を探す 何らかの対象に対して人々の評価が集まったとき、その傾向が似ている程度を決定する基準が必要になります。これを 類似性スコア (Similarity score) と言います。類似性スコアの算出にはさまざまな方法がありますが、上記の集合知プログラミングではユークリッド距離とピアソン相関係数が取り上げられています。いずれも 2 つの確率変数の間の関連度合いを表す尺度であり -1 から 1 の範囲を取ります。 ユークリッド距離 ここでは 平方ユークリッド距離 (Squared Euclidean distance) を使います。これはそれぞれの軸の上での差を求め、その二乗を累計するものです。つまり数式では def sim_distance(prefs, person1, person

    協調フィルタリングでアイテムの推薦をする - Qiita
  • 1