• 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')
  • 相关阅读:
    select接收后台返回值的解决方案
    junit 使用
    jsoup解析HTML及简单实例
    面向接口编程及适配器模式
    数据库 SQL语句小结(更新中)
    最近关于虚拟机的学习
    AQS源码解析
    ReentrantLock源码阅读记录(二)之ReentrantReadWriteLock
    Semaphore 源码解读
    Httpclient学习多一点儿
  • 原文地址:https://www.cnblogs.com/girl-he/p/5220940.html
Copyright © 2020-2023  润新知