apple-aiml-research/ml-hierarchical-confusion-matrix
Neo: Hierarchical Confusion Matrix Visualization (CHI 2022)
Neo – 계층적 혼동 행렬
무엇인가요 – 계층적 및 다중 출력 클래스 레이블을 처리할 수 있는 인터랙티브한 혼동 행렬 시각화를 웹 페이지에 삽입할 수 있는 JavaScript 라이브러리입니다. 연구 논문 "Neo: Generalizing Confusion Matrix Visualization to Hierarchical and Multi-Output Labels" (CHI 2022) 에서 개발되었습니다.
왜 중요한가요 – 기존 혼동 행렬은 평탄한 클래스 목록을 전제로 합니다. 많은 현대 모델은 구조화된 레이블을 예측합니다 (예: fruit:citrus:lemon 또는 fruit:apple, taste:sour 와 같은 다중 속성). Neo를 사용하면 계층의 어느 수준에서든 오류를 탐색하고, 카운트를 재정규화하며, 시각화를 내보낼 수 있어 모델 진단이 훨씬 풍부해집니다.
사용 방법
- 설치는 npm 또는 yarn을 통해 수행합니다:
npm install --save @apple/hierarchical-confusion-matrix # 또는 yarn add @apple/hierarchical-confusion-matrix - 모듈을 가져오고
confMat.embed(containerId, spec, confusions)를 호출합니다. 여기서:spec은 클래스 계층을 설명합니다 (예:{ classes: ['root'] }).confusions는{ actual: [...], observed: [...], count: N }의 객체 배열입니다. 라이브러리는 네 가지 형식을 이해합니다 – 일반형, 계층형 (:로 레벨을 구분), 다중 출력형 (,로 독립된 레이블 그룹을 구분), 그리고 둘의 조합.
- 대안 – 스크립트 태그를 선호하는 경우, 리포지토리에서
yarn install을 실행하고 컴파일된public/confMat.js를 사이트에 복사한 후, README의 HTML 예제와 동일하게 삽입합니다.
데이터 형식 – 각 항목은 특정 실제 레이블 세트를 가진 인스턴스가 어떤 관측된 레이블 세트로 예측되었는지의 수 (count)를 기록합니다. README에는 다음 예제 JSON 스니펫이 제공됩니다:
- 단순 클래스 혼동 (
fruit:lemon→fruit:apple). - 계층적 혼동 (
fruit:citrus:lemon→fruit:pome:apple). - 다중 출력 혼동 (
fruit:lemon, taste:sweet→fruit:apple, taste:sour). - 계층적 + 다중 출력 혼동 조합.
개발 – 리포지토리는 일반적인 JavaScript 툴체인을 제공합니다:
yarn build– TypeScript 소스를 컴파일합니다.yarn dev– 빠른 반복 개발을 위한 로컬 개발 서버를 실행합니다.yarn test:unit– 단위 테스트를 실행합니다.yarn lint– 코드 스타일을 검사하고 자동 수정합니다.
데모 보기 – 라이브 데모는 https://apple.github.io/ml-hierarchical-confusion-matrix/ 에 호스팅되어 있으며, README에 짧은 YouTube 워크스루 링크가 포함되어 있습니다.
인용 – Neo를 논문에 사용할 경우, CHI 2022 논문을 인용하세요 (BibTeX 제공됨).
라이선스 – 코드는 리포지토리의 LICENSE 파일(애플의 오픈소스 조건)에 따라 배포됩니다.
- 위 모든 세부 정보는 리포지토리의 README에서 직접 가져온 것이며, 추가 기능은 추측되지 않았습니다.*
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트