Comparison of Outlier Detection Algorithms on String Data

이 논문은 문자열 데이터의 이상치 탐지를 위해 편집 거리를 기반으로 한 변형 국소 이상치 인자 알고리즘과 계층적 정규식 학습 기반 알고리즘을 제안하고, 데이터의 구조적 특성과 편집 거리 분포에 따라 각 알고리즘의 성능이 달라짐을 실험적으로 입증했습니다.

Philip Maus

게시일 2026-03-13
📖 4 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

이 논문은 **"이상한 문자열 (데이터) 을 찾아내는 두 가지 방법"**에 대한 연구입니다.

보통 컴퓨터는 숫자 데이터 (예: 주가, 온도) 에서 이상한 값을 찾는 데는 능숙합니다. 하지만 사람 이름, 주소, 날짜 같은 '문자열' 데이터에서 이상한 것을 찾는 것은 훨씬 어렵습니다. 이 논문은 이 문제를 해결하기 위해 두 가지 서로 다른 전략을 비교했습니다.

이 내용을 일상적인 비유로 쉽게 설명해 드릴게요.


🕵️‍♂️ 상황 설정: "이상한 손님 찾기"

상상해 보세요. 거대한 파티가 열려 있습니다. 대부분의 손님들은 정해진 규칙에 맞춰 옷을 입고 왔습니다 (예: 모두 검은 정장). 그런데 그중에는 엉뚱한 옷을 입은 손님들이 섞여 있습니다. 우리는 이 **'이상한 손님 (이상치, Outlier)'**을 찾아내야 합니다.

이 논문은 이 일을 어떻게 할지 두 가지 방법을 제안합니다.


방법 1: "이웃 관계로 판단하기" (LOF 알고리즘)

이 방법은 **"너는 주변 사람들과 너무 달라!"**라고 외치는 방식입니다.

  • 원리: 파티장에 들어온 사람 A 가 주변에 있는 5~10 명의 사람들과 옷차림이 비슷하면 '정상'으로 봅니다. 하지만 사람 B 는 주변 사람들과 옷차림이 너무 다르면 '이상한 사람'으로 의심합니다.
  • 문자열에 적용: 컴퓨터는 두 단어 사이의 **'글자 차이 (편집 거리)'**를 계산합니다.
    • 예: "2023-01-01"과 "2023-01-02"는 글자가 하나만 달라서 비슷합니다.
    • 하지만 "2023-01-01"과 "안녕하세요"는 글자 자체가 완전히 달라서 거리가 멉니다.
  • 고급 버전 (계층적 가중치): 저자는 여기에 더 재미있는 규칙을 추가했습니다.
    • 숫자 '1'을 숫자 '2'로 바꾸는 건 가벼운 실수 (비슷한 옷) 로 봅니다.
    • 하지만 숫자 '1'을 알파벳 'A'로 바꾸는 건 완전히 다른 옷을 입은 격이라서 더 큰 차이로 봅니다.
    • 비유: "검은 정장"을 "회색 정장"으로 바꾼 건 괜찮지만, "비키니"로 바꾼 건 아주 큰 차이로 간주하는 것입니다.

장점: 데이터의 '밀집도'를 잘 파악해서, 모양이 조금씩 다른 이상한 것들도 찾아냅니다.
단점: 데이터가 너무 복잡하면 헷갈릴 수 있습니다.


방법 2: "규칙을 만들어서 따르기" (HiLRE 알고리즘)

이 방법은 **"우리 파티의 규칙은 이런 거야!"**라는 명쾌한 법전을 만드는 방식입니다.

  • 원리: 대부분의 손님이 지켜온 규칙을 분석해서, **"정장만 입고 와야 한다"**는 규칙 (정규식) 을 만들어냅니다. 그 규칙에 맞지 않는 사람은 바로 이상한 사람으로 분류합니다.
  • 문자열에 적용: 날짜 데이터가 주라면, 컴퓨터는 "숫자 4 개 - 숫자 2 개 - 숫자 2 개"라는 규칙을 찾아냅니다.
    • "2023-01-01" → 규칙 준수 ✅
    • "2023/01/01" (슬래시 사용) → 규칙 위반 ❌
  • 고급 버전 (최소 일치율): 때로는 규칙이 너무 까다로울 수도 있습니다. 그래서 "최소한 90% 의 손님이 이 규칙을 따를 때만 규칙을 채택하자"는 안전 장치를 두었습니다.

장점: 규칙이 명확하면 이상한 사람을 100% 정확히 찾아냅니다. (예: 날짜 형식이 틀린 것)
단점: 만약 파티 손님들의 옷이 제각각이라면 (예: "Bonn", "Frankfurt (Oder)"처럼 길고 복잡한 이름들), 규칙을 만들기 어렵습니다. 규칙을 만들지 못하면 아무도 이상한 사람으로 못 찾습니다.


🥊 두 방법의 대결: 어떤 게 더 잘할까?

저자는 실제 데이터 (독일 병원 주소, 날짜, 전화번호 등) 로 실험을 해보았습니다.

  1. 규칙이 뚜렷한 경우 (예: 우편번호):

    • 규칙 만들기 (HiLRE) 가 압승!
    • 우편번호는 무조건 5 자리 숫자입니다. 규칙을 만들면 이상한 것 (이름이나 긴 주소) 을 바로 걸러냅니다.
    • 이웃 관계 방식은 "5 자리 이름"과 "5 자리 숫자"를 구분하기가 조금 더 어렵습니다.
  2. 규칙이 복잡하거나 섞여 있는 경우 (예: 지명, 전화번호):

    • 이웃 관계 (LOF) 가 더 나았습니다.
    • 지명들은 길이가 다르고 글자도 제각각이라 규칙을 만들기 힘듭니다. 하지만 "이웃" 방식은 "너는 다른 사람들과 너무 달라"라고 판단해서 이상한 것을 찾아냅니다.
    • 특히 길이가 다른 전화번호나 주소처럼, 문자 자체는 비슷하지만 길이가 다른 경우에 이웃 방식이 잘 작동했습니다.

💡 결론: "상황에 맞는 도구를 선택하라"

이 논문의 핵심 메시지는 **"하나의 만능 해결책은 없다"**는 것입니다.

  • 데이터가 규칙적이고 깔끔하다면 (날짜, 우편번호 등) → **규칙을 만드는 방법 (HiLRE)**이 최고입니다.
  • 데이터가 다양하고 복잡하다면 (이름, 주소 등) → **이웃 관계를 보는 방법 (LOF)**이 더 잘 작동합니다.

이 연구는 컴퓨터가 방대한 텍스트 데이터 (로그 파일, 사용자 입력 등) 에서 이상한 것을 찾아내어, 시스템 오류를 미리 발견하거나 사기를 막는 데 도움을 줄 수 있음을 보여줍니다. 마치 파티에서 이상한 옷을 입은 손님을 찾아내는 두 가지 다른 눈썰미처럼, 상황에 맞는 눈을 선택하는 것이 중요합니다.