0

次のデータ フレームがあります: データとフレームに関する歴史はほとんどありません。これは、最初のデータ フレームの 2 番目のバージョンであり、列のタイトルに基づいて表される実際の類似度の値があります。実際の類似度の値に基づいて、それぞれが属するビンによって識別されており、ビンは実際のスコアであると考えています。

    cosinFcolor cosinEdge cosinTexture histoFcolor histoEdge histoTexture jaccard
1             3         0            0           1         1            0       0
2             0         0            5           0         2            2       0
3             1         0            2           0         0            1       0
4             0         0            3           0         1            1       0
5             1         3            1           0         4            0       0
6             0         0            1           0         0            0       0

私がしたいのは、各行の値を合計して、それを jaccard 列の隣の列に保存することですが、合計中に jaccard の値を確認したいので、 jaccard 値に基づいてやりたいことの sudo コードを次に示します。

これはSUDOコードです:

If jaccard.value of that row == 5
   (cosinFcolor + cosinEdge + cosinTexture + histoFcolor + histoEdge + histoTexture) += (jaccard.value of the row * .5)
If jaccard.value of that row == 4
   (cosinFcolor + cosinEdge + cosinTexture + histoFcolor + histoEdge + histoTexture) += (jaccard.value of the row * .4)
If jaccard.value of that row == 3
   (cosinFcolor + cosinEdge + cosinTexture + histoFcolor + histoEdge + histoTexture)+= (jaccard.value of the row * .3)
If jaccard.value of that row == 2
   (cosinFcolor + cosinEdge + cosinTexture + histoFcolor + histoEdge + histoTexture) += (jaccard.value of the row * .2)
If jaccard.value of that row == 1
   (cosinFcolor + cosinEdge + cosinTexture + histoFcolor + histoEdge + histoTexture) += (jaccard.value of the row * .1)
else if jaccard.value of that row == 0
   value in the new column is = -1

この操作が完了すると、以下に示すような最終的なデータ フレームが得られることを期待しています。

    cosinFcolor cosinEdge cosinTexture histoFcolor histoEdge histoTexture jaccard  weightedScore
1             3         0            0           1         1            0       0       -1
2             0         0            5           0         2            2       0       -1
3             1         0            2           0         0            1       0       -1
4             0         0            3           0         1            1       0       -1
5             1         3            1           0         4            0       0       -1
6             0         0            1           0         0            0       0       -1
7             0         0            1           0         0            0       1       1.1

私の初期 (私が入れた最初のデータ フレーム) は、StackOverflow ユーザーの助けを借りて R コードに従って生成されました。

Rコードは次のとおりです。

single_img_sim_no_title <- single_img_similarity
single_img_sim_no_title$title <- NULL
head(single_img_sim_no_title)
#converting it to bins
sing_img_bins <- apply(single_img_sim_no_title, 2, cut, c(-Inf, seq(0.5, 1, 0.1), Inf), labels=0:6)
sing_img_bins[sing_img_bins=="6"] <- "0"
sing_img_bins <- as.data.frame(sing_img_bins)
4

0 に答える 0