2016-09-01 2 views
0

N 개의 알려진 목록이 있다고 가정 해 보겠습니다. 각 목록에는 반복 될 수있는 항목이 있습니다 (세트는 아님) 예 :데이터 목록에서 가장 가능성있는 항목을 예측하기위한 알고리즘

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

나는 몇 가지 알고리즘 (? 일부 기계 학습 어쩌면 하나를) 다음과 같은 질문에 답해야합니다 : 예를 들어, 항목의 새로운 & 알 수없는 일부 목록을 감안할 때

는, {A는, B}, 확률은 무엇을 그 이전 목록에서 내가 아는 바를 기반으로 목록에 C가 나타납니다. 가능하다면, 좀 더 세분화 된 확률을 원합니다 : 일부 부분 목록 L이 주어지면 C가 목록에 한 번 나타날 가능성, 두 번 나타날 확률 등 ... 순서는 중요하지 않습니다. {A, B}에 두 번 나타나는 C의 확률은 {B, A}에 두 번 나타나야합니다.

이렇게 할 수있는 알고리즘은 무엇입니까?

+1

목록의 길이에 따라 다릅니다. 나머지는 Markov. – wildplasser

+0

https://en.wikipedia.org/wiki/Good%E2%80%93Turing_frequency_estimation이 유용 할 수 있습니다. – mcdowella

답변

3

이것은 순수한 수학이며 실제 "알고리즘"이 아니며 단순히 데이터 집합의 모든 확률을 추정합니다 (실제로 발생 횟수를 계산 함). 특히 목표를 달성하기 위해 매우 간단한 데이터 구조를 사용할 수 있습니다. 따라서, 문자의 가방 각 "목록"을 대표 :

{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}) 등을 미리 계산할 수 있습니다.

관련 문제