zoukankan      html  css  js  c++  java
  • matlab实现协同过滤之pdist、squareform

    实现协同过滤算法的第一步是:计算用户或项目之间的相似度。接下来介绍pdist和squareform

    用法:

    D = pdist(X)
    D = pdist(X,distance)
     
    D = pdist(X)计算 X 中各对行向量的相互距离(X是一个m-by-n的矩阵). 这里 D 要特别注意,D 是一个长为m(m–1)/2的行向量.可以这样理解 D 的生成:首先生成一个 X 的距离方阵,由于该方阵是对称的,且对角线上的元素为0,所以取此方阵的下三角元素,按照Matlab中矩阵的按列存储原则,此下三角各元素的索引排列即为(2,1), (3,1), ..., (m,1), (3,2), ..., (m,2), ..., (m,m–1).
     
    D = pdist(X,distance) 使用指定的距离.distance可以取下面圆括号中的值.在该算法中用到以下三种距离:
    夹角余弦距离Cosine distance('cosine')
    改进夹角余弦距离Adjust Cosine distance('adjustedcosine')
    相关距离Correlation distance('correlation')
     
    接下来命令 squareform(D) 将此行向量转换为原距离方阵.(squareform函数是专门干这事的,其逆变换是也是squareform。)
     
     
     
     
     
     
    pdist其他距离参数:
    欧几里德距离Euclidean distance('euclidean')
     
    标准欧几里德距离Standardized Euclidean distance('seuclidean')
     
    马哈拉诺比斯距离Mahalanobis distance('mahalanobis')
     
    曼哈顿距离(城市区块距离)City block metric('cityblock')
     
    闵可夫斯基距离Minkowski metric('minkowski')
     
    切比雪夫距离Chebychev distance('chebychev')
     
    夹角余弦距离Cosine distance('cosine')
     
    改进夹角余弦距离Adjust Cosine distance('adjustedcosine')
     
    相关距离Correlation distance('correlation')
     
    汉明距离Hamming distance('hamming')
     
    杰卡德距离Jaccard distance('jaccard')
  • 相关阅读:
    【Alpha阶段】第四次Scrum Meeting
    【Alpha阶段】第三次Scrum Meeting
    【Alpha阶段】第二次Scrum Meeting
    项目复审——Alpha阶段
    团队作业7-Alpha冲刺之事后诸葛亮
    团队作业6-展示博客
    Alpha阶段发布说明
    团队作业5-测试与发布
    冲刺博客-8
    冲刺博客-7
  • 原文地址:https://www.cnblogs.com/girl-he/p/5220940.html
Copyright © 2011-2022 走看看