gpt4 book ai didi

python - 将 Pandas DataFrame 转换为 LIBFM 格式的 txt 文件

转载 作者:行者123 更新时间:2023-12-01 16:15:42 25 4
gpt4 key购买 nike

我想将Python中的Pandas数据帧转换为LIBFM中的稀疏矩阵txt文件格式。

这里的格式需要如下所示:

4   0:1.5   3:-7.9
2 1:1e-5 3:2
-1 6:1

该文件包含三个案例。第一列说明三种情况中每种情况的目标:即第一种情况为 4,第二种情况为 2,第三种情况为 -1。在目标之后,每行包含 x 的非零元素,其中 0:1.5 之类的条目读取 x0 = 1.5,3:-7.9 表示 x3 = −7.9 等。这意味着 INDEX:VALUE 的左侧表示x 内的索引,而右侧表示 x 的值。

示例中的数据总共描述了以下设计矩阵 X 和目标向量 y:

   1.5  0.0   0.0  −7.9  0.0  0.0  0.0
X: 0.0 10−5 0.0 2.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 1.0

4
Y: 2
−1

Manual file 中也对此进行了解释根据第 2 章。

现在这是我的问题:我有一个看起来像这样的 pandas 数据框:

  overall reviewerID        asin       brand         Positive Negative  \
0 5.0 A2XVJBSRI3SWDI 0000031887 Boutique Cutie 3.0 -1
1 4.0 A2G0LNLN79Q6HR 0000031887 Boutique Cutie 5.0 -2
2 2.0 A2R3K1KX09QBYP 0000031887 Boutique Cutie 3.0 -2
3 1.0 A19PBP93OF896 0000031887 Boutique Cutie 2.0 -3
4 4.0 A1P0IHU93EF9ZK 0000031887 Boutique Cutie 2.0 -2

LDA_0 LDA_1 ... LDA_98 LDA_99
0 0.000833 0.000833 ... 0.000833 0.000833
1 0.000769 0.000769 ... 0.000769 0.000769
2 0.000417 0.000417 ... 0.000417 0.000417
3 0.000137 0.014101 ... 0.013836 0.000137
4 0.000625 0.000625 ... 0.063125 0.000625

其中“总体”是目标列,所有其他 105 列都是特征。

“ReviewerId”、“Asin”和“Brand”列需要更改为虚拟变量。因此,每个独特的“ReviewerID”、“Asin”和品牌都有自己的专栏。这意味着,如果“ReviewerID”有 100 个唯一值,您将获得 100 列,其中如果该行代表特定的审阅者,则值为 1,否则为零。

所有其他列不需要重新格式化。因此这些列的索引可以只是列号。

因此上面 pandas 数据框中的前 3 行需要转换为以下输出:

5 0:1 5:1 6:1 7:3 8:-1 9:0.000833 10:0.000833 ... 107:0.000833 108:0.00833
4 1:1 5:1 6:1 7:5 8:-2 9:0.000769 10:0.000769 ... 107:0.000769 108:0.00769
2 2:1 5:1 6:1 7:3 8:-2 9:0.000417 10:0.000417 ... 107:0.000417 108:0.000417

在LIBFM]包中有一个程序可以将用户-项目-评级转换为LIBFM输出格式。然而这个程序无法处理这么多的列。

有没有简单的方法可以做到这一点?我总共有 100 万行。

最佳答案

LibFM 可执行文件需要您在此处解释的 libSVM 格式的输入。如果 LibFM 包中的文件转换器不适用于您的数据,请尝试 scikit learn sklearn.datasets.dump_svmlight_file 方法。

引用号:http://scikit-learn.org/stable/modules/generated/sklearn.datasets.dump_svmlight_file.html

关于python - 将 Pandas DataFrame 转换为 LIBFM 格式的 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44435041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com