데이터 포인트 클러스터링

데이터 포인트 클러스터링

데이터 포인트 클러스터링

DataPoint, Cluster, 및 ClusterCollection는 Aspose.PDF FOSS와 함께 제공되는 작고 일반적인 계층적-응집 클러스터링 툴킷이며, Python을(를) 위해 설계되었습니다. 이들은 좌표와 레이블이 있는 점, 아이템 그룹, 그리고 그룹들의 컬렉션이라는 일반적인 데이터 그룹화 기본 요소이며, PDF 전용 문서 기능이 아닙니다; 이 모듈에서는 PDF 콘텐츠를 읽거나 쓰지 않습니다. 이미 문서에서 추출한 측정값과 같은 숫자 값을 클러스터로 묶고, 클러스터를 중심점(centroid)으로 요약해야 할 때 사용하십시오.


데이터 포인트 표현

DataPoint는 식별용 name과 숫자 좌표의 value 리스트를 짝지습니다. 두 값은 생성 후 각각 DataPoint.name와 DataPoint.value로 노출됩니다.


클러스터 구축 및 복사

Cluster은(는) 선택적인 아이템 리스트를 단일 그룹으로 감쌉니다. Cluster.count은(는) 현재 클러스터가 보유하고 있는 아이템 수를 보고하고, Cluster.contains()은(는) 특정 아이템이 멤버인지 확인하며, Cluster.clone()은(는) 자체 아이템 리스트를 가진 독립적인 복사본을 반환합니다. Cluster.empty()은(는) 매 호출마다 새 인스턴스를 할당하는 대신 공유되는 싱글톤 빈 클러스터 인스턴스를 반환합니다.


컬렉션에서 클러스터 그룹화

ClusterCollection은(는) 선택적 Cluster 인스턴스 목록을 단일 컬렉션으로 감싸며, 함수가 한 번에 여러 클러스터를 받아들이거나 반환해야 할 때 전달할 수 있는 하나의 객체를 제공합니다.


클러스터 중심점 계산

DataPoint.get_centroid()은(는) Cluster 내 모든 데이터 포인트의 좌표를 위치별로 평균 내어 중심점을 나타내는 새로운 DataPoint를 반환합니다. 평균이 의미 있으려면 클러스터의 모든 포인트가 DataPoint.value에서 동일한 차원 수를 가져야 합니다.


팁 및 모범 사례

  • 클러스터 내 모든 DataPoint.value 목록의 길이를 동일하게 유지하십시오 — DataPoint.get_centroid()은(는) 좌표를 위치별로 평균 내기 때문에 차원이 일치하지 않으면 잘못된 중심점이 생성됩니다.
  • 플래이스홀더 값만 필요할 때 새 빈 클러스터를 생성하는 대신, 공유되는 단일 빈 클러스터로 Cluster.empty()을(를) 사용하십시오.
  • 다른 곳에서 원본이 여전히 필요한 클러스터를 변경하기 전에 Cluster.clone()을(를) 호출하십시오 — 클론은 항목 목록을 복사하므로 별칭이 되지 않습니다.
  • 함수가 단일 값으로 둘 이상의 Cluster을 받아들이거나 반환해야 할 때 ClusterCollection을(를) 사용하십시오.
  • 이 클래스들은 일반적인 유틸리티이며 PDF 파싱 기능이 아닙니다 — 문서 데이터에서 DataPoint 값을 생성하기 위한 자체 로직과 함께 사용하십시오.

일반적인 문제

문제원인해결 방법
DataPoint.get_centroid()이(가) 예상치 못한 개수의 값을 가진 중심점을 생성합니다클러스터의 데이터 포인트가 DataPoint.value 리스트의 길이가 서로 다릅니다모든 DataPoint이 Cluster에 추가될 때 동일한 차원을 갖도록 하세요
Cluster.contains()이(가) 존재할 것으로 기대하는 값에 대해 False을(를) 반환합니다멤버십은 저장된 항목 객체와 직접 비교되므로, 동일한 이름과 값을 가진 별도로 생성된 두 DataPoint 인스턴스는 식별자 기반 조회에서 자동으로 동일하게 취급되지 않습니다같은 DataPoint 인스턴스를 재사용하거나, 멤버십을 가정하기 전에 DataPoint.name와 DataPoint.value로 비교하십시오
복제된 클러스터를 변형하면 원본도 변경됩니다Cluster.clone()가 건너뛰어졌으며, 복사되는 대신 동일한 Cluster 참조가 공유되었습니다호출자가 독립적인 복사가 필요할 때마다 먼저 Cluster.clone()를 호출하십시오

FAQ

Cluster와 ClusterCollection의 차이점은 무엇입니까?

Cluster는 하나의 그룹에 속하는 항목 목록—보통 DataPoint 인스턴스—을 보유합니다. ClusterCollection는 Cluster 객체 목록을 보유합니다: 개별 데이터 포인트가 아니라 클러스터를 함께 그룹화합니다.

DataPoint.get_centroid()가 제공된 클러스터를 수정합니까?

아니요. 제공된 Cluster에 이미 들어 있는 항목들을 읽고 중심점을 위한 새로운 DataPoint을 반환합니다; 원본 클러스터와 그 항목들은 변경되지 않은 채 남아 있습니다.

이 클러스터링 기능이 PDF 콘텐츠에만 특화되어 있나요?

No. DataPoint, Cluster, 그리고 ClusterCollection는 aspose_pdf 패키지에 포함된 일반적인 숫자 클러스터링 원시 타입입니다. 이들은 페이지, 텍스트 또는 기타 PDF 구조를 직접 읽지 않으며 — 오직 여러분이 제공한 값으로만 동작합니다.

왜 Cluster.empty()는 매번 같은 인스턴스를 반환하나요?

Cluster.empty()는 공유 싱글톤을 반환하므로, “no cluster"에 대한 반복 호출 시마다 새로운 객체를 할당하지 않습니다.


API Reference 요약

클래스/메서드설명
DataPoint숫자 좌표 목록을 보유한 명명된 점
DataPoint.name점의 식별 이름
DataPoint.value점의 숫자 좌표 목록
DataPoint.get_centroid()클러스터 내 모든 점의 좌표를 평균낸 새로운 DataPoint를 반환합니다
Cluster일반적으로 DataPoint 인스턴스로 이루어진 항목 그룹
Cluster.empty()공유된 빈 클러스터 싱글톤을 반환합니다
Cluster.contains()항목이 클러스터에 있는지 확인합니다
Cluster.clone()클러스터의 독립적인 복사본을 반환합니다
Cluster.count현재 클러스터에 있는 항목 수
ClusterCollection하나의 컬렉션으로 Cluster 인스턴스 목록을 래핑합니다

참조

 한국어