분류 시스템이 있는데, 불행히도 작업 상 모호 할 필요가 있습니다.자동 생성 된 특징 벡터 집계
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 소음 (규칙에 중요하지 않음)
누구든지이 문제에 대해 어떻게 생각합니까? 어떤 언어 나 라이브러리는 공정한 게임입니다. 나는 이것이 대부분 일회성 프로세스라고 생각합니다. 미리 감사드립니다.
첫 번째 예가 맞습니까? 내가 이해하는 한, "1 2 bce 5 2-4 X"는 예를 들어. "1 2 b 5 2"는 원래 규칙 집합에 의해 암시되지 않는 X를 의미합니다. – Sami