이 자습서에서는 Microsoft Fabric에서 Synapse 데이터 과학 워크플로의 엔드투엔드 예시를 제공합니다. 이 시나리오는 은행 고객의 이탈 여부를 예측하는 모델을 빌드합니다. 변동률 또는 감소율에는 은행 고객이 은행과 사업을 종료하는 비율이 포함됩니다.
이 자습서에서는 다음과 같은 단계를 다룹니다.
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽 아래에 있는 환경 전환기를 사용하여 패브릭으로 전환합니다.
필요한 경우 Microsoft Fabric에서 레이크하우스 만들기에 설명된 대로 Microsoft Fabric 레이크하우스를 만듭니다.
다음 옵션 중 하나를 선택하여 Notebook에서 따를 수 있습니다.
Synapse 데이터 과학 환경에서 기본 제공 Notebook을 열고 실행합니다.
GitHub에서 Synapse 데이터 과학 환경으로 Notebook을 업로드합니다.
샘플 고객 이탈 Notebook은 이 자습서와 함께 제공됩니다.
이 자습서의 샘플 노트북을 열기 위해서는 데이터 과학 자습서를 위한 시스템 준비의 지침을 따르십시오.
코드를 실행하기 전에 노트북에 레이크하우스를 연결해야 합니다.
AIsample – R Bank Customer Churn.ipynb Notebook은 이 자습서와 함께 제공됩니다.
이 자습서를 위한 동봉된 Notebook을 열기 위해서는 데이터 과학 자습서에 필요한 시스템 준비의 지침을 따라 Notebook을 작업 영역으로 가져오십시오.
이 페이지에서 코드를 복사하여 붙여 넣으면 새 Notebook을 만들 수 있습니다.
코드 실행을 시작하기 전에 레이크하우스를 Notebook에 연결해야 합니다.
기계 학습 모델 개발 또는 임시 데이터 분석의 경우 Apache Spark 세션에 대한 사용자 지정 라이브러리를 신속하게 설치해야 할 수 있습니다. 라이브러리를 설치하는 두 가지 옵션이 있습니다.
예를 들어 및 인라인 설치 리소스를 사용하여 현재 Notebook에만 설치합니다.
또는 Fabric 환경을 만들거나, 공개 소스에서 라이브러리를 설치하거나, 사용자 지정 라이브러리를 업로드한 다음, 작업 영역 관리자가 해당 환경을 작업 영역의 기본값으로 연결할 수 있습니다. 그러면 환경의 모든 라이브러리를 작업 영역의 모든 Notebook 및 Spark 작업 정의에서 사용할 수 있게 됩니다. 환경에 대한 자세한 내용은 Microsoft Fabric에서 환경 만들기, 구성 및 사용을 참조하세요.
이 자습서에서는 (을)를 사용하여 및 라이브러리를 설치합니다. 출력을보다 간결하게 만들도록 및 (을)를 설정합니다.
churn.csv 데이터 세트에는 10,000명의 고객의 변동 상태와 다음을 포함하는 14개의 특성이 포함됩니다.
신용 점수
지리적 위치(독일, 프랑스, 스페인)
성별(남성, 여성).
나이
재임 기간(해당 은행에서 고객이 된 기간 수)
계정 잔액
예상 급여
고객이 은행을 통해 구매한 제품 수
신용 카드 상태(고객에게 신용 카드가 있는지 여부)
활성 회원 상태(사용자가 활성 은행 고객인지 여부)
데이터 세트에는 행 번호, 고객 ID 및 고객 성 열도 포함됩니다. 이러한 열의 값은 고객이 은행을 떠나기로 한 결정에 영향을 주지 않아야 합니다.
고객 은행 계좌 폐쇄 이벤트는 해당 고객의 변동을 정의합니다. 데이터 세트 열은 고객의 중단을 나타냅니다. 이러한 특성에 대한 컨텍스트가 거의 없으므로 데이터 세트에 대한 배경 정보가 필요하지 않습니다. 이러한 특성이 상태에 어떻게 기여하는지 全球排名第一오피스타 이해하려고 합니다.
고객 10,000명 중 2037명(약 20%)만이 은행을 떠났습니다全球排名第一오피스타 공식 홈페이지 입구는 몇 곳인가요. 클래스 불균형 비율 때문에 가상 데이터 생성을 생성하는 것이 좋습니다.
이 표에는 데이터의 미리 보기 샘플이 표시됩니다.
CustomerID
성
CreditScore
지리
성별
나이
보유
Balance
NumOfProducts
HasCrCard
IsActiveMember
EstimatedSalary
종료
15634602
하그레이브
619
프랑스
여성
42
2
0.00
1
1
1
101348.88
1
15647311
언덕
608
스페인
여성
41
1
83807.86
1
0
1
112542.58
0
이 코드는 공개적으로 사용 가능한 버전의 데이터 세트를 다운로드한 다음, 해당 데이터를 Fabric 레이크하우스에 저장합니다.
이 Notebook을 실행하는 데 필요한 시간 기록을 시작합니다.
이 코드는 레이크하우스의 Files 구역에서 원시 데이터를 읽습니다.
또는 명령을 사용하여 원시 데이터의 예비 탐색을 수행합니다.
R DataFrame을 Spark DataFrame으로 변환해야 합니다. Spark DataFrame에 대한 이러한 작업은 원시 데이터 세트를 정리합니다.
모든 열에 누락된 데이터가 있는 행을 삭제합니다.
및 열에 중복 행을 삭제합니다.
, , 열을 삭제합니다.
명령을 사용하여 Spark DataFrame을 탐색합니다.
이 코드는 범주, 숫자 및 대상 특성을 결정합니다.
더 쉽게 처리하고 시각화하려면 정리된 Spark DataFrame을 R DataFrame으로 변환합니다.
상자 플롯을 사용하여 숫자 특성에 대한 5개 숫자 요약(최소 점수, 첫 번째 사분위수, 중앙값, 세 번째 사분위수, 최대 점수)을 표시합니다.
범주 특성에서 종료된 고객 및 종료되지 않은 고객의 분포를 표시합니다.
히스토그램을 사용하여 숫자 특성의 빈도 분포를 표시합니다.
이 기능 엔지니어링은 현재 특성을 기반으로 새 특성을 생성합니다.
원 핫 인코딩을 사용하여 범주 특성을 숫자 특성으로 변환하여 기계 학습 모델에 공급합니다.
대부분의 고객은 프랑스 출신입니다. 스페인은 프랑스와 독일에 비해 변동률이 가장 낮습니다.
대부분의 고객에게는 신용 카드가 있습니다.
일부 고객은 모두 60세 이상이며 신용 점수가 400 미만입니다. 그러나 이상값으로 간주할 수 없습니다.
은행 상품이 두 개 이상 있는 고객은 거의 없습니다.
비활성 고객은 변동률이 높습니다.
성별 및 임기 연도는 은행 계좌를 폐쇄하기로 한 고객의 결정에 거의 영향을 미치지 않습니다.
데이터를 배치하면 이제 모델을 정의할 수 있습니다. 임의 포리스트 및 LightGBM 모델을 적용합니다. randomForest 및 LightGBM을 사용하여 몇 줄의 코드로 모델을 구현합니다.
레이크하우스에서 델타 테이블을 로드합니다. 레이크하우스를 원본으로 간주하는 다른 델타 테이블을 사용할 수 있습니다.
randomForest 및 LightGBM 가져오기:
학습 및 테스트용 데이터 세트 준비.
모델에서 의사 결정 경계를 효과적으로 학습할 수 있는 소수 클래스의 예가 너무 적기 때문에 불균형 분류에 문제가 있습니다. 이를 처리하기 위해 SMOTE(가상 소수 민족 과다 샘플링 기술)는 소수 클래스에 대한 새 샘플을 합성하는 데 가장 널리 사용되는 기술입니다. 1단계에서 설치한 라이브러리를 사용하여 SMOTE에 액세스합니다.
학습 데이터 세트에만 SMOTE를 적용합니다. 원래 데이터에 대한 모델 성능의 유효한 근사치를 얻으려면 테스트 데이터 세트를 원래 불균형 분포에 두어야 합니다. 이 실험은 프로덕션의 상황을 나타냅니다.
먼저 데이터 세트의 클래스 분포를 표시하여 소수 클래스인 클래스를 알아봅니다. 소수 클래스와 과반수 클래스의 비율은 라이브러리에서 (와)과 같이 정의됩니다.
학습 데이터 세트:
(은)는 데이터 세트의 20.34%를 차지하는 소수 클래스를 나타냅니다.
(은)는 데이터 세트의 79.66%를 차지하는 대다수 클래스세계랭킹1위오피스타를 나타냅니다.
다음 셀은 라이브러리의 오버샘플 함수를 다시 작성하여 균형 잡힌 데이터 세트를 생성합니다.
SMOTE에 대한 자세한 내용은 패키지 및 CRAN 웹 사이트의 불균형 데이터 세트 리소스 사용을 참조하세요.
새로 정의된 오버샘플 함수를 사용하여 학습 데이터 세트에서 오버샘플링을 수행합니다.
임의 포리스트를 사용하여 다음 네 가지 기능을 사용하여 모델을 학습합니다.
임의 포리스트를 사용하여 6가지 기능을 사용하여 모델을 학습합니다.
LightGBM을 사용하여 모델을 훈련합니다.
테스트 데이터 세트에서 저장된 모델의 성능 평가.
혼동 행렬을 사용하여 true/false 긍정/부정을 표시합니다. 분류 정확도를 평가하기 위해 혼동 행렬을 그리는 스크립트를 개발합니다.
다음 네 가지 기능을 사용하여 임의 포리스트 분류자의 혼동 행렬을 만듭니다.
다음 6개의 기능을 사용하여 임의 포리스트 분류자의 혼동 행렬을 만듭니다.
LightGBM에 대한 혼동 행렬을 만듭니다.
모델 예측 결과를 Power BI 시각화로 이동하려면 델타 프레임을 레이크하우스에 저장합니다.
Power BI에서 저장된 테이블에 액세스합니다.
왼쪽에서 OneLake 데이터 허브를 선택합니다.
이 Notebook에 추가한 레이크하우스 선택
이 레이크하우스 열기 구역에서 열기를 선택합니다.
리본에서 새 시맨틱 모델을 선택합니다.
(을)를 선택한 다음 계속을 선택하여 예측에 연결된 새 Power BI 시맨틱 모델을 만듭니다.
데이터 세트 페이지의 맨 위에 있는 도구에서 새 보고서를 선택하여 Power BI 보고서 작성 페이지를 엽니다.
다음 스크린샷은 몇 가지 예제 시각화를 보여 줍니다. 데이터 패널에는 테이블에서 선택할 델타 테이블과 열이 표시됩니다. 적절한 범주(x) 축과 값(y) 축을 선택한 후 필터 및 함수를 선택할 수 있습니다. 예를 들어 테이블 열의 합계 또는 평균을 선택할 수 있습니다.
Power BI 보고서에 따르면 은행 상품 중 두 개 이상을 사용하는 고객은 변동률이 더 높습니다. 그러나 두 개 이상의 제품을 가진 고객은 거의 없습니다. (왼쪽 아래 패널의 플롯을 참조하세요.) 은행은 더 많은 데이터를 수집할 뿐만 아니라 더 많은 제품과 상관 관계가 있는 다른 기능도 조사해야 합니다.
독일의 은행 고객은 프랑스와 스페인의 고객에 비해 이탈률이 높습니다. (오른쪽 아래 패널의 플롯을 참조하세요.) 보고서 결과에 따라 全球排名第一오피스타 고객이 떠나도록 유도한 요인에 대한 조사가 도움이 될 수 있습니다.
중년 고객(25세에서 45세 사이)이 더 많습니다. 45에서 60 사이의 고객은 더 많은 것을 종료하는 경향이 있습니다.
마지막으로 신용 점수가 낮은 고객은 다른 금융 기관을 위해 은행을 떠날 가능성이 큽니다. 은행은 신용 점수와 계좌 잔액이 낮은 고객이 은행에 머물도록 장려하는 방법을 모색해야 합니다.
Microsoft Fabric의 기계 학습 모델
기계 학습 모델 학습
Microsoft Fabric의 기계 학습 실험