다음을 통해 공유


누락된 값(Analysis Services - 데이터 마이닝)

누락된 값을 올바르게 처리하는 것은 효과적인 모델링의 중요한 부분입니다. 이 섹션에서는 누락 값이 무엇인지 설명하고, 데이터 마이닝 구조 및 마이닝 모델을 빌드할 때 누락된 값을 사용할 수 있도록 Analysis Services에 제공된 기능을 설명합니다.

데이터 마이닝의 누락 값 정의

누락된 값은 다양한 항목을 의미합니다. 필드를 적용할 수 없거나, 이벤트가 발생하지 않았거나, 데이터를 사용할 수 없는 것일 수 있습니다. 데이터를 입력한 사람이 올바른 값을 알지 못했거나 필드가 채워지지 않았는지 신경 쓰지 않았을 수 있습니다.

그러나 누락된 값이 중요한 정보를 제공하는 많은 데이터 마이닝 시나리오가 있습니다. 누락된 값의 의미는 주로 컨텍스트에 따라 달라집니다. 예를 들어 청구서 목록의 날짜에 누락된 값은 직원 고용 날짜를 나타내는 열에 날짜가 없다는 의미와 크게 다릅니다. 일반적으로 Analysis Services는 누락된 값을 정보로 처리하고 누락된 값을 계산에 통합하도록 확률을 조정합니다. 이렇게 하면 모델의 균형이 조정되고 기존 사례에 너무 많은 가중치를 두지 않도록 할 수 있습니다.

따라서 Analysis Services는 누락된 값을 관리하고 계산하기 위한 두 가지 메커니즘을 제공합니다. 첫 번째 메서드는 마이닝 구조 수준에서 null 처리를 제어합니다. 두 번째 메서드는 각 알고리즘에 대한 구현마다 다르지만 일반적으로 null 값을 허용하는 모델에서 누락된 값을 처리하고 계산하는 방법을 정의합니다.

Null 값 처리 지정

데이터 원본에서 누락된 값은 null, 스프레드시트의 빈 셀, 값 N/A 또는 기타 코드 또는 9999와 같은 인공 값과 같은 여러 가지 방법으로 표시될 수 있습니다. 그러나 데이터 마이닝의 목적을 위해 null만 누락된 값으로 간주됩니다. 데이터에 null 대신 자리 표시자 값이 포함된 경우 모델의 결과에 영향을 줄 수 있으므로 가능한 경우 null로 바꾸거나 올바른 값을 유추해야 합니다. SQL Server Integration Services의 조회 변환 또는 데이터 프로파일러 작업 또는 Excel용 데이터 마이닝 Add-Ins 제공된 예제별 채우기 도구와 같이 적절한 값을 유추하고 채우는 데 사용할 수 있는 다양한 도구가 있습니다.

모델링하는 작업에서 열에 누락된 값이 없어야 한다고 지정하는 경우 마이닝 구조를 정의할 때 열에 모델링 플래그를 적용 NOT_NULL 해야 합니다. 이 플래그는 사례에 적절한 값이 없는 경우 처리가 실패했음을 나타냅니다. 모델을 처리할 때 이 오류가 발생하면 오류를 기록하고 모델에 제공된 데이터를 수정하는 단계를 수행할 수 있습니다.

누락 상태 계산

데이터 마이닝 알고리즘에 누락된 값은 정보를 제공하는 것입니다. 테이블의 경우 Missing 다른 상태와 마찬가지로 유효한 상태입니다. 또한 데이터 마이닝 모델은 다른 값을 사용하여 값이 누락되었는지 여부를 예측할 수 있습니다. 즉, 값이 누락되었다는 사실은 오류가 아닙니다.

마이닝 모델을 만들 때, 모든 불연속 열에 대한 Missing 상태가 모델에 자동으로 추가됩니다. 예를 들어, 입력 열 [Gender]에 남성과 여성 두 개의 가능한 값이 포함된 경우, 자동으로 세 번째 값이 추가되어 Missing 값을 나타냅니다. 또한 해당 열의 모든 값의 분포를 보여주는 히스토그램에는 항상 Missing 값을 가진 사례 수가 포함됩니다. Gender 열에 값이 누락되지 않은 경우 히스토그램은 0개 사례에서 누락된 상태를 발견했음을 보여 줍니다.

기본적으로 Missing 상태를 포함하는 이유는 데이터에 가능한 모든 값의 예가 없을 수 있기 때문입니다. 예가 없다는 이유만으로 특정 가능성을 모델에서 제외시키고 싶지 않으실 것입니다. 예를 들어 매장의 판매 데이터에 따르면 특정 제품을 구매한 모든 고객이 여성인 것으로 나타난 경우 여성만 제품을 구매할 수 있다고 예측하는 모델을 만들고 싶지 않을 것입니다. 대신 Analysis Services는 가능한 다른 상태를 수용하기 위한 방식으로, 추가로 알 수 없는 값에 대한 자리 표시자 Missing를 추가합니다.

예를 들어 다음 표에서는 Bike Buyer 자습서용으로 만든 의사 결정 트리 모델의 (All) 노드에 대한 값 분포를 보여 줍니다. 예제 시나리오에서 [Bike Buyer] 열은 예측 가능한 특성입니다. 여기서 1은 "예"를 나타내고 0은 "아니요"를 나타냅니다.

가치 경우
0 9296
1 9098
없어진 0

이 분포는 고객의 약 절반이 자전거를 구입했으며 절반은 구매하지 않은 것으로 표시됩니다. 이 특정 데이터 세트는 매우 깨끗합니다. 따라서 모든 사례에는 [Bike Buyer] 열에 값이 있고 값 수는 Missing 0입니다. 그러나 [Bike Buyer] 필드에 null이 있는 경우 Analysis Services는 해당 행을 값이 있는 사례 Missing 로 계산합니다.

입력이 연속 열인 경우, 모델은 속성에 대해 두 가지 가능한 상태, 즉 ExistingMissing를 계산합니다. 즉, 열에 일부 숫자 데이터 형식의 값이 포함되거나 값이 포함되지 않습니다. 값이 있는 경우 모델은 평균, 표준 편차 및 기타 의미 있는 통계를 계산합니다. 값이 없는 경우 모델은 골짜기 수를 Missing 제공하고 그에 따라 예측을 조정합니다. 예측을 조정하는 방법은 알고리즘에 따라 다르며 다음 섹션에 설명되어 있습니다.

비고

중첩 테이블의 특성에 대해 누락된 값은 정보를 제공하지 않습니다. 예를 들어 고객이 제품을 구입하지 않은 경우 중첩된 Products 테이블에는 해당 제품에 해당하는 행이 없으며 마이닝 모델은 누락된 제품에 대한 특성을 만들지 않습니다. 그러나 특정 제품을 구입하지 않은 고객에 관심이 있는 경우 모델 필터에서 NOT EXISTS 문을 사용하여 중첩 테이블에 제품이 존재하지 않는 경우 필터링되는 모델을 만들 수 있습니다. 자세한 내용은 마이닝 모델에 필터 적용을 참조하세요.

누락 상태에 대한 확률 조정

Analysis Services는 값 계산 외에도 데이터 집합 전체에서 모든 값의 확률을 계산합니다. Missing 값도 동일합니다. 예를 들어 다음 표에서는 이전 예제의 사례에 대한 확률을 보여 줍니다.

가치 경우 확률
0 9296 50.55%
1 9098 49.42%
없어진 0 0.03%

사례 수가 0인 경우 값의 Missing 확률이%0.03으로 계산되는 것이 이상해 보일 수 있습니다. 실제로 이 동작은 설계되었으며 모델이 알 수 없는 값을 정상적으로 처리할 수 있는 조정을 나타냅니다.

일반적으로 확률은 가능한 모든 사례로 나눈 유리한 사례로 계산됩니다. 이 예제에서 알고리즘은 특정 조건([Bike Buyer] = 1 또는 [Bike Buyer] = 0)을 충족하는 사례의 합계를 계산하고 해당 수를 총 행 수로 나눕니다. 그러나 사례를 고려하기 위해 Missing 가능한 모든 사례 수에 1이 추가됩니다. 결과적으로 알 수 없는 사례에 대한 확률은 더 이상 0이 아니라 매우 작은 숫자로, 상태가 불가능하고 불가능하지 않음을 나타냅니다.

작은 Missing 값을 추가해도 예측 변수의 결과가 변경되지는 않지만 기록 데이터에 가능한 모든 결과가 포함되지 않는 시나리오에서 더 나은 모델링이 가능합니다.

비고

데이터 마이닝 공급자는 누락된 값을 처리하는 방식이 다릅니다. 예를 들어 일부 공급자는 중첩 열에서 누락된 데이터가 스파스 표현이지만 중첩되지 않은 열에서 누락된 데이터가 임의로 누락되었다고 가정합니다.

모든 결과가 데이터에 지정되고 확률이 조정되지 않도록 하려는 경우 마이닝 구조의 열에 NOT_NULL 모델링 플래그를 설정해야 합니다.

비고

타사 플러그 인에서 얻은 사용자 지정 알고리즘을 비롯한 각 알고리즘은 누락된 값을 다르게 처리할 수 있습니다.

의사 결정 트리 모델의 누락 값 특수 처리

Microsoft 의사 결정 트리 알고리즘은 누락된 값의 확률을 다른 알고리즘과 다르게 계산합니다. 총 사례 수에 1을 추가하는 대신 의사 결정 트리 알고리즘은 약간 다른 수식을 사용하여 상태에 맞게 Missing 조정됩니다.

의사 결정 트리 모델에서 상태의 Missing 확률은 다음과 같이 계산됩니다.

상태확률 = (노드 사전 확률) * (상태 지원 + 1) / (노드 지원 + 전체 상태)

또한 SQL Server 2014 Analysis Services(SSAS)에서 의사 결정 트리 알고리즘은 알고리즘이 모델에 필터가 있는지 보정하는 데 도움이 되는 추가 조정을 제공하므로 학습 중에 많은 상태가 제외될 수 있습니다.

SQL Server 2014에서는 학습 중에는 상태가 존재하지만, 특정 노드에서 지원이 0인 경우에는 표준적인 방법으로 조정이 이루어집니다. 그러나 학습 중에 상태가 발생하지 않는 경우 알고리즘은 확률을 정확히 0으로 설정합니다. 이 조정은 상태뿐만 Missing 아니라 학습 데이터에 존재하지만 모델 필터링의 결과로 지원되지 않는 다른 상태에도 적용됩니다.

이 추가 조정은 다음 수식을 생성합니다.

StateProbability = 0.0(해당 상태가 학습 집합에서 0 지원되는 경우)

ELSE 상태 확률 = (노드 사전 확률) * (상태 지원 + 1) / (노드 지원 + 지원 수가 0이 아닌 총 상태)

이 조정의 순 효과는 트리의 안정성을 유지하는 것입니다.

다음 항목에서는 누락된 값을 처리하는 방법에 대한 자세한 정보를 제공합니다.

업무 링크
개별 모델 열에 플래그를 추가하여 누락 값 처리 제어 모델링 플래그 보기 또는 변경(데이터 마이닝)
마이닝 모델의 속성을 설정하여 누락 값 처리 제어 마이닝 모델의 속성 변경
DMX에서 모델링 플래그를 지정하는 방법 알아보기 모델링 지표(DMX)
마이닝 구조에서 누락된 값을 처리하는 방식 변경 마이닝 구조의 속성 변경

또한 참조하십시오

마이닝 모델 콘텐츠(분석 서비스 - 데이터 마이닝)
모델링 플래그(데이터 마이닝)