Data Mining
데이터 마이닝은 통계와 머신러닝을 사용해 대규모 데이터셋에서 패턴, 연관 관계, 군집, 이상치를 발견하며, KDD의 분석 단계에 해당합니다.
데이터 마이닝은 통계, 머신러닝, 데이터베이스 기법을 사용해 대규모 데이터셋에서 함께 발생하는 항목, 자연스러운 그룹, 예측 규칙, 특이한 레코드와 같은 유용한 패턴을 발견하는 과정입니다. 정식으로 데이터 마이닝은 데이터베이스 지식 발견(KDD)의 분석 단계입니다. Usama Fayyad, Gregory Piatetsky-Shapiro, Padhraic Smyth는 1996년에 KDD를 데이터 선택, 데이터 전처리, 변환, 마이닝, 결과 해석의 순서로 설명했습니다.
데이터 마이닝 프로세스#
널리 사용되는 프로세스 모델은 데이터 마이닝을 위한 산업 간 표준 프로세스인 CRISP-DM입니다. Teradata, Daimler, NCR 등이 참여한 컨소시엄이 1999년에 처음 발표했습니다. 이후 단계에서 이전 단계의 누락 사항이 발견되면 다음 여섯 단계는 서로 되돌아가며 반복됩니다.
데이터 정제, 데이터 소스 결합, 피처 엔지니어링을 포함하는 데이터 준비는 대개 가장 오래 걸리는 단계입니다. 패턴이 누락되거나 중복된 레코드로 인한 인공적인 결과로 판명되면 모델링 단계에서 데이터 준비 단계로 되돌아갑니다.
핵심 기법#
- 연관 규칙 학습: 장바구니 분석에서처럼 함께 발생하는 항목이나 이벤트를 찾습니다. Rakesh Agrawal과 Ramakrishnan Srikant가 1994년에 개발한 Apriori 알고리즘은 대규모 트랜잭션 데이터베이스에서 이를 실용적으로 수행할 수 있게 했습니다.
- k-means 또는 DBSCAN을 이용한 클러스터링: 비지도 학습의 한 형태로, 레이블 없이 고객 세그먼트나 유사한 이미지와 같은 비슷한 레코드를 그룹화합니다.
- 의사결정 트리를 이용한 분류: 레이블이 지정된 과거 데이터를 바탕으로 대출 신청을 승인하거나 표시하는 것처럼 레코드를 이미 알려진 범주에 할당하는 규칙을 학습합니다.
- 이상 탐지: 사기성 카드 거래나 센서 측정값이 정상 범위에서 벗어나는 기계처럼 나머지 데이터와 크게 다른 레코드를 표시합니다.
- 순차 패턴 마이닝: 구매로 이어지는 경우가 가장 많은 페이지 경로와 같은 순서가 있는 패턴을 찾습니다.
연관 규칙은 세 가지 수치로 평가합니다. 지지도는 두 항목이 모두 포함된 거래의 비율이고, 신뢰도는 항목 A가 포함된 거래 중 항목 B도 포함된 거래의 비율입니다. 향상도는 신뢰도를 항목 B 자체의 빈도로 나눈 값이므로, 향상도가 1보다 크면 A와 B가 우연히 예상되는 것보다 더 자주 함께 발생한다는 뜻입니다. 다음 예제는 pandas를 사용해 장바구니 8개에 포함된 모든 상품 쌍의 점수를 계산합니다.
from itertools import permutations
import pandas as pd
# Eight shopping baskets, one column per product
baskets = pd.DataFrame(
[[1, 1, 0, 1], [1, 1, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1], [1, 0, 0, 1], [0, 0, 1, 0], [1, 1, 0, 1], [0, 1, 1, 0]],
columns=["bread", "butter", "milk", "jam"],
).astype(bool)
# Score every rule "A -> B" and keep frequent rules that beat chance
for a, b in permutations(baskets.columns, 2):
support = (baskets[a] & baskets[b]).mean() # share of baskets with both items
confidence = support / baskets[a].mean() # share of A baskets that also hold B
lift = confidence / baskets[b].mean() # confidence relative to B's base rate
if support >= 0.25 and lift > 1:
print(f"{a} -> {b}: support {support:.2f}, confidence {confidence:.2f}, lift {lift:.2f}")결과로 규칙 네 개가 출력됩니다. 빵 → 버터 규칙은 신뢰도가 0.80으로 높지만 향상도는 1.07에 불과합니다. 어차피 장바구니 네 개 중 세 개에 버터가 들어 있기 때문입니다. 반면 빵 → 잼 규칙은 신뢰도는 동일하지만 향상도는 1.60입니다. 우유 → 버터 규칙의 신뢰도는 0.75이고 향상도는 정확히 1.00이므로 필터에서 제외됩니다.
컴퓨터 비전에서의 데이터 마이닝#
이미지 및 동영상 컬렉션을 마이닝해 모델에 가장 중요한 예시를 찾습니다. 하드 네거티브 마이닝은 탐지기가 객체로 잘못 점수를 매긴 배경 영역을 선택해 다시 학습에 사용합니다. 액티브 러닝은 레이블이 없는 데이터 풀을 마이닝해 모델의 확신도가 가장 낮은 이미지를 찾습니다. 배포된 시스템의 탐지 로그를 마이닝하면 제조 라인에서 반복되는 결함 유형이나 매장의 혼잡 시간대를 파악할 수 있습니다. 또한 임베딩을 사용하면 팀은 콘텐츠를 기준으로 수백만 개의 이미지를 클러스터링해 중복 이미지와 데이터 공백을 찾을 수 있습니다.
Ultralytics Platform은 클러스터링 패널을 통해 이러한 방식으로 데이터셋을 마이닝합니다. 패널은 모든 이미지의 임베딩을 계산하고 데이터셋을 대화형 2D 산점도로 투영합니다. 시각적으로 비슷한 이미지는 서로 가까이 표시되므로 사용자는 분할, 클래스, 클러스터별로 점에 색상을 지정하고, 중복 이미지와 이상치를 찾으며, 영역을 올가미로 선택해 해당 이미지를 확인하거나 재라벨링하거나 이동할 수 있습니다.










