{{위키데이터 속성 추적}}
{{기계 학습}}
'''데이터 정제'''(data cleansing)는 레코드 세트, [[테이블 (데이터베이스)|테이블]] 또는 [[데이터베이스]] 에서 손상되거나 부정확한 레코드 를 감지 및 수정(또는 제거)하는 프로세스이며 데이터의 불완전하거나 부정확하거나 부정확하거나 관련 없는 부분을 식별한 다음 교체, 수정, 또는 더럽 거나 거친 데이터를 삭제한다.  데이터 정리는 [[데이터 랭글링]] 도구와 [[인터랙티비티|대화식]]으로 수행되거나 [[스크립트 언어|스크립팅]]<ref>{{웹 인용|url=https://www.sisense.com/glossary/data-cleaning/|제목=What is Data Cleaning?|웹사이트=Sisense|언어=en-US|보존url=https://web.archive.org/web/20211017071925/https://www.sisense.com/glossary/data-cleaning/|보존날짜=2021-10-17|url-status=dead|확인날짜=2021-10-17}}</ref> 또는 데이터 품질 방화벽 을 통한 [[일괄 처리]]로 수행될 수 있다.

정리 후 [[자료 집합|데이터]] 세트는 시스템의 다른 유사한 데이터 세트와 일치해야 한다. 감지되거나 제거된 불일치는 원래 사용자 입력 오류, 전송 또는 저장의 손상 또는 다른 저장소에 있는 유사한 엔터티의 다른 [[데이터 사전]] 정의로 인해 발생할 수 있다. 데이터 정리는 데이터 배치가 아닌 입력 시 시스템에서 데이터가 거부되고 입력 시 수행된다는 점에서 데이터 유효성 검사와 다르다.

데이터 정리의 실제 프로세스에는 [[오식|인쇄상의 오류]]를 제거하거나 알려진 엔터티 목록에 대해 값을 확인하고 수정하는 작업이 포함될 수 있다. 유효성 검사는 엄격할 수 있다(예: 유효한 [[우편번호|우편 번호]] 가 없는 주소 거부) 또는 [[퍼지 논리|유사]] 하거나 대략적인 문자열 일치 (예: 기존의 알려진 레코드와 부분적으로 일치하는 레코드 수정). 일부 데이터 정리 솔루션은 검증된 데이터 세트를 교차 확인하여 데이터를 정리한다. 일반적인 데이터 정리 방법은 관련 정보를 추가하여 데이터를 보다 완전하게 만드는 데이터 향상이다. 예를 들어, 해당 주소와 관련된 전화번호로 주소를 추가한다. 데이터 정리에는 "다양한 파일 형식, 명명 규칙 및 열"<ref>{{웹 인용|url=https://datorama.com/blog/2017/04/14/data-101-what-is-data-harmonization/|제목=Data 101: What is Data Harmonization?|날짜=14 April 2017|웹사이트=Datorama|언어=en|확인날짜=14 August 2019|archive-date=2021-10-24|archive-url=https://web.archive.org/web/20211024062426/https://datorama.com/blog/2017/04/14/data-101-what-is-data-harmonization/|url-status=}}</ref>의 데이터를 모아 하나의 응집력 있는 데이터 세트로 변환하는 프로세스인 데이터의 [[표준 형식|조화]] (또는 정규화)가 포함될 수도 있다. 간단한 예는 약어("st, rd 등"을 "street, road, etcetera"로 확장)이다.

== 데이터 품질 ==
고품질 데이터는 일련의 품질 기준을 통과해야 한다. 여기에는 다음이 포함된다.

* '''유효성''' : 측정값이 정의된 비즈니스 규칙 또는 제약 조건을 준수하는 정도이다( 유효성(통계) 참조). 최신 데이터베이스 기술을 사용하여 데이터 캡처 시스템을 설계하는 경우 유효성을 보장하기가 매우 쉽다. 유효하지 않은 데이터는 주로 레거시 컨텍스트(소프트웨어에서 제약 조건이 구현되지 않은 경우) 또는 부적절한 데이터 캡처 기술이 사용된 경우(예: 스프레드시트, 여기서 셀 유효성 검사를 사용하지 않는 경우 사용자가 셀에 입력하기로 선택한 항목을 제한하기가 매우 어렵다. 데이터 제약 조건은 다음 범주에 속한다.
** ''데이터 유형 제약'' - 예를 들어, 특정 열의 값은 부울, 숫자(정수 또는 실수), 날짜 등과 같은 특정 데이터 유형이어야 한다.
** ''범위 제약:'' 일반적으로 숫자 또는 날짜는 특정 범위 내에 있어야 한다. 즉, 최소 및 최대 허용 값이 있다.
** ''필수 제약 조건:'' 특정 열은 비워둘 수 없다.
** ''고유 제약 조건:'' 필드 또는 필드 조합은 데이터 세트 전체에서 고유해야 한다. 예를 들어, 두 사람이 동일한 사회 보장 번호를 가질 수 없다.
** ''Set-Membership Constraints'' : 열 값은 개별 값 또는 코드 집합에서 가져온다. 예를 들어, 사람의 성별은 여성, 남성 또는 논바이너리일 수 있다.
** ''외래 키 제약 조건'' : 이것은 집합 구성원의 보다 일반적인 경우이다. 열의 값 집합은 고유한 값을 포함하는 다른 테이블의 열에 정의된다. 예를 들어, 미국 납세자 데이터베이스에서 "주" 열은 미국에서 정의된 주 또는 영토 중 하나에 속해야 한다. 허용 가능한 주/영토 집합은 별도의 주 테이블에 기록된다. [[외래 키|외래 키라]]는 용어는 관계형 데이터베이스 용어에서 차용되었다.
** ''정규식 패턴'' : 경우에 따라 텍스트 필드는 이러한 방식으로 유효성을 검사해야 한다. 예를 들어, 전화번호는 (999) 999-9999 패턴이 필요하다.
** ''교차 필드 유효성 검사'' : 여러 필드를 사용하는 특정 조건이 유지되어야 한다. 예를 들어, 검사실 의학에서 차등 백혈구 수의 구성 요소 합계는 100과 같아야 한다(모두 백분율이므로). 병원 데이터베이스에서 환자의 퇴원일은 입원일보다 이전일 수 없다.
* '''정확도''' : 표준 또는 실제 값에 대한 측정의 일치 정도 - [[정확도와 정밀도|정확도 및 정밀도]] 참조. 일반적인 경우 데이터 정리를 통해 정확성을 달성하기는 매우 어렵다. 왜냐하면 진정한 가치가 포함된 외부 데이터 소스에 액세스해야 하기 때문이다. 이러한 "황금 표준" 데이터는 종종 사용할 수 없다. 우편 번호를 지리적 위치(도시 및 주)와 일치시키고 이러한 우편 번호 내의 거리 주소가 실제로 존재하는지 확인하는 데 도움이 되는 외부 데이터베이스를 사용하여 일부 정리 컨텍스트, 특히 고객 연락처 데이터에서 정확성이 달성되었다.
* '''완전성''' : 필요한 모든 조치가 알려진 정도. 불완전성은 데이터 정리 방법으로 수정하는 것이 거의 불가능하다. 문제의 데이터가 처음 기록될 때 캡처되지 않은 사실을 유추할 수 없다. (예를 들어 인터뷰 데이터와 같은 일부 상황에서는 데이터의 원래 소스로 돌아가서 불완전성을 수정하는 것이 가능할 수 있다. 즉, 주제를 다시 인터뷰한다. 그러나 이것조차도 회상 문제로 인해 성공을 보장하지 않다. 음식 소비에 대한 데이터를 수집하기 위한 인터뷰에서 6개월 전에 무엇을 먹었는지 정확히 기억하는 사람은 아무도 없을 것이다. 특정 열이 비어 있어서는 안 된다고 주장하는 시스템의 경우 "알 수 없음" 또는 "누락됨"을 나타내는 값을 지정하여 문제를 해결할 수 있지만 기본값을 제공한다고 해서 데이터가 완료되었음을 의미하지는 않다. . )
* '''일관성''' : 측정값 집합이 시스템 전체에서 동등한 정도이다( [[무모순적 이론|일관성]] 참조). 데이터 세트의 두 데이터 항목이 서로 모순될 때 불일치가 발생한다. 예를 들어, 고객이 두 개의 다른 시스템에 두 개의 다른 현재 주소를 가지고 있는 것으로 기록되면 그 중 하나만 정확할 수 있다. 불일치를 수정하는 것이 항상 가능한 것은 아니다. 다양한 전략이 필요하다. 예를 들어, 어떤 데이터가 더 최근에 기록되었는지, 어떤 데이터 소스가 가장 신뢰할 수 있는지 결정하거나(후자의 지식은 특정 조직에 따라 다를 수 있음) 단순히 두 데이터 항목을 모두 테스트하여 진실을 찾다(예: 고객에게 전화 걸기).
* '''균일성''' : 모든 시스템에서 동일한 측정 단위를 사용하여 설정된 데이터 측정값이 지정되는 정도이다( 측정 [[측정 단위|단위]] 참조). 다른 로케일에서 풀링된 데이터 세트에서 무게는 파운드 또는 킬로로 기록될 수 있으며 산술 변환을 사용하여 단일 측정값으로 변환되어야 한다.

'''무결성'''이라는 용어는 정확성, 일관성 및 유효성 검사의 일부 측면을 포함하지만( [[데이터 무결성]] 참조), 충분히 구체적이지 않기 때문에 데이터 정리 컨텍스트에서 그 자체로 거의 사용되지 않다. (예를 들어, "[[참조 무결성]]"은 위의 외래 키 제약 조건의 시행을 나타내는 데 사용되는 용어이다. )

== 프로세스 ==
* '''데이터 감사''' : [[통계학|통계]] 및 데이터베이스 방법을 사용하여 데이터를 감사하여 이상과 모순을 감지한다. 이는 결국 이상과 그 위치의 특성을 나타낸다. 여러 상용 소프트웨어 패키지를 사용하면 다양한 종류의 제약 조건을 지정한 다음(예: JavaScript 또는 Visual Basic과 같은 표준 프로그래밍 언어의 문법을 준수하는 문법을 사용하여) 이러한 제약 조건의 위반에 대해 데이터를 검사하는 코드를 생성할 수 있다. 이 프로세스는 아래 글머리 기호 "워크플로 사양" 및 "워크플로 실행"에서 참조된다. 고급 정리 소프트웨어에 액세스할 수 없는 사용자의 경우 Microsoft Access 또는 File Maker Pro와 같은 마이크로컴퓨터 데이터베이스 패키지를 사용하면 대부분의 경우 프로그래밍이 거의 또는 전혀 필요하지 않고 대화식으로 제약 조건별로 이러한 검사를 수행할 수 있다.
* '''워크플로 사양''' : 이상 탐지 및 제거는 워크플로로 알려진 데이터에 대한 일련의 작업에 의해 수행된다. 이는 데이터를 감사하는 과정을 거쳐 지정되며, 고품질 데이터의 최종 결과물을 달성하는 데 중요하다. 적절한 워크플로를 달성하려면 데이터의 이상 및 오류 원인을 면밀히 고려해야 한다.
* '''워크플로 실행''' : 이 단계에서는 워크플로의 사양이 완료되고 정확성이 검증된 후 실행된다. 워크플로의 구현은 데이터 정리 작업을 실행하는 데 계산 비용이 많이 들기 때문에 불가피하게 절충을 야기하는 대규모 데이터 집합에서도 효율적이어야 한다.
* '''후''' '''처리 및 제어''' : 클렌징 워크플로 실행 후 결과를 검사하여 정확성을 확인한다. 워크플로 실행 중에 수정할 수 없는 데이터는 가능하면 수동으로 수정한다. 그 결과 추가 워크플로의 사양이 자동 처리를 통해 데이터를 추가로 정리할 수 있도록 데이터를 다시 감사하는 데이터 정리 프로세스의 새로운 주기가 생성된다.

== 체계 ==
이 시스템의 필수 작업은 더티 데이터 를 수정하는 것과 소스 프로덕션 시스템의 원본 데이터에 최대한 가깝게 데이터를 유지하는 것 사이에서 적절한 균형을 찾는 것이다. 이것은 [[추출, 변환, 적재|추출, 변환, 로드]] 설계자의 도전과제이다. 시스템은 [[데이터 웨어하우스]] 에서 데이터를 정리하고 품질 이벤트를 기록하며 데이터 품질을 측정/제어할 수 있는 아키텍처를 제공해야 한다. 좋은 시작은 데이터 정리 시스템의 요구되는 복잡성을 정의하고 소스 시스템의 현재 데이터 품질에 대한 아이디어를 제공하는 데 도움이 되는 철저한 데이터 프로파일링 분석을 수행하는 것이다.

== 같이 보기 ==
* [[데이터 마이닝]]
* [[데이터 관리]]
== 각주 ==
{{각주}}

{{데이터}}

[[분류:비즈니스 인텔리전스]]
[[분류:데이터 품질]]