【问题标题】:Impute values of a vector using Cosine similarity in Python在 Python 中使用余弦相似度估算向量的值
【发布时间】:2018-03-14 15:07:42
【问题描述】:

情景

我有一个数据集,其最后一列包含 NaN 值,需要仅使用向量余弦和皮尔逊相关进行估算;之后,数据将被进一步用于聚类。

问题

我的案例必须使用 VECTOR COSINEPEARSON CORESATION

这是我的数据集的一部分 post_df1 使用 pandas 从 csv 中获取

       uid     iid       rat
1    303.0   785.0  3.000000
2    291.0  1042.0  4.000000
3    234.0  1184.0  2.000000
4    102.0   768.0  2.000000
254  944.0   170.0  5.000000
255  944.0   171.0  5.000000
256  944.0   172.0       NaN
257  944.0   173.0       NaN
258  944.0   174.0       NaN

现在使用此命令将其放入向量中(为了方便起见,需要建议)

vect_1 = post_df1.iloc[:, 2].values

然而,sklearn.preprocessing 的名为 Imputer 的类有 Mean, Median & Most frequent 方法可用,但根据我的场景将无法工作。

问题

  1. 除了SurPRISE(由 Nicholas Hug 提供)之外,还有其他适用于 Vector Cosine 和 Pearson 方法的包
  2. 是否可以在 sklearn 中为 cosine 和 pearson 传递函数/方法?
  3. 还有其他方法/出路吗?

【问题讨论】:

    标签: python pandas scikit-learn sklearn-pandas imputation


    【解决方案1】:

    余弦silirality和Pearson相关性只是插补方法中的参数,不是插补方法。有多种插补方法,例如 KNN、MICE、SVD 和矩阵分解。例如,可以使用 cosine silirality 作为插补方法的一个 KNN 的参数,但找不到其实现本身。 fancyimpute 包作为一个实现近乎的包可能会有所帮助。以下是链接。 fancyimpute,Python中实现的多元插补和矩阵补全算法https://github.com/hammerlab/fancyimpute/

    ,下载fancyimpute的源码_GitHub_帮酷

    【讨论】:

    • 这一行我不太明白“只有插补方法中的参数,而不是插补方法”。不过我会尝试fancyimpute。
    • 很抱歉我的回答不能通俗易懂。例如,在层次聚类中,我认为以距离为参数,同样,以余弦相似度和皮尔逊相关作为插补方法的参数,它本身不是方法。
    猜你喜欢
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2017-09-27
    • 2016-10-28
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多