1 / 3

Centrality Statement 사용 시 발생하 는 메모리 오류

Centrality Statement 사용 시 발생하 는 메모리 오류. Centrality Statement 사용 시 발생하는 메모리 오류 현상 Centrality 에 측정에 데이터 사이즈가 큰 Link 정보 , Node 정보를 사용하여 프로그램 실행하면 메모리 부족 오류가 발생할 수 있습니다. 프로그 램 코드 예시. 프로그 램 실행 결과 예시 ( 로그 ). proc optgraph data_links = work.linksetout (keep = from_label to_label )

eve
Download Presentation

Centrality Statement 사용 시 발생하 는 메모리 오류

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Centrality Statement 사용 시 발생하는 메모리 오류 • Centrality Statement 사용 시 발생하는 메모리 오류 현상 • Centrality에 측정에 데이터 사이즈가 큰 Link 정보, Node 정보를 사용하여 프로그램 실행하면 메모리 부족 오류가 발생할 수 있습니다. 프로그램 코드 예시 프로그램 실행 결과예시 (로그) procoptgraph data_links = work.linksetout(keep = from_labelto_label) data_nodes = work.nodesetout out_nodes = work.central graph_direction = directed graph_internal_format = thin loglevel = 2; centrality degree = both close = weight by_cluster = yes; run; • Community Detection을 통한 Linkset, Nodeset정보를 이용 • Centrality Statement를 이용하여 실행 • 메모리 오류 메시지 발생 • 입력 데이터인 Linkset, Nodeset의 데이터 사이즈가 큰 것이 메모리 부족 오류 발생 원인 (※ 샘플 코드 실행 시) • Community 개수: 약 100만 개 • Node 개수: 약 43만 개 • Link 개수: 약 33만 개

  2. Centrality Statement 사용 시 발생하는 메모리 오류 • Centrality Statement 사용 시 발생하는 메모리 오류 해결 방법 – 데이터 분리 • 메모리 오류를 해결하기 위해서는 Centrality를 측정하기 위한 커뮤니티 정보를 Partitioning하여 고객 Link 정보와 Join 합니다. 즉 커뮤니티 데이터셋의 전화번호와 고객 Link 데이터셋의 전화번호가 일치하는 데이터를 발신 번호와 수신 번호에서 각각 추출합니다. 고객 Link 정보 전화번호 및 커뮤니티 정보 전화번호 및 커뮤니티 정보 데이터 고객 Link 정보데이터 일치하는 데이터 추출 전화번호 발신번호 … … … 일치하는 데이터 추출 … … … 전화번호 및 커뮤니티 정보 데이터 고객 Link 정보데이터 … … … 전화번호 수신번호 … … … … … … • 데이터 Partition 방법 (샘플 코드 참조) • 커뮤니티 사이즈 선정 (예: 10만개 단위) • 0 ~ 10만 번 까지의 커뮤니티에 해당하는 전화번호를 고객 Link 데이터로부터 추출 • 발신 번호와 수신 번호 별도 추출 • 반드시 커뮤니티에 포함되어 있는 전화번호만 추출 (e.g.: 5번 커뮤니티 고객 -> 200005번 커뮤니티 고객 정보는 삭제)

  3. Centrality Statement 사용 시 발생하는 메모리 오류 • Centrality 분석 Tip – 커뮤니티가 100만개 만들어졌을 경우(※ 샘플 코드 확인) • 메모리 부족 오류를 피하기 위해서 Centrality는 커뮤니티 정보를 N개로 Partitioning하여 측정합니다. N개로 분리 시킨 경우 100만/N 번의 Centrality 측정 작업을 동일하게 수행해야 합니다. • 100만 개 커뮤니티 생성 시 N 개 단위로 분리 (N 단위는 분석에 필요한 만큼 나누어 사용) • E.g.) 10만 개로 데이터를 분리할 경우 10번 반복 작업 수행 • 반복 작업을 수행하기 위해 MACRO를 이용 가능 (※ 필수 사항 아님) • 추출된 데이터 중 Node_ID, FROM_ID, TO_ID정보 제거 • ID에 포함된 가장 큰 수가 메모리로 할당되기 때문 • E.g.) Node_ID: 추출한 Node_ID중 Max값이 50만 일 경우, SAS는 50개의 데이터로 인식 • Centrality 옵션을 사용하여 중심성과 관련된 Index 도출(degree, closeness, influence 등) • 커뮤니티 측정 10번 반복 (1 ~ 100000, 100001 ~ 200000, …, 900001 ~ 1000000) • 커뮤니티 별 측정된 Index 정보를 결합 (e.g: 샘플 코드의 Work.Central을 10개 결합 시킴) • 커뮤니티 별 Role Assignment * 5, 6 번 순서가 변경되어도 무방

More Related