我有一本未知主题的书,并与科幻小说和犯罪书籍随机配对。我得到了每对书籍的相似度百分比,因此可以推断出这本书是科幻小说还是犯罪小说。因此,一个简短的示例如下:
tested book known books similarity
book1 (unknown) - book2 (science fiction) 83%
book1 (unknown) - book3 (crime) 90%
book1 (unknown) - book4 (crime) 15%
book1 (unknown) - book5 (science fiction) 75%
book1 (unknown) - book6 (science fiction) 20%
book1 (unknown) - book7 (science fiction) 60%
我想获得属于每一类的书的百分比概率(例如book1有65%的机会是科幻小说,35%的是犯罪小说。]]
我已经考虑过通过计算具有相同主题的已知书籍的每对的均值来进行处理,即:
probability_science_fiction = mean(book1-book2, book1-book5,book1-book6, book1-book7) probability_crime = mean(book1-book3, book1-book4)
然后,为了适应科幻小说较多而犯罪书籍较少的事实,我想到了加权方法:
probability_science_fiction = probability_science_fiction*(n_science_fiction_pairs/total) probability_crime = probability_crime*(n_crime_pairs/total)
但是,这不会产生我想要的结果。
我有一本未知主题的书,并与科幻小说和犯罪书籍随机配对。我得到了每对书籍的相似度百分比,因此可以推断出......>
直觉上这对我来说很有意义,但YMMV。利用将输出视为原始分数这一事实,我有一个建议是将原始输出的softmax标准化,将输出的总和标准化为1,然后简单地将科幻小说的值相加与犯罪进行比较,以获取其中的“可能性”。我将相似度转换为归一化的分数,以使计算更容易处理-因此除以100。
在Python中: