当前位置:   article > 正文

机器学习之路(五)协同过滤及SVD算法_协同过滤 svd

协同过滤 svd

     基本概念:

     协同过滤(Collabortive Filtering),通过用户和产品以及用户的偏好信息产生推荐产品的策略。基本的有两种:一是找到相同喜好的人所钟爱的产品,即基于用户的推荐。另一种是根据一个人喜欢的产品推荐类似的产品,即基于产品的推荐。利用用户以及物品的信息来预测用户的喜好,并且发觉用户可能会喜欢的类似产品或者是喜欢产品的相关产品,这就是推荐系统的核心思想。

    模型及算法:

  •     数据预处理与UI矩阵  
  •     推荐模型:UserCF 和ItemCF
  •     KMeans计算相关性
  •     SVD计算相似性

1. 数据预处理

      在收集完数据,数据预处理是极其必要的,最常用的方法就是减噪和归一化,减噪是通过过滤算法去除数据中存在的噪声,一般是聚类过程中产生的离散点。归一化是平衡不同特征数据的差异,比如体重和年龄之间数值差异较大,为了统一量化,使不同的特征数据都集中在相同的取值范围内,使得模型训练更加准确。

      聚类时常用的算法是KMeans,这是一种典型的基于距离的排他的划分方法。对于给定的训练集,可以对数据集进行k维划分,每一个划分就是一簇,也就是一个类别。同时还要满足,每个组至少包含一个对象,每个对象必须且仅属于一个组。

      UI(User Item)用户偏好矩阵

      使用sklearn的KMeans聚类算法:

      

  1. import numpy as np
  2. from Recommond_Lib import *
  3. from sklearn.cluster import KMeans
  4. import matplotlib.pyplot as plt
  5. k = 4
  6. dataMat = loadSet("testData/trainSet.txt")
  7. #dataMat要转换为矩阵形式
  8. kmeans = KMeans(init='k-means++',n_clusters=4)
  9. kmeans.fit(dataMat)
  10. #绘制图形
  11. drawScatter(dataMat,size=20,color='b',mrkr='.')
  12. d
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/713959
推荐阅读
相关标签
  

闽ICP备14008679号