簡體   English   中英

從數據列表中預測最可能的項目的算法

[英]Algorithm for predicting most likely items from lists of data

可以說我有N個已知的列表。 每個列表都有項目,這些項目可以重復(不是一組),例如:

{A,A,B,C},{A,B,C},{B,B,B,C,C}

我需要一些算法(可能是一些機器學習的算法)來回答以下問題:

給定一個新的未知項目列表,例如{A,B},根據我從先前列表中了解的內容,C出現在列表中的概率是多少。 如果可能的話,我希望有一個更細粒度的概率:給定部分列表L,C出現在列表中一次的概率是多少,C出現兩次的概率是多少,等等...順序無關緊要。 C在{A,B}中出現兩次的概率應等於它在{B,A}中出現兩次的概率

有什么算法可以做到這一點?

這只是純粹的數學,沒有實際的“算法”,只需從數據集中估算所有概率(從字面上計算發生的次數)。 特別是,您可以執行非常簡單的數據結構來實現您的目標。 用字母袋表示每個“列表”,因此:

{A,A,B,C} -> {A:2, B:1, C:1}
{A,B} -> {A:1, B:1} 

等,並創建某種基本的反向索引,例如,將每個字母的索引分別按其計數排序。

現在,當出現查詢時,例如{A,B} + C您所要做的就是搜索包含至少1 A和1 B的數據(使用索引),然后通過計算檢索結果的分數來估計概率包含C(或恰好是一個C)與所有檢索到的結果(假設您的數據是來自某些基礎數據生成分布的一堆獨立樣本,這是一個有效的概率估計)。

另外,如果您的字母很小,您實際上可以為所有字母組合預先計算所有值P(C|{A,B})等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM