ラムダアーキテクチャ推薦システムのアルゴリズム(B):K最近傍協調フィルタリングアルゴリズムとその実現に基づきます

K最近傍に基づく協調フィルタリング勧告

実際にはK最近傍協調フィルタリングは、本質的にCFをメモリーベースが、隣人を選択する際、プラスリミットK最近傍。

ここでは、直接メモリーベースCFのコードに従って実装されています

次の場所を変更します。

class CollaborativeFiltering(object):

    based = None

    def __init__(self, k=40, rules=None, use_cache=False, standard=None):
        '''
        :param k: 取K个最近邻来进行预测
        :param rules: 过滤规则,四选一,否则将抛异常:"unhot", "rated", ["unhot","rated"], None
        :param use_cache: 相似度计算结果是否开启缓存
        :param standard: 评分标准化方法,None表示不使用、mean表示均值中心化、zscore表示Z-Score标准化
        '''
        self.k = 40
        self.rules = rules
        self.use_cache = use_cache
        self.standard = standard

K最近傍を選択する類似性に従って、選択したすべての局所近傍コードを変更

similar_users = self.similar[uid].drop([uid]).dropna().sort_values(ascending=False)[:self.k]

similar_items = self.similar[iid].drop([iid]).dropna().sort_values(ascending=False)[:self.k]

しかし、より少数であるため、当社のKNN法の効果は、純粋なMemoryBasedCFよりも悪くなります私たちの元のデータの

公開された651元の記事 ウォンの賞賛866 ビュー110 000 +

おすすめ

転載: blog.csdn.net/qq_35456045/article/details/104732457