일련의 입력에 대해 어떤 통계적 분류 알고리즘이 참 / 거짓을 예측할 수 있습니까?


15

일련의 입력이 주어지면이 시퀀스에 원하는 특정 속성이 있는지 확인해야합니다. 이 속성은 true 또는 false 만 가능합니다. 즉 시퀀스에 속할 수있는 클래스는 두 개뿐입니다.

시퀀스와 속성 간의 정확한 관계는 불분명하지만, 이것이 매우 일관되고 통계적 분류에 적합하다고 생각합니다. 분류기를 훈련시키는 사례가 많이 있지만,이 훈련 세트에서 시퀀스에 잘못된 클래스가 할당 될 가능성이 약간 있다는 점에서 약간 시끄 럽습니다.

훈련 데이터 예 :

Sequence 1: (7 5 21 3 3) -> true
Sequence 2: (21 7 5 1) -> true
Sequence 3: (12 21 7 5 11 1) -> false
Sequence 4: (21 5 7 1) -> false
...

거친 조건에서, 속성은 순서 값들의 세트에 의해 결정된다 (예를 들어 속성이 거의 확실하게 허위 것이라는 "11"수단의 존재)뿐만 아니라, 순서 값 (예 : "21 7 5 "속성이 true 일 가능성을 크게 증가시킵니다.)

훈련 후, 분류 자에게 이전에 볼 수 없었던 시퀀스 (예 :)를 제공 할 수 있어야 (1 21 7 5 3)하고 속성이 참이라는 확신을 출력해야합니다. 이러한 종류의 입력 / 출력으로 분류기를 훈련시키는 잘 알려진 알고리즘이 있습니까?

나는 순진한 베이지안 분류기를 고려했습니다 (입력이 독립적이라는 가정을 심각하게 위반하지 않으면 서 순서가 중요하다는 사실에 실제로 적용 할 수는 없습니다). 또한 숨겨진 Markov 모델 접근 방식을 조사했는데, 입력 당 하나의 출력 대신 단일 출력 만 사용할 수 있기 때문에 적용 할 수없는 것으로 보입니다. 내가 놓친 게 무엇입니까?


한 쌍의 시퀀스 사이의 거리를 측정 할 방법이 있습니까? 최소 및 / 또는 최대 시퀀스 길이가 알려져 있습니까?
Craig Wright

@CraigWright 생각할 수있는 거리 측정은 없습니다. 12의 최대 길이 및 최소 약 4가 가정 될 수있다. 또한, (그렇지 않은 무제한의 원주민이야, 가능성의 단지 아주 작은 세트) (30 개) 고유 값에 대해이 있습니다
로마 Starkov

언급 한 다중 반응 변수는 무엇입니까? 이진 출력이므로 문제를 읽고 있었고 더미 변수를 만들 수 있습니다. Var1.1, Var1.12, ..., Var12.12
B_Miner

@B_Miner HMM의 작동 방식을 이해하지 못할 수도 있지만 다음과 같이 작동하는 것 같습니다. 입력 시퀀스 (abcde)를 공급하고 숨겨진 시퀀스를 가장 잘 일치하는 숨겨진 시퀀스를 출력합니다 (a 'b'c 'd'e ' ). 더미 변수가 이것을 해결할 것이라고 생각하지 않습니다. 전체 시퀀스에 대해 참 / 거짓 분류가 필요합니다.
Roman Starkov

@romkyns, 그것은 HMM이 작동하는 방식이 아닙니다. HMM은 확률 적 프로세스입니다. 시퀀스 주어 및 HMM M을 , 그 확률을 계산할 수 M 겠습니까 출력 S (상기 순방향 동적 프로그래밍 알고리즘을 사용하여). 또한 일련의 교육 시퀀스 가 제공되면 Baum-Welch 알고리즘을 사용하여 해당 교육 시퀀스를 생성 할 가능성이 최대 인 HMM M 을 찾을 수 있습니다 . 따라서 HMM은 여기서 시도해 볼 수 있습니다. 그래도 몇 가지 세부 사항을 작성해야합니다. sMMsM
DW

답변:


10

순진한 베이 즈 분류기와 유사하지만 더 약한 가정으로 확률 론적 접근을 시도 할 수 있습니다. 예를 들어, 강한 독립성을 가정하는 대신 마르코프 가정을 가정하십시오.

p(xc)=p(x0c)tp(xtxt1,c)

는 클래스 레이블이고 x 는 시퀀스입니다. c = 1 c = 0에 대한두 개의 조건부 분포를 추정해야합니다.cxc=1c=0

베이 즈의 규칙에 따라 :

p(c=1x)=p(xc=1)p(c=1)p(xc=1)p(c=1)+p(xc=0)p(c=0).

에 대해 어떤 분포를 선택 해야하는지에 따라 시퀀스에 대해 사용할 수있는 다른 가정 및 사용 가능한 데이터 양에 따라 달라집니다.p(xtxt1,c)

예를 들어 다음을 사용할 수 있습니다.

p(xtxt1,c)=π(xt,xt1,c)iπ(xi,xt1,c)

이와 같은 분포로하여 서열에서 발생하는 21 개 가지 번호가있는 경우에는 추정해야 파라미터 π ( X t , X t , C ) 을 더한 21 2 = 42 에 대한 파라미터 P ( X를 0 | C ) 플러스 2 개 매개 변수 P ( C ) .21212=882π(xt,xt,c)212=42p(x0c)2p(c)

모델의 가정이 충족되지 않는 경우, 예를 들어 평균 로그 손실을 최소화하여 분류 성능과 관련하여 매개 변수를 직접 미세 조정할 수 있습니다.

1#D(x,c)Dlogp(cx)

경사 하강을 사용합니다.


(+1) 나는 이것을 좋아한다. 그러나 모든 대한 신뢰할 수있는 추정치를 얻기 위해서는 엄청난 양의 데이터가 필요할 수 있습니다.p(xt|xt1,c)
steffen

관련된 분포에 대해 더 많은 가정을 할 수 있다면 훨씬 적은 매개 변수로 벗어날 수 있습니다. 예를 들어, 가 이항이고 E [ x tx t - 1 , c ] = x t - 1 이라는 것을 알면 두 개의 모수 만 추정해야합니다. c의 각 값마다 하나씩입니다 . 물론 어떤 가정도 할 수없고 데이터가 충분하지 않으면 할 수있는 일이 많지 않습니다. 무료 점심은 없습니다.p(xtxt1,c)E[xtxt1,c]=xt1c
Lucas

6

일부 기능을 정의한 다음 해당 기능에 적용 할 기계 학습 알고리즘을 선택하는 것이 좋습니다.

기능 : 기본적으로 각 기능은 특정 시퀀스에서 계산할 수 있고 시퀀스에 속성이 있는지 여부와 관련이 있다고 생각해야합니다. 설명에 따라 다음과 같은 기능을 고려할 수 있습니다.

  • "숫자". 시퀀스에 각 가능한 숫자가 몇 번 나타나는지 계산할 수 있습니다. 예를 들어, 각 시퀀스가 ​​숫자 1-30으로 만 만들어 졌다고 가정합니다. 그런 다음 30 개의 기능을 생성 할 수 있습니다. 번째 기능 카운트 얼마나 많은 시간 수가 내가 순서로 나타납니다. 예를 들어, 시퀀스 는 특징 벡터 (0,0,2,0,1,0,1,0, ..., 0,1,0, ..., 0)를 생성합니다.ii(7 5 21 3 3)

  • "그램의 가방." 그램은 연속적인 숫자 쌍입니다. 시퀀스가 주어지면 모든 디 그램을 추출 할 수 있습니다. 그런 다음 각 가능한 digram이 몇 번이나 나타나는지를 셀 수 있습니다. 예를 들어, 순서 (7 5 21 3 3)의 digrams로 다음이있다 : 7 5, 5 21, 21 3,와 3 3. 시퀀스가 1-30의 숫자로 구성되어 있다고 가정하면 가능한 그램이 있으므로 30 2 피처 를 얻습니다 . 시퀀스가 주어지면이 피쳐 벡터를 생성 할 수 있습니다.302302

  • "삼각형의 가방." 또한 원래 시퀀스에서 연속 된 3 개의 숫자로 구성된 하위 시퀀스 인 트라이 그램을 고려할 수도 있습니다. 위와 동일하게 수행 할 수 있습니다.

위의 기능을 사용하면 각 시퀀스에서 기능 을 추출 할 수 있습니다 . 즉, 각 시퀀스 에 피처의 모음 인 d- 차원 피처 벡터 를 연결 합니다. 이것을 가지고 나면 원래 시퀀스를 버릴 수 있습니다. 예를 들어, 훈련 세트는 여러 입력 / 출력 쌍이되며, 여기서 입력은 특징 벡터 (훈련 세트의 일부 시퀀스에 해당)이고 출력은 부울입니다 (시퀀스에 속성이 있는지 여부를 나타냄) .d=30+302+303d

ii

d


내가 실제로 구현 한 첫 번째 시도는 순진한 베이지안 분류를 사용한 "삼각형 가방"이었습니다. 결과는 고무적이지만 좋지 않습니다. 나는 이것이 트라이 그램이 전혀 독립적이지 않다는 사실과 관련이 있다고 생각했다. 만약 내가 "1 2 3"을 가지고 있다면 나는 또한 "2 3 *"트라이 그램을 가질 가능성이 높다. 아마도 정확한 기능을 좀 더 실험해야 할 것입니다.
Roman Starkov

다른 기능 세트와 다른 학습 알고리즘으로 더 많은 것을 실험하는 것이 좋습니다. 또한 문제 설명에 따라 각 개별 숫자 (삼각형 가방이 아닌 단어 가방)의 모양에 대한 기능을 추가 할 수 있습니다. 삼각형 만 사용하면 기계 학습 알고리즘이 학습하기가 더 어려워집니다. "11을 포함하는 시퀀스에는 거의 확실하게 속성이 없습니다"와 같은 사실이 있습니다.
DW

2

효과적으로하고있는 것은 시계열에 대한 가설 테스트입니다. HMM은 귀하의 경우에 적합하지만 귀하의 특정 사례에 맞게 조정해야합니다.

솔직히, 당신이 감지하려고하는 것에 대한 일종의 수학적 설명을 쓸 수 없다면, 당신은 멀리 가지 않을 것입니다. 어떤 종류의 기능을 기대할 수 있습니까?


1
머신 러닝은 우리가 무엇을 찾아야할지 전혀 몰라도 매우 멀리 갈 수 있음을 보여주었습니다.
bayerj

1

시퀀스에서 최대 길이가 12이면 12 개의 입력과 1 개의 출력을 가진 신경망이 작동 할 수 있지만 각 시퀀스의 끝을 0 또는 비활성 값으로 채워야합니다.


1

베이지안 네트워크를 사용해 보셨습니까? 무작위 변수의 확률에 도달하기 위해 여러 데이터 조각 (한 번에 하나씩)을 융합해야 할 때 가장 먼저 생각합니다.

베이지안 네트워크는 순진한 베이 즈가하는 독립성 가정에 의존하지 않습니다.

BTW, 숨겨진 Markov 모델은 베이지안 네트워크의 특별한 경우입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.