1

분류 시스템이 있는데, 불행히도 작업 상 모호 할 필요가 있습니다.자동 생성 된 특징 벡터 집계

A B C D E Result 
1 2 b 5 3 X 
1 2 c 5 4 X 
1 2 e 5 2 X 

우리는 다음 순서로 규칙을 일치하려고 주제를 가지고 A-E에 대해 그 값을 얻을 : 우리가 고려해야 할 5 개 기능을 가지고 말해, 그것은 기본적으로 규칙의 집합입니다. 일치하는 경우 첫 번째 결과를 반환합니다.

C는 불연속 값이며 a - e 중 하나 일 수 있습니다. 나머지는 정수입니다.

룰 세트는 이전 시스템에서 자동으로 생성되었으며 규칙이 매우 많습니다 (2,500 만 개). 이전 규칙은 if 문이었습니다 (예 :

result("X") if $A >= 1 && $A <= 10 && $C eq 'A'; 

이전 규칙에서는 일부 기능을 사용하거나 범위를 허용하지 않는 경우가 종종 있습니다.

result("Y") if ($A == 1 && $B == 2) || ($A == 2 && $B == 4); 

규칙 집합이 유지 사람이어야로 훨씬 작은 될 필요가 있으므로 첫 번째 예제가 될 것입니다 그래서 나는 규칙 세트를 축소하고 싶습니다 : 일부는 더 성가신

A B C D E Result 
1 2 bce 5 2-4 X 

결론은 결과 열로 룰 세트를 분할하고 각각을 독립적으로 축소 할 수 있다는 것입니다. 그러나 나는 규칙 집합을 식별하고 축소하는 쉬운 방법을 생각할 수 없다. 클러스터링 알고리즘을 사용해 보았지만 데이터 중 일부가 분리되어 있고 연속으로 처리하는 것이 불완전하기 때문에 병이 난다. 또 다른 예 : 이상적인 세계에서는

A B C Result 
1 2 a X 
1 2 b X 
(repeat a few hundred times) 
2 4 a X 
2 4 b X 
(ditto) 

,이 두 가지 규칙 같습니다이다

A B C Result 
1 2 * X 
2 4 * X 

:뿐만 아니라 알고리즘은 A와 B 사이의 관계를 식별하는 것뿐만 아니라, 사실을 유추 할 C 소음 (규칙에 중요하지 않음)

누구든지이 문제에 대해 어떻게 생각합니까? 어떤 언어 나 라이브러리는 공정한 게임입니다. 나는 이것이 대부분 일회성 프로세스라고 생각합니다. 미리 감사드립니다.

+0

첫 번째 예가 맞습니까? 내가 이해하는 한, "1 2 bce 5 2-4 X"는 예를 들어. "1 2 b 5 2"는 원래 규칙 집합에 의해 암시되지 않는 X를 의미합니다. – Sami

답변

1

Weka machine learning lib for Java을 확인하십시오. API는 조금 복잡하지만 매우 유용합니다. 전반적으로 Weaker가 포함하고있는 기성품의 기계 학습 알고리즘이 당신이 원하는 것 같습니다. 분명히 해석하기 쉬운 무언가를 찾는 것입니다 (A와 B 사이의 관계를 추론하고 C가 잡음이라고 말하기를 원합니다). J48과 같은 의사 결정 트리를 시도해 볼 수 있습니다. 일반적으로 시각화/해석하기 쉽습니다.

+1

수락 - 나는 Weka를 사용하여 발견 한 관계와 함의를 이용하는 간단한 분류 알고리즘을 구현했습니다. 감사. – rjh

0

backpropagation을 통해 훈련 된 neural network 접근 방식을 시도해 볼 수 있습니다. 예를 들어, 이전 규칙 집합을 기반으로 모든 클래스에 부딪힌 많은 데이터 집합을 무작위로 생성하거나 생성 할 수 있다고 가정합니다. 적절한 크기의 숨겨진 레이어를 사용하면 피쳐 공간에서 임의의 판별 함수를 근사 할 수 있습니다. 이것은 클러스터링과 거의 동일하지만, 교육 패러다임으로 인해 개별 입력에 문제가 없어야합니다.

그러나 특히 가양 성 및 네거티브에 대한 허용 오차가없는 경우 (예 : 일회성 프로세스 임에도 불구하고 사용자는 임의적으로 신뢰 수준을 얻습니다. 거대한 유효성 검사 세트를 검사하여).

+0

불행하게도 우리는 정확한 규칙을 내관 할 수 있어야합니다. 그러나 다른 많은 유스 케이스에 대한 아이디어가 우수 할 수도 있습니다. – rjh

1

2 억 5 천만 규칙? 얼마나 많은 기능이 있습니까? 지형지 물 당 몇 개의 값이 있습니까? 실용적인 시간에 모든 조합을 반복 할 수 있습니까? 가능한 경우 규칙을 결과별로 그룹으로 분리하여 시작할 수 있습니다.

그런 다음 각 결과에 대해 다음을 수행하십시오. 각 피쳐를 치수로 간주하고 해당 치수의 메트릭으로 허용되는 값을 전체 룰 세트를 나타내는 거대한 Karnaugh 맵으로 구성하십시오.

지도에는 두 가지 용도가 있습니다. 하나 : Quine-McCluskey 알고리즘에 대한 자동화 된 방법을 연구합니다. 이 분야에서 많은 작업이 이루어졌습니다. 아마 몇몇 프로그램을 이용할 수 있습니다 만, 아마 아무도 당신이 만들려는 크기의 Karnaugh지도를 다루지는 않을 것입니다.

2 : 최종 축소 룰 세트를 만들었 으면 모든 기능의 모든 값 조합을 다시 반복하고 축소 된 룰 세트를 사용하여 다른 Karnaugh 맵을 구성하십시오. 맵이 일치하면 룰 세트는 동일합니다.

-Al.

관련 문제