본문으로 건너뛰기
버전: docs v25.02

Graph-powered Classification/Regression (GCR)

Updated 2024.05.17

What is Graph-powered Classification/Regression (GCR)?  

GCR은 데이터 사이언스 분야에서 널리 사용되는 머신러닝 과제인 분류 (classification)와 회귀 (regression)를 다루는 AI content입니다. 하지만, 기존의 분류/회귀 알고리즘들과는 달리 GCR은 graph representation learning 기술을 통해 주어진 데이터에 포함된 정보를 더 잘 학습할 수 있기 때문에 보다 개선된 예측 성능을 발휘합니다.

Graph representation learning은 주어진 데이터를 노드와 엣지로 구성된 그래프로 표현한 뒤, 그래프 내에서 얼마나 유사한 연결 양상을 보이는지에 따라서 각각의 데이터 값들을 머신러닝 알고리즘이 학습할 수 있는 수치값 즉, 벡터로 변환해 주는 기술입니다. 다시 말해서 원본 데이터를 머신러닝 알고리즘이 더 잘 학습할 수 있게끔 데이터에 포함된 유용한 정보들이 더 잘 드러나는 형태로 바꿔주는 일종의 피쳐 엔지니어링 기술로서, 그 과정에서 노드로 표현되는 데이터의 값들 뿐만이 아니라 엣지로 표현되는 데이터 값들 간의 관계까지 이용할 수 있어 머신러닝 알고리즘이 더 많은 유용한 정보를 이용해 학습될 수 있도록 도와줍니다.

이렇게 graph representation learning 즉, 그래프 임베딩 기술에 힘입어 성능이 개선된 머신러닝 알고리즘을 graph-powered 머신러닝 알고리즘이라고 부르며, 이런 알고리즘을 이용하는 데이터 사이언스를 그래프 데이터사이언스라고 합니다. GCR은 분류/회귀 용 머신러닝 알고리즘에 graph embedding 기술을 더하여 그 성능을 향상시킨 그래프 데이터사이언스 AI content로서, 'key features' 항목에 설명되어 있듯이 누구나 쉽고 빠르게 또한 제한된 리소스 환경에서도 그래프 데이터사이언스를 적용할 수 있도록 혁신적인 기술들이 적용되어 있습니다.



When to use Graph-powered Classification/Regression (GCR)?

GCR은 TCR (Tabular Classification/Regression) AI content와 동일하게 tabular 데이터를 입력으로 하는 다양한 분류 및 회귀 모델링에 사용되지만, 결측치가 있는 경우에도 별도의 전처리 없이 적용할 수 있습니다. 보다 구체적인 적용 분야의 예는 아래와 같습니다.

  • 금융: 고객의 신용 등급 분류, 회사 부도 예측 등에 사용됩니다. 예를 들어, 고객의 개인 정보, 거래 내역, 신용 내역 등을 변수로 사용하고 고객의 신용 등급을 나타내는 라벨 컬럼이 있으면 고객의 신용 등급을 분류하는 모델을 만들 수 있습니다. 또는, 회사의 재무 정보, 시장 동향 등을 분석하여 부도를 예측하는 회귀 모델을 만들 수 있습니다.
  • 의료: 환자의 의료 기록, 유전자 정보, 생체 신호 등을 입력으로 사용하여 특정 질병(예: 암, 당뇨병 등)의 유무를 분류하는 모델을 만들 수 있습니다. 이는 질병의 조기 발견과 치료에 큰 도움이 됩니다.
  • 마케팅: 고객 세분화 분류, 고객 이탈 예측, 광고 효과 예측 등에 사용됩니다. 예를 들어, 고객의 구매 내역, 웹사이트 방문 기록, 개인 정보 등을 변수로 사용하고 고객 별 그룹 라벨 데이터가 존재하면 고객의 그룹을 분류하는 모델을 만들 수 있습니다. 이는 고객 관리 및 마케팅 전략 수립에 활용될 수 있습니다.
  • 공공 분야: 범죄 예측, 교통량 예측, 선거 결과 예측 등에 사용됩니다. 예를 들어, 지역의 인구 통계, 과거 범죄 기록, 경제 상황 등을 입력으로 사용하여 특정 지역의 범죄 발생 가능성을 분류하는 모델을 만들 수 있습니다.

아래는 GCR을 적용한 다양한 실제 사례 중 한 가지입니다.

MQL 지수

MQL (Marketing Qualified Lead)이란 브랜드의 마케팅 활동으로 제공된 내용에 관심을 보였거나 혹은 다른 잠재 고객보다 고객으로 전환될 가능성이 높은 잠재 고객입니다. 이 적용 사례에서 내방 고객들의 다양한 반응들과 추후에 updated된 계약 성사 여부가 테이블로 정리되어 GCR이 학습하기 위한 features와 label로 사용되었습니다. 이 때, 고객들이 모든 항목에 대해 반응하지 않거나 고객에게 제시되는 질문 항목들이 바뀔 수 있으므로 데이터에는 결측치가 존재하며 고객의 응답이 대개 범주형이지만, GCR은 별도의 결측치 보완이나 범주형 데이터의 수치화 없이 적용될 수 있었으며, 데이터 간의 관계를 활용하는 graph representation learning에 힘입어 보다 정확한 모델링이 가능하였습니다.



Key Features

그래프 데이터사이언스 기반의 높은 예측 정확도 및 결측치/범주형 데이터의 처리 용이성

GCR은 각 샘플을 구성하는 인자 간의 연결 양상(토폴로지)이 샘플의 값(label 또는 value)을 나타내게 만드는 그래프 데이터사이언스 기술이 적용되어 있습니다. 인자들의 값뿐만 아니라 관계 정보를 모델링에 활용하여 일반적인 ML 모델 대비 더 높은 예측 정확도를 제공합니다.   한편, 노드 (인자들의 값)와 엣지 (인자들 간 관계)가 상이한 토폴로지들도 동등 비교가 가능한 그래프 데이터사이언스의 특성에 의해 샘플에 결측치나 범주형 인자값이 포함되어 있어도 별도의 전처리가 필요치 않습니다.

제한된 메모리와 CPU 환경에 적용 가능한 실용적인 그래프 데이터사이언스 컨텐츠

그래프 데이터사이언스가 적용되면 인자 간의 관계 정보를 추가로 저장하고 처리해야 하므로 일반적인 ML모델보다 메모리와 CPU를 더 많이 요구하게 되는 문제가 있습니다. 하지만, GCR은 graph partitioning, inductive inference, 그리고 XAI 경량화 기술을 통해 메모리와 CPU가 제한적인 환경에서도 원활하게 동작할 수 있습니다.

도메인 지식을 활용한 그래프 모델링 지원

그래프 데이터사이언스에서 주어진 데이터로부터 유용한 정보를 얼마나 잘 학습해 낼 수 있는지는 어떤 토폴로지를 적용하는가에 따라 좌우됩니다. GCR은 인자들 간의 관계를 추가로 규정할 수 있는 argument를 제공함으로써 더 정확한 예측 성능을 얻을 수 있도록 사용자가 자신의 도메인 지식에 따라 토폴로지를 customize할 수 있게 지원합니다.

Global 및 local XAI 기능

GCR은 global XAI 뿐 아니라 local XAI 기능도 제공합니다. Global XAI는 모든 학습 샘플들을 통틀어 계산된 모든 인자들의 feature importance를 보여주며, local XAI는 예측 샘플 각각에 대해 예측 결과에 대한 영향도 순서로 5개의 인자들과 그 값을 보여줍니다. 그래프 데이터사이언스가 적용된 만큼 GCR의 XAI 결과는 토폴로지에 따라 영향을 받습니다.



Quick Start

설치하기

데이터 준비

  • 컨텐츠를 설치하게 되면, Sample data (train set/inference set)가 존재합니다.

필수 parameter 설정

  1. solution/experimental_plan.yaml 내 하기 데이터 경로를 수정해주세요.
    external_path:
    - load_train_data_path: ./solution/sample_data/train/ #사용자 데이터 경로로 변경 가능
         - load_inference_data_path: ./solution/sample_data/test/ #사용자 데이터 경로로 변경 가능
  2. train_pipelinereadiness step에서 데이터에 맞는 parameter를 아래와 같이 입력해주세요.
    user_parameters:
    - train_pipeline:
    - step: readiness
    args:
    - x_columns: # 사용자 데이터의 x컬럼명 입력. ['A', 'B'] 형식의 list. 비워두면 y_column을 제외한 모든 컬럼 사용.
    - drop_columns: # 사용자 데이터에서 사용하지 않을 x컬럼명 입력. ['A', 'B'] 형식의 list. 비워두면 무시됨.
    - y_column: target # 사용자 데이터의 y컬럼명 (즉, label컬럼) 입력
  3. inference_pipelinereadiness step에서 데이터에 맞는 parameter를 아래와 같이 입력해주세요. 추론의 경우 y_column은 입력하지 않아도 됩니다.
    user_parameters:
    - inference_pipeline:
    - step: readiness
    args:
    - x_columns: # 사용자 데이터의 x컬럼명 입력. ['A', 'B'] 형식의 list. 비워두면 y_column을 제외한 모든 컬럼 사용.
    - drop_columns: # 사용자 데이터에서 사용하지 않을 x컬럼명 입력. ['A', 'B'] 형식의 list. 비워두면 무시됨.

위 1,2, 3만 설정하고 ALO를 실행하면 나머지 optional arguments들은 기본값을 이용해 수행될 수 있습니다.

실행하기

  • 위와 같이 설정하고, alo 설치 위치에서 python main.py를 실행하면 default setting의 Graph Classification 모델을 생성할 수 있습니다. 모델을 생성하기 위한 더 자세한 설명은 우측 페이지를 참고해주세요. 자세히 보기: GCR Parameters


Topics



GCR Version: 3.1.0, ALO Version: 2.3.1