赞
踩
基本概念:
协同过滤(Collabortive Filtering),通过用户和产品以及用户的偏好信息产生推荐产品的策略。基本的有两种:一是找到相同喜好的人所钟爱的产品,即基于用户的推荐。另一种是根据一个人喜欢的产品推荐类似的产品,即基于产品的推荐。利用用户以及物品的信息来预测用户的喜好,并且发觉用户可能会喜欢的类似产品或者是喜欢产品的相关产品,这就是推荐系统的核心思想。
模型及算法:
- 数据预处理与UI矩阵
- 推荐模型:UserCF 和ItemCF
- KMeans计算相关性
- SVD计算相似性
1. 数据预处理
在收集完数据,数据预处理是极其必要的,最常用的方法就是减噪和归一化,减噪是通过过滤算法去除数据中存在的噪声,一般是聚类过程中产生的离散点。归一化是平衡不同特征数据的差异,比如体重和年龄之间数值差异较大,为了统一量化,使不同的特征数据都集中在相同的取值范围内,使得模型训练更加准确。
聚类时常用的算法是KMeans,这是一种典型的基于距离的排他的划分方法。对于给定的训练集,可以对数据集进行k维划分,每一个划分就是一簇,也就是一个类别。同时还要满足,每个组至少包含一个对象,每个对象必须且仅属于一个组。
UI(User Item)用户偏好矩阵
使用sklearn的KMeans聚类算法:
- import numpy as np
- from Recommond_Lib import *
- from sklearn.cluster import KMeans
- import matplotlib.pyplot as plt
-
- k = 4
- dataMat = loadSet("testData/trainSet.txt")
- #dataMat要转换为矩阵形式
- kmeans = KMeans(init='k-means++',n_clusters=4)
- kmeans.fit(dataMat)
- #绘制图形
- drawScatter(dataMat,size=20,color='b',mrkr='.')
- d
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。