使用Python中的余弦相似度来估算矢量的值

时间:2017-10-03 12:06:53

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

情景

我有一个数据集,其最后一列中有NaN值,需要仅使用Vector Cosine&amp ;;皮尔逊相关;之后,数据将进一步用于聚类。

问题

我的案例必须使用 VECTOR COSINE PEARSON CORELATION

这是我的数据集的一部分 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

现在使用此命令进入Vector(只是为了简化,需要建议)

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

然而sklearn.preprocessing名为Imputer的班级正在使用Mean, Median & Most frequent方法,但根据我的情景不会有效。

问题

  1. 除了SurPRISE之外还有其他包(由Nicholas Hug提供),Vector Cosine& Pearson mehtod
  2. 是否可以在sklearn中传递函数/方法以用于余弦和&皮尔森?
  3. 任何其他方法/出路?

1 个答案:

答案 0 :(得分:1)

Cosine silirality和Pearson相关只是插补法中的参数,而不是插补法。存在各种插补方法,例如KNN,MICE,SVD和矩阵分解。例如,可以使用余弦silirality作为插补方法的一个KNN的参数,但是其实现本身无法找到。 fancyimpute包作为具有近实现的包可能会有所帮助。以下是链接。 GitHub - hammerlab / fancyimpute:Python中实现的多变量插补和矩阵完成算法https://github.com/hammerlab/fancyimpute/