로지스틱 회귀 모델 쿼리(Analysis Services - 데이터 마이닝)

데이터 마이닝 모델에 대한 쿼리를 작성할 때 분석 중에 발견된 패턴에 대한 세부 정보를 제공하는 내용 쿼리를 작성하거나, 모델의 패턴을 사용하여 새 데이터를 사용한 예측을 만드는 예측 쿼리를 작성할 수 있습니다.

이 섹션에서는 Microsoft 로지스틱 회귀 알고리즘을 기반으로 하는 모델에 대해 쿼리를 만드는 방법을 설명합니다.

내용 쿼리

데이터 마이닝 스키마 행 집합을 사용하여 모델 매개 변수 검색

DMX를 사용하여 모델에 대한 추가 정보 찾기

예측 쿼리

연속 값에 대한 예측 만들기

불연속 값에 대한 예측 만들기

로지스틱 회귀 모델 정보 찾기

로지스틱 회귀 모델은 Microsoft 신경망 알고리즘과 특수한 매개 변수 집합을 사용하여 만듭니다. 따라서 로지스틱 회귀 모델은 신경망 모델과 동일한 정보를 일부 포함하지만 신경망 모델보다는 덜 복잡합니다. 모델 콘텐츠의 구조와 노드 유형에 따라 저장되는 정보의 종류를 이해하려면 로지스틱 회귀 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하십시오.

중급 데이터 마이닝 자습서의 5단원: 신경망 및 로지스틱 회귀 모델 작성(중급 데이터 마이닝 자습서) 섹션에서 설명하는 대로 로지스틱 회귀 모델을 만들어 쿼리 시나리오를 연습할 수 있습니다.

또한 기본 데이터 마이닝 자습서에서 제공하는 Targeted Mailing 마이닝 구조도 사용할 수 있습니다. 그런 후에 다음 DMX 스크립트를 실행하여 로지스틱 회귀 모델을 추가합니다.

ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression

예제 쿼리 1: 데이터 마이닝 스키마 행 집합을 사용하여 모델 매개 변수 검색

데이터 마이닝 스키마 행 집합을 쿼리하면 모델이 만들어진 날짜, 모델이 마지막으로 처리된 날짜, 모델의 기반이 되는 마이닝 구조의 이름, 예측 가능한 특성으로 사용된 열 이름 등 모델에 대한 메타데이터를 찾을 수 있습니다. 다음 예에서는 모델을 처음 만들 때 사용한 매개 변수와 함께 모델의 이름, 유형 및 작성 날짜를 반환합니다.

SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS 
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'

예 결과:

MODEL_NAME

SERVICE_NAME

DATE_CREATED

MINING_PARAMETERS

Call Center_LR

Microsoft_Logistic_Regression

04/07/2009 20:38:33

HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000

맨 위로 이동

예제 쿼리 2: DMX를 사용하여 모델에 대한 추가 정보 찾기

다음 쿼리에서는 로지스틱 회귀 모델에 대한 몇 가지 기본 정보를 반환합니다. 로지스틱 회귀 모델은 입력으로 사용된 값을 설명하는 한계 통계 노드(NODE_TYPE = 24)가 있다는 점을 비롯하여 여러 면에서 신경망 모델과 비슷합니다. 이 예제 쿼리에서는 Targeted Mailing 모델을 사용하며 NODE_DISTRIBUTION이라는 중첩 테이블에서 값을 검색해 가능한 모든 입력의 값을 가져옵니다.

SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT 

일부 결과:

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VARIANCE

t.VALUETYPE

Age

Missing

0

0

0

1

Age

45.43491192

17484

1

126.9544114

3

Bike Buyer

Missing

0

0

0

1

Bike Buyer

0

8869

0.507263784

0

4

Bike Buyer

1

8615

0.492736216

0

4

Commute Distance

Missing

0

0

0

1

Commute Distance

5-10 Miles

3033

0.173472889

0

4

실제 쿼리는 보다 많은 행을 반환하지만 이 예제에서는 입력에 대해 제공된 정보 유형을 보여 줍니다. 예를 들어 불연속 값에 가능한 각 값은 테이블에 나열되지만 연속 입력은 분할됩니다. marginal statistics node의 정보를 사용하는 방법은 로지스틱 회귀 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하십시오.

[!참고]

이 결과는 보기 쉽도록 평면화되었지만 사용 중인 공급자가 계층적 행 집합을 지원하는 경우에는 중첩 테이블을 단일 열에 반환할 수 있습니다. 자세한 내용은 OLE DB Programmer's Guide의 계층적 행 집합(Hierarchical Rowsets)을 참조하십시오.

맨 위로 이동

로지스틱 회귀 모델에서 예측 만들기

모든 종류의 마이닝 모델에 Predict(DMX) 함수를 사용하여 새 데이터를 제공하고 예측을 만들 수 있습니다. 함수를 사용하여 예측이 올바를 확률 등 예측에 대한 추가 정보를 반환할 수도 있습니다. 이 섹션에서는 로지스틱 회귀 모델에 대한 예측 쿼리의 몇 가지 예를 제공합니다.

예제 쿼리 3: 연속 값에 대한 예측 만들기

로지스틱 회귀에서는 입력 및 예측 모두에 연속 특성을 사용할 수 있으므로 데이터에 포함된 다양한 요소와 상관 관계가 있는 모델을 쉽게 만들 수 있습니다. 예측 쿼리를 사용하여 이러한 요소 간의 관계를 탐색할 수 있습니다.

다음 예제 쿼리는 Call Center 모델을 기반으로 하며 금요일 오전 근무조의 서비스 등급을 예측하는 단일 쿼리를 만듭니다. PredictHistogram(DMX) 함수는 예측 값의 유효성을 이해하는 데 관련된 통계가 들어 있는 중첩 테이블을 반환합니다.

SELECT
  Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
  PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
  [Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
  'AM' AS [Shift]) AS t

예 결과:

Predicted Service Grade

Results

0.102601830123659

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.10260183012365983.02325581395350.98837209302325600.001205526606000870.034720694203902
0.9767441860465120.01162790697674420.011627906976744200

중첩 NODE_DISTRIBUTION 테이블의 확률, 지지도 및 표준 편차 값에 대한 자세한 내용은 로지스틱 회귀 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하십시오.

맨 위로 이동

예제 쿼리 4: 불연속 값에 대한 예측 만들기

로지스틱 회귀는 일반적으로 이진 결과에 영향을 주는 요소를 분석하려는 경우 사용됩니다. 중급 자습서에서 사용된 원래 모델은 Service Grade라는 연속 값을 예측하지만, 실제 환경에서는 서비스 등급이 불연속적인 목표 값을 만족하는지 여부를 예측해야 합니다. 또는 연속 값을 사용하여 예측을 출력한 후에 예측된 출력을 Good, Fair 또는 Poor로 그룹화하는 방법도 있습니다.

다음 예제에서는 예측 가능한 특성의 그룹화 방식을 변경하는 방법을 보여 줍니다. 이렇게 하려면 마이닝 구조의 복사본을 만든 후 대상 열의 분할 메서드를 변경합니다. 다음 절차에서는 콜 센터 데이터에 있는 Service Grade 값의 그룹화를 변경하는 방법을 설명합니다.

콜 센터 마이닝 구조 및 모델의 분할된 버전을 만들려면

  1. Business Intelligence Development Studio의 솔루션 탐색기에서 마이닝 구조를 확장합니다.

  2. Call Center.dmm을 마우스 오른쪽 단추로 클릭하고 복사를 선택합니다.

  3. 마이닝 구조를 마우스 오른쪽 단추로 클릭하고 붙여넣기를 선택합니다. Call Center 1이라는 새 마이닝 구조가 추가됩니다.

  4. 새 마이닝 구조를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택합니다. Call Center Discretized라는 새 이름을 입력합니다.

  5. 새 마이닝 구조를 두 번 클릭하여 디자이너에서 엽니다. 모든 마이닝 모델이 복사되고 해당 확장명이 모두 1인지 확인합니다. 현재는 이름을 그대로 둡니다.

  6. 마이닝 구조 탭에서 Service Grade에 대한 열을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  7. Content 속성을 Continuous에서 Discretized로 변경합니다. DiscretizationMethod 속성을 Clusters로 변경합니다. Discretization BucketCount에 대해 3을 입력합니다.

    [!참고]

    이러한 매개 변수는 프로세스 설명용으로만 사용되며 올바른 모델을 생성할 필요는 없습니다.

  8. 마이닝 모델 메뉴에서 마이닝 구조 및 모든 모델 처리를 선택합니다.

다음 예제 쿼리는 이 분할된 모델을 기반으로 하며 각 예측된 결과에 대한 확률과 함께 지정된 요일에 대한 서비스 등급을 예측합니다.

SELECT
  (PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
  [Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t  

예상 결과:

Predictions

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.1087271838312535.72465047706410.4252934580602870.017016836003029300
0.0585576923062531.70988808007030.3774986676198850.02088202006045400
0.17016949152515.61091598832020.1858442379561920.066138657138604900
0.9545454545454550.01136363636363640.011363636363636400

예측된 결과는 지정한 대로 세 개의 범주로 그룹화되었습니다. 그러나 이러한 그룹화는 비즈니스 목표로 설정할 수 있는 임의의 값이 아닌 데이터에 있는 실제 값의 클러스터링을 기반으로 합니다.

맨 위로 이동

예측 함수 목록

모든 Microsoft 알고리즘은 공통 함수 집합을 지원합니다. 그러나 Microsoft 로지스틱 회귀 알고리즘은 다음 표에 나열된 추가 함수도 지원합니다.

모든 Microsoft 알고리즘에 공통된 함수 목록은 쿼리 유형에 대한 함수 매핑(DMX)을 참조하십시오. 특정 함수의 구문은 DMX(Data Mining Extensions) 함수 참조를 참조하십시오.

[!참고]

신경망 및 로지스틱 회귀 모델의 경우 PredictSupport(DMX) 함수는 모델 전체에 대한 학습 집합의 크기를 나타내는 단일 값을 반환합니다.