記事のディレクトリ
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よりも悪くなります私たちの元のデータの