KR20190093802A - 대용량 데이터 분석 시스템 및 그 방법 - Google Patents

대용량 데이터 분석 시스템 및 그 방법 Download PDF

Info

Publication number
KR20190093802A
KR20190093802A KR1020180006516A KR20180006516A KR20190093802A KR 20190093802 A KR20190093802 A KR 20190093802A KR 1020180006516 A KR1020180006516 A KR 1020180006516A KR 20180006516 A KR20180006516 A KR 20180006516A KR 20190093802 A KR20190093802 A KR 20190093802A
Authority
KR
South Korea
Prior art keywords
data
coefficient
central server
clients
median
Prior art date
Application number
KR1020180006516A
Other languages
English (en)
Other versions
KR102029942B1 (ko
Inventor
박래웅
정성재
Original Assignee
아주대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아주대학교산학협력단 filed Critical 아주대학교산학협력단
Priority to KR1020180006516A priority Critical patent/KR102029942B1/ko
Publication of KR20190093802A publication Critical patent/KR20190093802A/ko
Application granted granted Critical
Publication of KR102029942B1 publication Critical patent/KR102029942B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Abstract

대용량 데이터 분석 시스템 및 그 방법을 개시한다. 본 발명의 일 실시예에 따른 대용량 데이터 분석 시스템은, 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 상기 산출된 데이터 청크의 중간값을 중앙서버로 전송하는 복수의 클라이언트, 상기 복수의 클라이언트로부터 수신한 중간값에 기초하여 계수를 추정하고, 상기 추정된 계수를 상기 복수의 클라이언트로 전송하는 중앙 서버를 포함한다.

Description

대용량 데이터 분석 시스템 및 그 방법{SYSTEM AND METHOD FOR THE ANALYSIS OF LARGE AMOUNT OF DATA}
본 발명은 대용량 데이터 분석 시스템 및 그 방법에 관한 것으로, 특히 대용량 데이터를 보유한 여러 기관의 데이터를 분석할 수 있는 대용량 데이터 분석 시스템 및 그 방법에 관한 것이다.
최근 보건의료 분야에서는 빅데이터의 영향으로 한 기관에서 보유하고 있는 데이터 전체를 활용하고자 하는 움직임이 활발하다. 국내 보건 의료분야에서도 각 병원의 전자의무기록(Electronic medical records, EMR)이나 국민건강보험공단과 건강보험심사평가원의 건강검진자료와 보험청구자료 등으로부터 추출한 대용량 데이터를 분석하여 각종 서비스 개발이나 연구에 활용하고자 하는 사례가 증가하고 있다.
전통적으로 보건 의료분야의 연구는 각 기관이 보유하고 있는 데이터를 이용하거나 개인정보 활용 동의를 거쳐 수집한 데이터를 이용하여 통계 분석을 수행한다. 한 기관의 데이터를 활용한 연구결과에는 몇 가지 단점을 내포하고 있다. 데이터가 상대적으로 많은 질병이나 부작용에 대한 연구는 활발하지만 그렇지 않은 희귀질환이나 드문 부작용 사례에 대한 연구는 어려운 것이 현실이다. 또한, 데이터에 각 기관의 특성이 반영되어 인구 전체의 성질을 반영한다고 보기 어렵다.
즉, 종래의 데이터 분석 알고리즘은 단일 기관의 데이터를 대상으로 하므로, 대용량의 데이터나 분산된 데이터를 처리하지 못하는 단점이 있다.
또한, 분산된 데이터를 처리하는 경우, 데이터의 프라이버시 문제로 인하여 기관 외부로 원본 데이터의 유출이 어렵기 때문에, 각 기관별로 분석을 수행한 결과물을 취합하여 활용해야 하는 불편함이 있었다.
따라서, 대용량 데이터를 보유한 여러 기관의 데이터를 분석할 수 있는 기술 개발이 요구된다.
이에 관련하여, 발명의 명칭이 "파일 데이터 분산 저장 장치 및 방법"인 한국등록특허 제10-1695991호가 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 대용량 데이터를 보유한 여러 기관의 데이터를 분석할 수 있는 대용량 데이터 분석 시스템 및 그 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 개인정보가 포함된 데이터나 개인을 식별할 수 있는 데이터가 전달되는 개인 프라이버시 문제를 해결할 수 있는 대용량 데이터 분석 시스템 및 그 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 대용량 데이터 분석 시스템은, 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 상기 산출된 데이터 청크의 중간값을 중앙서버로 전송하는 복수의 클라이언트, 상기 복수의 클라이언트로부터 수신한 중간값에 기초하여 계수를 추정하고, 상기 추정된 계수를 상기 복수의 클라이언트로 전송하는 중앙 서버를 포함한다.
바람직하게는, 상기 다변량 분석은 로지스틱 회귀분석일 수 있다.
바람직하게는, 상기 클라이언트는, 메모리 허용 가능한 크기를 계산하고, 빅데이터를 상기 계산된 크기에 해당하는 청크로 분할하는 분할부, 상기 분할된 데이터 청크를 순차적으로 로딩하고, 상기 로딩된 데이터 청크에 대해 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출하여 상기 중앙 서버로 전송하는 중간값 산출부를 포함할 수 있다.
바람직하게는, 상기 중간값 산출부는, 각 데이터 청크에 대해 로짓으로 확률을 산출하고, 상기 산출된 확률을 이용하여 로그우도함수의 1차 미분값과 2차 미분값을 중간값으로 산출할 수 있다.
바람직하게는, 상기 중간값 산출부는, 중간값 산출 동작을 반복수행하고, 상기 중앙 서버로부터 계수 수신 시, 중간값 산출 동작을 종료할 수 있다.
바람직하게는, 상기 중간값 산출부는, 상기 수신된 계수를 이전에 수신한 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 중간값 산출 동작을 종료할 수 있다.
바람직하게는, 상기 클라이언트는 상기 빅데이터의 구조를 공통 데이터 모델로 변환하는 전처리부를 더 포함할 수 있다.
바람직하게는, 상기 클라이언트는 상기 산출된 각 데이터 청크의 중간값을 통합하고, 상기 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정하는 계수 추정부를 더 포함할 수 있다.
바람직하게는, 상기 중앙서버는, 상기 복수의 클라이언트로부터 데이터 청크에 대한 중간값을 수집하는 수집부, 상기 수집된 중간값을 통합하고, 상기 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정하는 계수 추정부를 포함할 수 있다.
바람직하게는, 상기 계수 추정부는, 계수 추정 동작을 반복수행하고, 상기 추정된 계수를 이전에 추정된 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 계수 추정 동작을 종료할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 대용량 데이터 분석 방법은, 복수의 클라이언트는 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 상기 산출된 데이터 청크의 중간값을 중앙서버로 전송하는 단계, 상기 중앙서버는 상기 복수의 클라이언트로부터 수신한 중간값에 기초하여 계수를 추정하고, 상기 추정된 계수를 상기 복수의 클라이언트로 전송하는 단계를 포함한다.
바람직하게는, 상기 중앙서버는 계수 추정 동작을 반복수행하고, 상기 추정된 계수를 이전에 추정된 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 계수 추정 동작을 종료할 수 있다.
바람직하게는, 상기 복수의 클라이언트는 중간값 산출 동작을 반복수행하고, 상기 중앙 서버로부터 계수를 수신한 경우 또는 상기 수신된 계수와 이전에 수신한 계수의 차이가 기 설정된 일정 정밀도보다 작은 경우, 중간값 산출 동작을 종료할 수 있다.
본 발명에 따르면, 대용량 데이터를 청크 단위로 분할하여 분석함으로써, 각 클라이언트들은 대용량 데이터를 용이하게 분석할 수 있다.
또한, 복수의 클라이언트는 환자단위의 개인정보가 포함된 데이터나 개인을 식별할 수 있는 데이터를 중앙서버로 전달하는 것이 아니라, 수치화된 중간 계산값을 전달하기 때문에 개인 프라이버시를 보호할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 다기관 대용량 데이터의 분석을 위한 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 중앙서버가 계수를 추정하는 수도코드를 나타낸 예시도이다.
도 3은 본 발명의 일 실시예에 따른 여러 클라이언트에 분산되어 있는 데이터를 이용하여 중앙서버가 계수를 추정하는 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 클라이언트를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 OMOP CDM을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 Sentinel CDM을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 PCORnet CDM을 설명하기 위한 도면이다.
도 8는 본 발명의 일 실시예에 따른 중앙서버를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 대용량 데이터 분석 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 대용량 데이터를 분석하는 클라이언트를 설명하기 위한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 클라이언트가 계수를 추정하는 수도코드를 나타낸 예시도이다.
도 12는 본 발명의 다른 실시예에 따른 클라이언트가 계수를 추정하는 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 실시예에 따른 로지스틱 회귀분석으로 추정된 계수를 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 대용량 데이터의 분석을 위한 시스템을 설명하기 위한 도면, 도 2는 본 발명의 일 실시예에 따른 중앙서버가 계수를 추정하는 수도코드를 나타낸 예시도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 대용량 데이터의 분석을 위한 시스템은 서로 다른 기관에 구비된 복수의 클라이언트(100a, 100b,.., 100n, 이하 100이라 칭함), 중앙서버(200)를 포함한다.
서로 다른 기관에 구비된 클라이언트(100)는 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 산출된 데이터 청크의 중간값을 중앙서버(200)로 전송한다. 여기서, 기관은 병원 등 동일 기능을 수행하는 기관일 수 있고, 다변량 분석은 회귀분석으로, 로지스틱 회귀분석 등 다양하나, 이하에서는 설명의 편의를 위해, 로지스틱 회귀분석으로 한정하여 설명하기로 한다.
로직스틱 회귀분석의 경우, 클라이언트(100)는 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출하고, 중앙서버(200)는 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정한다. 이때, 뉴턴-랩슨 방법에서 활용하는 로그우도함수의 1차 미분식과 2차 미분식에 따르면, 각 행단위 데이터를 이용한다. 따라서, 클라이언트(100)는 각 데이터 청크마다 로그우도함수의 1차 미분값과 2차 미분값을 산출하고, 산출된 로그우도함수의 1차 미분값과 제2 미분값을 중간값으로 중앙서버(200)로 전송한다. 이때, 클라이언트(100)는 단일 데이터 청크의 로그우도함수의 1차 미분값과 2차 미분값을 중간값으로 전송하거나, 전체 데이터 청크의 로그우도함수의 1차 미분값과 2차 미분값을 취합하여 중간값으로 전송할 수 있다.
클라이언트(100)는 중간값을 중앙서버(200)로 전송한 이후에도 중간값 산출 동작을 반복수행하고, 중앙 서버(200)로부터 계수가 수신되면, 중간값 산출 동작을 종료한다. 또한, 클라이언트(100)는 중앙서버(200)로부터 수신된 계수를 이전에 수신한 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도(예컨대, 10-6) 보다 작은 경우, 중간값 산출 동작을 종료할 수도 있다.
이하, 클라이언트(100)가 중간값을 산출하는 방법에 대해 상세히 설명하기로 한다.
클라이언트(100)는 대용량 데이터를 청크(chunk) 단위의 데이터로 분할한다. 이때, 청크의 크기가 지정되지 않은 경우, 메모리에서 허용 가능한 크기로 청크의 크기를 자동으로 계산할 수 있다. 그런 후, 클라이언트(100)는 각 데이터 청크에 대해 로짓(logit)으로 확률을 산출한다. 즉, 클라이언트(100)는 아래 기재된 수학식 1을 이용하여 확률(p)을 산출한다.
[수학식 1]
Figure pat00001
로지스틱 회귀모형에서 조건부 기대값(conditional expected va lue)은 아래 기재된 수학식 2와 같다.
[수학식 2]
Figure pat00002
종속변수
Figure pat00003
가 1을 가질 조건부확률(conditional probability)은 수학식 3와 같고, 종속변수
Figure pat00004
가 0을 가질 조건부확률은 수학식 3과 같다.
[수학식 3]
Figure pat00005
[수학식 4]
Figure pat00006
수학식 3과 수학식 4에 로짓 변환을 적용하면, 아래 기재된 수학식 5와 같다.
[수학식 5]
Figure pat00007
여기서,
Figure pat00008
는 선형 회귀모형의 성질을 갖는다. 따라서,
Figure pat00009
는 선형이고, x는
Figure pat00010
범위의 값을 가진다.
한편, 로지스틱 회귀모형에서 p개의 독립변수 x가 주어졌을 때, 로지스틱 회귀모형의 로짓(logit)은 아래 기재된 수학식 6과 같다.
[수학식 6]
Figure pat00011
종속변수
Figure pat00012
, 독립변수 X에 n개 관찰값(observations)이 있고, Y는 0이나 1의 값을 가진다고 가정한다. 이때, 모수(unknown parameter) β0, ...,βp의 값을 추정하여야 로지스틱 회귀모형을 적합할 수 있다.
따라서, 수학식 6의 로짓에 기초한 확률(p)은 수학식 1을 이용하여 산출할 수 있다. 수학식 1을 이용하여 각 데이터 청크의 확률이 산출되면, 클라이언트(100)는 산출된 확률을 이용하여 각 데이터 청크에 대한 로그우도함수의 제1 미분값과 제2 미분값을 각각 산출한다. 즉, 클라이언트(100)는 후술할 수학식 11 또는 수학식 13을 이용하여 데이터 청크에 대한 로그우도함수의 제1 미분값을 산출하고, 수학식 12 또는 수학식 13를 이용하여 데이터 청크에 대한 로그우도함수의 제2 미분값을 산출한다.
일반적으로 로지스틱 회귀모형에서는 최대우도추정법(maximum likelihood estimaton, MLE)을 이용하여 계수를 추정한다. 최대우도추정법은 관찰값이 발생할 확률을 최대화하는 값을 계수로 추정하는 방법이다. 따라서, 최대우도추정법을 적용하기 위해서는 우도함수(likelihood function)를 정의하여야 한다. 우도함수는 관찰값이 발생할 확률을 나타내고, 이 확률을 최대화하는 값을 계수의 추정치로 선택한다.
수학식 3 및 수학식 4에서
Figure pat00013
일 때 조건부 확률은
Figure pat00014
일 때 조건부확률은
Figure pat00015
이므로,
Figure pat00016
일 때의 조건부 확률은 수학식 6과 같이 나타낼 수 있다.
[수학식 6]
Figure pat00017
각 관찰값은 독립이라고 가정하기 때문에, 우도함수는 수학식 6의 곱으로 나타낼 수 있다. 즉, 우도함수는 수학식 7과 같다.
[수학식 7]
Figure pat00018
최대우도의 원리에 따라 β의 예측값으로 수학식 7을 최대화하는 값을 취한다. 수학적으로 계산하기 용이하도록 자연로그를 취하면 수학식 8과 같다.
[수학식 8]
Figure pat00019
수학식 8은 로그우도함수(log likelihood function)일 수 있다.
로그우도함수를 최대화하는 계수(β)의 값을 찾기 위해서 로그우도함수를 β에 대하여 미분(differentiate)하고 '0'으로 놓는다. 이를 우도 방정식(likelihood equation)이라 한다.
n개의 관찰값을 가진 p개의 독립변수 x가 있다고 가정하면, 로그우도함수를 β에 대하여 미분하여 얻어지는 (p+1)개의 우도방정식이 있다. 이 우도방정식은 아래 기재된 수학식 10과 같다.
[수학식 10]
Figure pat00020
여기서,j는 1,2,..., p일 수 있다.
선형회귀에서 β는 선형이기 때문에, 우도방정식은 편차제곱합(sum of squared deviations)을 미분하여 쉽게 계수를 구할 수 있다. 로지스틱 회귀에서는 우도 방정식이 β에 대하여 비선형이기 때문에, 반복재가중최소제곱법(iterativey rewe ighted least squares, IRLS)을 이용하여 산출한다.
본 발명은 뉴턴-랩슨방법(Newton-Raphson method)을 이용하여 로지스틱 회귀모형의 계수(β)를 추정하므로, 로그우도함수의 1차 미분식(first derivative)과 2차 미분식(second derivative)이 필요하다. 로그우도함수의 1차 미분식은 수학식 11과 같고, 2차 미분식은 수학식 12와 같다.
[수학식 11]
Figure pat00021
[수학식 12]
Figure pat00022
수학식 11 및 12를 행렬 표현법(matrix notation)으로 나타내면 수학식 13과 같다.
[수학식 13]
Figure pat00023
여기서, Y는 종속변수, X는
Figure pat00024
행렬, p는 산출된 확률 , W는
Figure pat00025
대 각 행렬을 나타낸다.
클라이언트는(100)는 각 데이터 청크마다 로그우도함수의 1차 미분값과 2차 미분값이 산출되면, 데이터 청크의 1차 미분값과 2차 미분값을 중간값으로 중앙 서버(200)로 전송한다.
결론적으로, 클라이언트(100)는 데이터를 한번에 불러오는 것이 아니라, 여러번으로 나누어 불러오고, 중간 계산 결과들을 네트워크를 통해 중앙서버(200)로 전송한다.
이처럼, 클라이언트(100)는 중앙 서버(200)로 데이터를 전달하는 과정에서 환자의 민감한 개인정보의 원본을 전달하는 것이 아니고, 원본 데이터로부터 산출된 중간값만을 전달하기 때문에 각 클라이언트의 환자 단위 데이터에 대한 프라이버시가 보호될 수 있다. 즉, 클라이언트(100)는 개인정보 단위의 데이터가 아닌 중간 계산 결과물을 수치화하여 중앙서버(200)로 전달된다. 환자단위의 개인정보가 포함된 데이터나 개인을 식별할 수 있는 데이터가 전달되는 것이 아니고, 수치화되어 전달되기 때문에 환자단위의 데이터는 보호된다고 볼 수 있다. 또한, 클라이언트(100)는 중앙서버(200)로 전송 예정인 중간값을 암호화하여 중앙서버(200)로 전송할 수 있다. 이를 통해 본 발명은 환자의 개인정보를 보호할뿐만 아니라, 중간 계산결과들도 보호하도록 되어있다. 특히, 전달되는 데이터에 개인정보가 포함되어있지 않고 이진수의 값으로 전달되기 때문에, 통신중에 데이터가 탈취된다고 하더라도 수치화된 데이터를 보호할 수 있다.
중앙서버(200)는 복수의 클라이언트(100)로부터 수신한 중간값에 기초하여 계수를 추정하고, 추정된 계수를 복수의 클라이언트(100)로 전송한다. 여기서, 중간값은 로그우도함수의 1차 미분값과 2차 미분값을 포함한다. 이를 수도코드로 표현하면, 도 2와 같다.
즉, 중앙서버(200)는 각 클라이언트(100)로부터 데이터 청크에 대한 로그우도함수의 1차 미분값과 2차 미분값을 각각 수신하고, 각 클라이언트(100)의 데이터 청크에 대한 로그우도함수의 1차 미분값과 2차 미분값을 취합하여 로그우도함수를 최대화하는 계수를 각각 추정한다. 이때, 중앙서버(200)는 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정할 수 있다.
뉴턴-랩슨 방법에서 새로운 계수(β)를 추정하기 위해 수학식 14를 이용한다.
[수학식 14]
Figure pat00026
수학식 14를 행렬 표현법(matrix notation)으로 나타내면 수학식 15와 같다.
[수학식 15]
Figure pat00027
여기서, Y는 종속변수, X는
Figure pat00028
행렬, p는 산출된 확률 , W는
Figure pat00029
대 각 행렬을 나타낸다.
수학식 13 및 15를 반복적으로 수행하면 확률 p, 대각행렬 W 등이 변화하면서 최적의 해를 찾아나간다. 이 알고리즘을 반복재가중최소제곱법이라 한다.
초기의 β는 0으로 설정하여 반복을 시작한다. 로그우도함수가 오목한 형태를 보이기 때문에, 일반적으로 이 알고리즘은 하나의 값으로 수렴한다. 이를 추정된 계수(β)라 한다.
수학식 15를 이용하여 계수가 추정되면, 중앙서버(200)는 추정된 계수를 각 클라이언트(100)로 전송한다.
중앙서버(200)는 클라이언트(100)로부터 데이터 청크의 중간값이 수신될 때마다 계수 추정 동작을 반복 실행한다. 그러므로, 중앙서버(200)는 추정된 계수를 이전 단계에서 추정된 계수의 값과 비교하여 그 차이가 일정 정밀도(예컨대, 10-6) 보다 작은 경우, 계수 추정 동작을 중단하고 추정된 계수를 최종 결과물로 출력한다. 또한, 중앙서버(200)는 동일한 계수를 각 클라이언트(100)로 전송하므로, 각 클라이언트(100)도 중앙서버(200)로부터 계수가 수신되면, 중간값 추정 동작을 중단하게 된다.
상술한 바와 같이, 대용량 데이터의 분석을 위한 시스템에서 클라이언트(100)는 단일 기관의 대용량 데이터를 청크단위로 분할하여 중간값을 산출하여 중앙서버(200)로 전송하고, 중앙서버(200)는 각 기관(클라이언트)로부터 전송된 중간값을 취합하여 계수를 추정한다.
예를 들어, 서로 다른 기관인 병원1, 병원2, 병원3이 각각 대용량 데이터를 보유하여 계수를 추정하는 방법에 대해 설명하기로 한다. 이 경우, 병원 1은 대용량 데이터 1을 4개의 데이터 청크로 분할하고, 데이터 청크 11, 12, 13, 14의 순으로 중간값을 산출하여 중앙서버(200)로 전송한다. 병원2는 대용량 데이터 2을 4개의 데이터 청크로 분할하고, 데이터 청크 21, 22, 23, 24의 순으로 중간값을 산출하여 중앙서버(200)로 전송한다. 병원3은 대용량 데이터 3을 4개의 데이터 청크로 분할하고, 데이터 청크 31, 32, 33, 34의 순으로 중간값을 산출하여 중앙서버(200)로 전송한다. 병원1, 병원2, 병원3이 중간값을 산출하는 동작은 동시에 수행될 수 있다.
중앙서버(200)는 병원1, 병원2 및 병원 3으로부터 중간값이 수신되면, 병원1의 중간값, 병원2의 중간값 및 병원3의 중간값을 취합하여 계수를 추정한다. 그런 후, 중앙서버(200)는 병원1, 병원2, 병원3으로 추정된 계수를 전송한다.
병원1, 병원2, 병원3는 중앙서버(200)로부터 계수가 수신되면, 중간값 산출 동작을 종료한다.
이하, 여러 클라이언트(100)가 중간값을 산출하여 중앙서버(200)로 전송하고, 중앙서버(200)가 중간값을 이용하여 계수를 추정하는 방법에 대해 도 3을 참조하여 설명하기로 한다. 3개의 클라이언트(Site A, Site B, Site C)는 (a)에 도시된 바와 같이 각각 자신이 보유한 데이터를 이용하여 m개의 행과 1개의 열을 가지는 1차 미분값을 가지는 행렬과, m개의 행과 열을 가지는 2차 미분값을 가지는 행렬을 가지는 행렬을 산출한다. 그런 후, 3개의 클라이언트(Site A, Site B, Site C)는 각각 산출된 행렬을 중앙서버(200)로 전송한다. 그러면, 중앙서버(200)는 3개의 클라이언트로부터 전송된 1차 미분값 행렬과 2차 미분값 행렬을 합하고, 그 합 행렬을 이용하여 계수를 추정한다. 그러면, (c)와 같이 m개의 행과 1개의 열을 가지는 계수 행렬을 얻을 수 있다. 이때, 초기 계수는 '0'일 수 있다. 그런 후, 중앙서버(200)는 추정된 계수를 3개의 클라이언트로 전송한다.
상기와 같은 방법을 이용하면, 여러 기관에 분산되어 있는 데이터를 이용하여 단일 기관에서 로지스틱 회귀모형을 수행한 것과 같이 하나의 로지스틱 회귀모형을 산출할 수 있다.
도 4는 도 1에 도시된 클라이언트를 설명하기 위한 도면이고, 도 5는 본 발명의 일 실시예에 따른 OMOP CDM을 설명하기 위한 도면, 도 6은 본 발명의 일 실시예에 따른 Sentinel CDM을 설명하기 위한 도면, 도 7은 본 발명의 일 실시예에 따른 PCORnet CDM을 설명하기 위한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 클라이언트(100)는 분할부(110), 중간값 산출부(120), 통신부(130)를 포함한다.
통신부(130)는 통신망을 통해 클라이언트(100)를 중앙서버와 연결하는 구성이다.
분할부(110)는 대용량 데이터를 청크(chunk) 단위의 데이터로 분할한다. 이때, 분할부(110)는 청크의 크기가 지정되지 않은 경우, 메모리에서 허용 가능한 크기를 계산하고, 대용량 데이터를 계산된 크기에 해당하는 청크로 분할한다. 또한, 분할부(110)는 청크의 크기가 지정된 경우, 지정된 청크의 크기를 메모리 허용 가능한 크기와 비교하고, 메모리 허용 가능한 크기보다 작은 경우 지정된 청크 크기로 대용량 데이터를 분할하며, 메모리 허용 가능한 크기보다 작은 경우 메모리에서 허용 가능한 크기를 계산하여 그 크기로 분할할 수 있다.
중간값 산출부(120)는 분할된 데이터 청크를 순차적으로 로딩하고, 로딩된 데이터 청크에 대해 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출하여 중앙서버로 전송한다. 이때, 데이터 청크가 1개인 경우는 데이터를 읽어오는 과정이 한번만 수행되지만, 데이터 청크가 2개 이상인 경우는 계수 추정 과정중 반복적으로 수행된다. 따라서, T의 데이터 로딩시간, c개의 데이터 청크, l회의 반복이라고 할때, 전체적 수행시간은 대략
Figure pat00030
만큼 늘어나게 된다.
구체적으로, 중간값 산출부(120)의 각 데이터 청크에 대해 로짓(logit)으로 확률을 산출하고, 산출된 확률을 이용하여 각 데이터 청크에 대한 로그우도함수의 제1 미분값과 제2 미분값을 각각 산출한다. 즉, 중간값 산출부(120)는 수학식 11 또는 수학식 13을 이용하여 데이터 청크에 대한 로그우도함수의 제1 미분값을 산출하고, 수학식 12 또는 수학식 13을 이용하여 데이터 청크에 대한 로그우도함수의 제2 미분값을 산출한다.
상술한 중간값 산출부(120)는 데이터를 한번에 불러오는 것이 아니라, 여러번으로 나누어 불러오도록 하는 과정과 중간 계산 결과들을 네트워크를 통해 중앙서버로 전송한다.
한편, 클라이언트(100)는 대용량 데이터의 구조를 공통 데이터 모델(Common Data Model, CDM)로 변환하는 전처리부(미도시)를 더 포함할 수 있다.
본 발명은 중앙서버가 다기관의 대용량 데이터를 이용하여 계수를 추정하므로, 모든 기관의 데이터가 동일한 형태를 가져야 한다. 각 기관에서 동일한 구조의 CDM으로 변환된 데이터 구조를 보유하고 있다면, 각 연구 혹은 분석 주제 단위로 데이터 추출 코드를 공유하여 모든 기관에서 동일한 형태로 데이터를 추출할 수 있다. 따라서, 전처리부는 공통 데이터 모델을 기반으로 대용량 데이터를 동일한 데이터 구조로 변환한다.
공통 데이터 모델은 기관별로 상이한 데이터 구조를 동일한 구조의 데이터 모델로 적용하는 개념이다. 종래에는 각 기관별 데이터 구조에 맞는 분석용 코드를 작성하거나 프로토콜을 정의하여 데이터를 전처리하는 과정이 요구되었다. 그러나, 공통 데이터 모델로 변환된 데이터는 구조가 동일하기 때문에 분석용 코드나 소프트웨어를 공유하여 동일한 조건으로 분석을 수행할 수 있다는 장점이 있다. 동일한 구조의 데이터로부터 발생한 분석결과는 취합하여 해석하거나 재분석을 수행하는 경우 수월하나, 서로 다른 데이터 구조를 가진 경우에는 이전 연구의 재현이 어렵고, 분석 코드를 재사용하기 어렵다는 단점이 있다. 특히, 다변량 분석시 단변량 분석과 달리 하나의 값을 구할 수 없다. 따라서, 여러개의 값을 이용한 메타분석이 필요하다. 예를들어, 국내 병원에서 사용하는 대부분의 진단코드나 약물 처방코드 등 의료 코드 체계는 국제 표준을 따르지 않는 경우가 많은데, 병원들의 데이터를 이용하기 위해서는 각 병원마다 원내 의료코드 체계를 국제 표준 코드와 호환이 가능 하도록 매핑하는 과정이 필요하다.
이러한 번거로운 과정을 없애기 위해, 데이터의 분석 전에 원본 데이터를 공통 데이터 모델로 변환하는 ETL(Extraction, Transformation, Loading)과정을 수행한다. 공통 데이터 모델은 OHDSI, pSCANNER 그리고 EMIF 등에서 활용하는 OMOP CDM과 Sentinel Initiative에서 개발한 Sentinel CDM, Sentinel CDM을 기반으로 확장된 PCORnet CDM 등 각 프로젝트의 성격에 따라 다양한 형태로 설계되어 활용되고 있다. OMOP CDM은 도 5에 도시된 바와 같이 총 39개의 테이블로 이루어져 있다. 임상 보를 담당하는 clinical data 영역, 임상정보로부터 추출할 수 있는 derivedlements, 기관의 정보를 담고있는 health system data, 비용관련 데이터를 담당하는 health economics, 표준용어를 통칭하는 vocabulary, CDM의 메타정보를 담고 있는 meta-data로 구분하여 테이블을 정의하고 있다.
Mini-Sentinel CDM은 10개의 테이블로 구성되어 있으나, 최근 Sentinel CDM으로 전환되었고, v6.0으로 업데이트를 통해 도 6에 도시된 바와 같이 2개의 테이블이 추가된 구조이다. Mini-Sentinel CDM을 기반으로 하는 PCORnet CDM은 도 7에 도시된 바와 같이 Mini-Sentinel CDM의 10개 테이블에 5개의 테이블이 추가되어 총 15개의 테이블로 구성된다.
한편, 클라이언트(100)는 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 팜톱 컴퓨터 등), 워크스테이션, PDA, 웹 패드, 이동 전화기 등과 같은 디지털 기기에 포함되거나 연결될 수 있을 것이다.
도 8은 본 발명의 일 실시예에 따른 중앙서버를 설명하기 위한 도면이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 중앙서버(200)는 통신부(210), 수집부(220), 계수 추정부(230)를 포함한다.
통신부(210)는 통신망을 통해 중앙서버를 복수의 클라이언트와 연결하는 구성이다.
수집부(220)는 복수의 클라이언트로부터 데이터 청크에 대한 중간값을 각각 수신한다. 여기서, 중간값은 로그우도함수의 1차 미분값과 2차 미분값을 포함한다.
한편, 다기관의 데이터를 이용하여 로지스틱 회귀분석을 하고자 하는 경우, 중앙서버(200)는 모든 클라이언트로부터 데이터 청크에 대한 중간값을 수신해야 한다. 그러나, 통신상태에 따른 네트워크 지연, 클라이언트들의 서로 다른 처리 속도 등에 의해 모든 클라이언트로부터 일정 시간내에 중간값을 수신하지 못하는 경우가 있다. 이를 위해, 수집부(200)는 모든 클라이언트로부터 중간값이 수신될때까지 대기하고, 모든 클라이언트로부터 중간값이 수신되면, 그 값들을 계수 추정부(230)로 전달한다. 만약 중앙서버와 적어도 하나의 클라이언트간 네트워크 연결이 끊긴다면 계수 추정을 중단할 수 있다.
계수 추정부(230)는 수집부(220)로부터 전달받은 복수의 데이터 청크에 대한 중간값을 통합하고, 그 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정한다. 즉, 계수 추정부(230)는 복수의 클라이언트로부터 각각 전송된 복수의 데이터 청크에 대한 로그우도함수의 1차 미분값과 제2 미분값을 합하여 통합된 데이터를 생성한다. 그런 후, 계수 추정부(230)는 통합된 데이터에 수학식 14 또는 수학식 15를 적용하여 계수를 추정하고, 추정된 계수를 복수의 클라이언트로 전송한다. 그런 후, 계수 추정부(230)는 클라이언트로부터 데이터 청크의 중간값이 수신될 때마다 계수를 추정하는 동작을 반복 실행한다. 그러므로, 계수 추정부(230)는 추정된 계수를 이전 단계에서 추정된 계수의 값과 비교하여 그 차이가 일정 정밀도(예컨대, 10-6) 보다 작은 경우, 계수 추정을 위한 반복 과정을 중단하고 추정된 계수를 최종 결과물로 출력한다.
또한, 계수 추정부(230)는 동일한 계수를 각 클라이언트로 전송하므로, 각 클라이언트도 중앙서버로부터 계수가 수신되면, 중간값 산출을 위한 반복 과정을 중단하게 된다.
도 9는 본 발명의 일 실시예에 따른 대용량 데이터 분석 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 클라이언트는 보유 데이터에 대해 다변량 분석을 수행하여 중간값을 산출하고(S910), 산출된 중간값을 중앙서버로 전송한다(S920). 이때, 클라이언트는 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출할 수 있다. 구체적으로 클라이언트는 데이터에 대해 로짓으로 확률을 산출하고, 상기 산출된 확률을 이용하여 로그우도함수의 1차 미분값과 2차 미분값을 중간값으로 산출할 수 있다. 이때, 클라이언트는 데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출할 수 있다. 또한, 클라이언트는 데이터 전체를 다변량 분석을 수행하여 중간값을 산출할 수도 있다.
단계 S920이 수행되면, 중앙서버는 복수의 클라이언트로부터 중간값을 수집하고(S930), 수집된 중간값에 기초하여 계수를 추정한다(S940). 즉, 중앙서버는 수집된 중간값을 통합하고, 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정한다.
단계 S940이 수행되면, 중앙서버는 추정된 계수를 복수의 클라이언트에게 전송한다(S950). 중앙서버는 계수를 전송한 후에도 계수 추정 동작을 반복수행하고, 추정된 계수를 이전에 추정된 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 계수 추정 동작을 종료한다.
한편, 클라이언트는 중간값 산출 동작을 반복수행하는데, 중앙서버로부터 계수가 수신되면, 중간값 산출 동작을 종료한다.
도 10은 본 발명의 다른 실시예에 따른 대용량 데이터를 분석하는 클라이언트를 설명하기 위한 도면, 도 11은 본 발명의 다른 실시예에 따른 클라이언트가 계수를 추정하는 수도코드를 나타낸 예시도, 도 12는 본 발명의 다른 실시예에 따른 클라이언트가 계수를 추정하는 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 본 발명의 다른 실시예에 따른 대용량 데이터를 분석하는 클라이언트(1000)는 분할부(1010), 중간값 산출부(1020), 계수 추정부(1030)를 포함한다.
분할부(1010)는 대용량 데이터를 청크(chunk) 단위의 데이터로 분할한다.
중간값 산출부(1020)는 분할된 데이터 청크를 순차적으로 로딩하고, 로딩된 데이터 청크에 대해 뉴턴-랩슨 방법(Newton-Raphson method)을 이용한 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출한다.
분할부(1010), 중간값 산출부(1020)는 도 4에 도시된 클라이언트의 동작과 동일하므로 상세한 설명은 생략하기로 한다.
계수 추정부(1030)는 중간값 산출부(1020)에서 전체 데이터 청크에 대해 중간값이 산출되면, 각 데이터 청크의 중간값을 합하여 계수를 추정한다. 이때, 데이터 청크가 1개인 경우는 데이터를 읽어오는 과정이 한번만 수행되지만, 데이터 청크가 2개 이상인 경우는 계수 추정 과정중 반복적으로 수행된다. 따라서, T의 데이터 로딩시간, c개의 데이터 청크, l회의 반복이라고 할때, 전체적 수행시간은 대략
Figure pat00031
만큼 늘어나게 된다.
상기와 같이 구성된 클라이언트(100)는 각 데이터 청크마다 로그우도함수의 1차 미분값과 2차 미분값을 산출하고, 전체 데이터 청크에 대한 로그우도함수의 1차 미분값과 제2 차분값이 취합하여, 새로운 계수를 추정한다. 이를 수도코드로 표현하면 도 11과 같다.
한편, 상기와 같이 구성된 클라이언트(100)는 대용량 데이터의 구조를 공통 데이터 모델(Common Data Model, CDM)로 변환하는 전처리부(미도시)를 더 포함할 수 있다.
이하, 클라이언트(100)가 계수를 추정하는 방법에 대해 도 12를 참조하여 설명하기로 한다. 클라이언트(100)는 (a)와 같이 n개의 행과 m개의 열로 구성된 데이터에서 n개의 행을 C개의 데이터 청크로 분할한다. 그런 후, 클라이언트(100)는 각 데이터 청크별로 수학식 1을 이용하여 로짓으로 확률을 산출하고, 그 확률을 이용하여 각 데이터 청크에 대한 로그우도함수의 1차 미분값과 2차 미분값을 산출한다. 그러면, 클라이언트(100)는 (b)와 같이 m개의 행과 1개의 열을 가지는 1차미분값을 가지는 행렬과, m개의 행과 열을 가지는 2차 미분값을 가지는 행렬을 얻을 수 있다. 이 행렬들은 각 데이터 청크의 개수만큼 만들어지고, 클라이언트(100)는 각 행렬 요소를 합하고, 그 합을 통해 (c)와 같이 데이터 청크를 통합한다. 그런 후, 클라이언트(100)는 통합된 행렬을 이용하여 계수를 추정한다. 그러면, (d)와 같이 m개의 행과 1개의 열을 가지는 계수 행렬을 얻을 수 있다. 이때, 초기 계수는 '0'일 수 있다.
한편, 계수 추정과정에서 활용되는 로그우도함수의 1차 도함수와 2차 도함수를 살펴보면, 데이터를 한번에 분석하더라도 실제로는 행단위로 계산한다. 그러므로, 클라이언트(100)는 데이터 전체 행의 계산이 완료되어야, 계산결과의 합계를 통해 다음 단계로 진행된다. 따라서, 데이터를 한번에 가져와 분석하지 않더라도 분석의 결과에는 차이가 없다.
도 13은 본 발명의 실시예에 따른 로지스틱 회귀분석으로 추정된 계수를 설명하기 위한 예시도이다. 이는 병원의 전자의무기록을 OMOP CDM 5.0 구조로 변환된 데이터를 사용하고, 연구대상은 전체 환자 약 227만명 중 1900년에서 2000년 사이에 출생하였고, 성별 및 출생일자 정보가 있는 환자 약 200만명을 대상으로 한 것이다. R에 기본으로 내장되어 있는 glm 함수를 이용하여 로지스틱 회귀분석을 수행한 후 bigLR의 결과와 비교한 것이다. bigLR 알고리즘은 두가지 방법으로, 단일 대용량 데이터를 이용하여 로지스틱 회귀모형을 추정(bigLR- s ingle), 다수의 클라이언트 환경에서 대용량 데이터를 이용하여 로지스틱 회귀모형을 추정(bigLR-dist)한 것이다. 최대 10회 반복, 0.00 0001의 정밀도에서 R을 이용한 로지스틱 회귀분석 결과와 bigLR을 이용한 계수 추정값은 모두 동일한 결과임을 알 수 있다. 또한, bigLR을 이용해 다수의 클라이언트 환경에서 로지스틱 회귀분석을 수행한 경우에도 서버에서 추정된 결과와 각 클라이언트에서 추정된 결과가 동일함을 확인할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100, 1000 : 클라이언트
110, 1010 : 분할부
120 : 중간값 산출부
130, 210 : 통신부
220 : 수집부
230, 1030 : 계수 추정부

Claims (13)

  1. 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 상기 산출된 데이터 청크의 중간값을 중앙서버로 전송하는 복수의 클라이언트; 및
    상기 복수의 클라이언트로부터 수신한 중간값에 기초하여 계수를 추정하고, 상기 추정된 계수를 상기 복수의 클라이언트로 전송하는 중앙 서버를 포함하는,
    대용량 데이터 분석 시스템.
  2. 제1항에 있어서,
    상기 다변량 분석은 로지스틱 회귀분석인 것을 특징으로 하는 대용량 데이터 분석 시스템.
  3. 제2항에 있어서,
    상기 클라이언트는,
    메모리 허용 가능한 크기를 계산하고, 빅데이터를 상기 계산된 크기에 해당하는 청크로 분할하는 분할부;
    상기 분할된 데이터 청크를 순차적으로 로딩하고, 상기 로딩된 데이터 청크에 대해 최대우도추정법(maximum likelihood estimation, MLE)으로 중간값을 산출하여 상기 중앙 서버로 전송하는 중간값 산출부를 포함하는 것을 특징으로 하는 대용량 데이터 분석 시스템.
  4. 제3항에 있어서,
    상기 중간값 산출부는,
    각 데이터 청크에 대해 로짓으로 확률을 산출하고, 상기 산출된 확률을 이용하여 로그우도함수의 1차 미분값과 2차 미분값을 중간값으로 산출하는 것을 특징으로 하는 대용량 데이터 분석 시스템.
  5. 제3항에 있어서,
    상기 중간값 산출부는,
    중간값 산출 동작을 반복수행하고,
    상기 중앙 서버로부터 계수 수신 시, 중간값 산출 동작을 종료하는 것을 특징으로 하는 대용량 데이터 분석 시스템.
  6. 제5에 있어서,
    상기 중간값 산출부는,
    상기 수신된 계수를 이전에 수신한 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 중간값 산출 동작을 종료하는 것을 특징으로 하는 대용량 데이터 분석 시스템.
  7. 제3항에 있어서,
    상기 빅데이터의 구조를 공통 데이터 모델로 변환하는 전처리부를 더 포함하는 대용량 데이터 분석 시스템.
  8. 제3항에 있어서,
    상기 산출된 각 데이터 청크의 중간값을 통합하고, 상기 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정하는 계수 추정부를 더 포함하는 대용량 데이터 분석 시스템.
  9. 제1항에 있어서,
    상기 중앙서버는,
    상기 복수의 클라이언트로부터 데이터 청크에 대한 중간값을 수집하는 수집부; 및
    상기 수집된 중간값을 통합하고, 상기 통합된 데이터에 뉴턴-랩슨 방법(Newton-Raphson method)을 적용하여 계수를 추정하는 계수 추정부를 포함하는 것을 특징으로 하는 다기관 대용량 데이터 분석 시스템.
  10. 제9항에 있어서,
    상기 계수 추정부는,
    계수 추정 동작을 반복수행하고,
    상기 추정된 계수를 이전에 추정된 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 계수 추정 동작을 종료하는 것을 특징으로 하는 대용량 데이터 분석 시스템.
  11. 복수의 클라이언트는 빅데이터를 청크 단위로 분할하고, 각 데이터 청크에 대해 순차적으로 다변량 분석을 수행하여 중간값을 산출하며, 상기 산출된 데이터 청크의 중간값을 중앙서버로 전송하는 단계;
    상기 중앙서버는 상기 복수의 클라이언트로부터 수신한 중간값에 기초하여 계수를 추정하고, 상기 추정된 계수를 상기 복수의 클라이언트로 전송하는 단계를 포함하는,
    대용량 데이터 분석 방법.
  12. 제11항에 있어서,
    상기 중앙서버는 계수 추정 동작을 반복수행하고,
    상기 추정된 계수를 이전에 추정된 계수와 비교하여, 그 차이가 기 설정된 일정 정밀도보다 작은 경우, 계수 추정 동작을 종료하는 것을 특징으로 하는 대용량 데이터 분석 방법.
  13. 제11항에 있어서,
    상기 복수의 클라이언트는 중간값 산출 동작을 반복수행하고,
    상기 중앙 서버로부터 계수를 수신한 경우 또는 상기 수신된 계수와 이전에 수신한 계수의 차이가 기 설정된 일정 정밀도보다 작은 경우, 중간값 산출 동작을 종료하는 것을 특징으로 하는 대용량 데이터 분석 방법.
KR1020180006516A 2018-01-18 2018-01-18 대용량 데이터 분석 시스템 및 그 방법 KR102029942B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180006516A KR102029942B1 (ko) 2018-01-18 2018-01-18 대용량 데이터 분석 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180006516A KR102029942B1 (ko) 2018-01-18 2018-01-18 대용량 데이터 분석 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190093802A true KR20190093802A (ko) 2019-08-12
KR102029942B1 KR102029942B1 (ko) 2019-10-08

Family

ID=67624816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180006516A KR102029942B1 (ko) 2018-01-18 2018-01-18 대용량 데이터 분석 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102029942B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101695991B1 (ko) * 2011-09-06 2017-01-12 한국전자통신연구원 파일 데이터 분산 저장 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101695991B1 (ko) * 2011-09-06 2017-01-12 한국전자통신연구원 파일 데이터 분산 저장 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
정성재, "분산 처리 알고리즘을 이용한 대용량 데이터의 로지스틱 회귀분석" , 석사학위논문 (2017.08) *

Also Published As

Publication number Publication date
KR102029942B1 (ko) 2019-10-08

Similar Documents

Publication Publication Date Title
Rehman et al. Leveraging big data analytics in healthcare enhancement: trends, challenges and opportunities
Huang et al. Semiparametric analysis for recurrent event data with time-dependent covariates and informative censoring
Pearson The problem of disguised missing data
Baraff et al. Estimating uncertainty in respondent-driven sampling using a tree bootstrap method
Schminkey et al. Handling missing data with multilevel structural equation modeling and full information maximum likelihood techniques
Loog et al. Estimating mobility using sparse data: Application to human genetic variation
Didelot et al. Genomic epidemiology analysis of infectious disease outbreaks using TransPhylo
Schneider et al. An approach to model clustered survival data with dependent censoring
US10902943B2 (en) Predicting interactions between drugs and foods
US20230178189A1 (en) System and method for phenotype vector manipulation of medical data
JP2018194904A (ja) 予測システム、予測方法、および予測プログラム
Roberts et al. Bayesian modeling of time‐dependent vulnerability to environmental hazards: an example using autism and pesticide data
Carrasco et al. Errors-in-variables beta regression models
Zhong et al. Restricted mean survival time as a function of restriction time
Li et al. Federated and distributed learning applications for electronic health records and structured medical data: a scoping review
KR102029942B1 (ko) 대용량 데이터 분석 시스템 및 그 방법
Lu et al. Case-cohort designs and analysis for clustered failure time data
Kim Cure rate model with bivariate interval censored data
Hashimoto et al. The Log-Burr XII regression model for grouped survival data
Davidson et al. Efficient quartet representations of trees and applications to supertree and summary methods
Achana et al. Multivariate generalized linear mixed-effects models for the analysis of clinical trial–based cost-effectiveness data
Keshtkaran et al. Validation of a decision support model for investigation and improvement in stroke thrombolysis
Mitra et al. Analysis of interval-censored competing risks data under missing causes
Hatfield et al. Separable covariance models for health care quality measures across years and topics
Chang Maximizing an ROC‐type measure via linear combination of markers when the gold reference is continuous

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant