KR101864286B1 - 머신 러닝 알고리즘을 이용하는 방법 및 장치 - Google Patents

머신 러닝 알고리즘을 이용하는 방법 및 장치 Download PDF

Info

Publication number
KR101864286B1
KR101864286B1 KR1020170149868A KR20170149868A KR101864286B1 KR 101864286 B1 KR101864286 B1 KR 101864286B1 KR 1020170149868 A KR1020170149868 A KR 1020170149868A KR 20170149868 A KR20170149868 A KR 20170149868A KR 101864286 B1 KR101864286 B1 KR 101864286B1
Authority
KR
South Korea
Prior art keywords
data
machine learning
reliability
learning algorithm
module
Prior art date
Application number
KR1020170149868A
Other languages
English (en)
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 KR1020170149868A priority Critical patent/KR101864286B1/ko
Application granted granted Critical
Publication of KR101864286B1 publication Critical patent/KR101864286B1/ko

Links

Images

Classifications

    • G06N99/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 원시 데이터를 수집하는 단계, 원시 데이터를 전처리하는 단계, 전처리된 데이터를 이용하여 데이터셋을 생성하는 단계, 데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가하는 단계를 포함하되, 원시 데이터의 형태 및 전처리 방법에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 하는 머신 러닝 알고리즘을 이용하는 방법을 개시한다. 본 발명에 따르면, 머신 러닝 알고리즘을 이용한 모델의 평가에 있어서 데이터의 전처리 과정 및 데이터의 형태에 따른 신뢰도 기반의 점수를 평가의 지표로 사용할 수 있다.

Description

머신 러닝 알고리즘을 이용하는 방법 및 장치{METHOD AND APPARATUS FOR USING MACHINE LEARNING ALGORITHM}
본 발명은 머신 러닝 알고리즘을 이용하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 데이터의 형태 및 데이터 전처리 방법에 따라 신뢰도 기반의 점수를 차등하여 머신 러닝 모델에 부여하고, 이를 고려하여 훈련된 머신 러닝 모델을 평가하는 방법 및 장치에 관한 것이다.
머신 러닝(machine learning, ML)은 매일 사용되지만 인지되지 못할 정도로 우리 삶에 만연한 기술이다. 실제 인터넷 검색, 일기예보 확인, 운전, 스마트폰 음성인식 기능 등이 머신 러닝이 활용된 혜택들로, 오늘날 머신 러닝은 컴퓨터 과학의 한계를 재정의하고 확대하는 핵심 촉매제로 인식되고 있다.
머신 러닝의 기본 개념은 수십 년 전에 정립되었지만, 이에 대한 관심이 최고조로 달한 것은 최근이다. 최근 가트너 연구에 따르면, 머신 러닝을 포함하는 첨단 분석이 비즈니스 분석 소프트웨어 시장에서 가장 빠르게 성장 중이다.
머신 러닝의 중심에는 데이터로부터 지식 추출을 목표로 하는 여러 통계적 프레임워크가 존재하며, 추출하고자 하는 지식과 가용 데이터의 종류에 맞는 프레임워크 선택이 가능하다. 이러한 머신 러닝 프레임워크는 데이터의 군집화(clustering)와 차원 축소(dimensionality reduction)를 위한 자율 학습(unsupervised learning), 능동 학습, 준지도 학습(semisupervised learning), 강화 학습 등이 있다.
가장 대표적인 머신 러닝은 '지도 학습(supervised learning)'으로, 전체 기계 학습 관련 용례의 95%에 해당한다. 지도 학습의 필수 요소인 '훈련 데이터(training data)'는 머신 러닝 모델을 가르치는데 사용되는 개념으로 머신 러닝이 제공해야만 하는 관측값과 결과값 간의 바람직한 대응관계(mapping)를 설명한다. 이러한 대응관계를 활용해 매출, 수요 등의 정량예측이나 기계 고장, 고객 구매/이탈 같은 특정 상황의 분류, 해당 상황이 일어날 가능성을 예측할 수 있다.
지도 학습에서의 모델 선정(model selection)이란, 특정 데이터로부터 예측하고자 하는 상황을 매핑(mapping)하거나 추상적인 패턴을 설명하는 방식을 고르는 것이다. 가장 단순한 유형에는 선형 회귀 분석(linear regressions) 또는 성과지표(scorecards)가 있고, 조금 발전된 형태에는 의사결정 트리(decision trees)와 신경 회로망(neural nets)이 있으며, 현재 가장 발전된 유형으로는 앙상블 모델(ensemble model)과 심층 신경 회로망(deep neural nets)이 있다.
머신 러닝 패키지 애플리케이션을 이용하는 시스템 구축은 다음의 5단계 과정, 즉 비즈니스의 이해(business understanding), 데이터의 이해(data understanding), 데이터 준비 및 특징 엔지니어링(data preparation and feature engineering), 검증과정을 포함한 모델 프로토타이핑(model prototyping) 그리고 모델 설치(model development)를 포함한다.
1~2단계는 당면한 비즈니스 문제와 관련 비즈니스 프로세스에 대한 기본적인 이해를 바탕으로 가용 데이터 소스 중 활용 가능한 데이터를 모으는 작업을 포함한다. 비즈니스 문제에 대한 깊은 이해 없이는 머신 러닝 프레임워크에 맞게 데이터를 적절히 변환하는데 실패할 수 있다.
3단계는 데이터 사이언티스트들이 종종 작업 시간의 대부분을 할애하는 '데이터 준비'와 '피처 엔지니어링' 단계이다. 이 단계의 목표는 정확한 예측과 진단값을 제공할 가장 연관성 있는 데이터 파트에 접근하는 것이다. 또한, 데이터가 기계 학습 시스템에 적용되는 방식과 관련이 깊다. 이를 피처 엔지니어링이라 부르며, 대부분 시행착오를 통해 행해진다. 3단계에서 많은 시간이 소요되는 만큼, 데이터 과학자는 대량의 데이터를 거르고, 변환하고, 합치고, 분류하는 전문가, '데이터 랭글러(data wrangler)'의 도움을 받기도 한다.
4단계에서는 훈련과 검증이 이뤄지며, 계산적으로 까다로울 수 있다. 특히, 심층 신경 회로망이나 서포트 벡터 머신(support vector machine)과 같이 복잡한 기계 학습 모델을 사용할 때 더욱 그러하다. 테스팅 단계 자체도 계산적으로 까다로울 수 있으며, 데이터가 부족해 전문가 검증 테크닉이 요구되는 경우 특히 그렇다.
5단계는 최종 결과를 구현할 수 있는 비즈니스 프로세스 인프라가 필요한 단계이다. 이 단계의 목적은 더욱 정확한 의사 결정을 위해 기계 학습에서 도출한 패턴을 비즈니스 환경에 적용하는 것이다. 일반적인 모델 구축 방법에는 인-데이터베이스 스코어링(in-database scoring), 예측모형표시언어(predictive model markup language), R언어(R language), 서비스지향 아키텍처(SOA: service-oriented architecture) 또는 룰 엔진(rule engine) 등이 있다.
도 1은 종래의 기술에 따른 머신 러닝 패키지 애플리케이션을 이용하는 시스템 구축 과정을 나타낸다.
도 1을 참조하면, 비즈니스 이해가 전제된 상태에서, 상기 설명의 2단계에 해당하는 데이터의 이해 및 수집에 의해 원시 데이터가 준비된다. 그리고 전처리 과정을 거쳐 원시 데이터로부터 훈련 데이터가 생성된다. 이러한 훈련 데이터는 머신 러닝 모델을 훈련하는데 사용되고, 훈련된 모델이 구축된다. 마지막으로 훈련된 모델에 분석 대상의 데이터를 이용하여 분석 및/또는 예측을 하고, 이에 따른 분석 및/또는 예측 결과는 비즈니스에서 이용될 수 있다.
종래의 기술에 따르면 훈련된 모델 중에서 최적의 모델을 선택함에 있어서 머신 러닝 알고리즘 별로 적용된 스코어를 단순 비교함에 그치고 있다. 즉, 종래의 기술에서는 데이터의 전처리 결과가 적용될 수 있는 머신 러닝 모델 평가를 위한 계산법이 존재하지 않았다. 또한, 데이터의 종류에 따라 신뢰도 기반의 점수를 차등하여 적용하고 이를 머신 러닝 모델의 평가 지표로 사용하지 않았다. 따라서 데이터의 전처리 유형 및/또는 변수 또는 데이터의 종류에 따른 신뢰도의 차이를 명확히 구분하지 못하였다.
이러한 종래 기술에 따른 문제점을 개선하기 위하여, 본 발명에서는 머신 러닝 알고리즘 및 모델 계산에 신뢰도 기반의 점수를 반영하여 전처리된 데이터 및/또는 데이터의 형태에 따라 높은 정확도를 갖는 머신 러닝 모델을 구축할 수 있는 방법 및 장치를 제공하려 한다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명이 해결하려는 과제는 데이터의 전처리 과정 및 데이터의 형태가 신뢰도 기반의 점수로 반영되는 머신 러닝 알고리즘을 이용하는 방법 및 장치를 제공하는 것이다.
본 발명이 추가적으로 해결하려는 과제는, 머신 러닝 알고리즘 및 모델에 따른 정확도 점수에 신뢰도 점수가 반영되는 머신 러닝 알고리즘을 이용하는 방법 및 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법은, 머신 러닝(machine learning) 훈련 데이터(training data)의 데이터셋(data set) 생성에 필요한 원시 데이터(raw data)를 수집하는 단계; 상기 원시 데이터를 전처리(pre-processing)하는 단계; 전처리된 데이터를 이용하여 데이터셋을 생성하는 단계; 데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가하는 단계를 포함하되, 원시 데이터의 형태 및 전처리 방법에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
여기서, 상기 원시 데이터(raw data)를 수집하는 단계는, 연속형 데이터(continuous data)와 이산 데이터(discrete data)로 구성되는 수치 데이터(numerical data) 및 명목형 데이터(nominal data)와 서수 데이터(ordinal data)로 구성되는 카테고리 데이터(categorical data) 수집을 포함하는 것을 특징으로 한다.
여기서, 상기 원시 데이터를 전처리하는 단계는, 결측값(missing value)을 처리하는 단계를 포함하고, 결측값을 삭제, 다른 값으로 대체 또는 예측 값 삽입에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
여기서, 상기 원시 데이터를 전처리하는 단계는, 이상값(outlier value)을 처리하는 단계를 포함하고, 이상값을 삭제, 다른 값으로 대체, 변수화, 리샘플링 또는 케이스를 분리하여 분석함에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
여기서, 상기 데이터셋을 생성하는 단계는, 생성된 데이터셋 내의 데이터 및 변수를 확인하는 데이터셋 확인 단계를 포함하고, 독립/종속 변수, 변수 유형, 또는 변수 데이터 타입에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
여기서, 상기 머신 러닝 알고리즘을 이용하는 방법은, 상기 생성된 데이터셋의 데이터를 이용하여 피쳐 엔지니어링(feature engineering)하는 단계를 더 포함하고, 스케일링, 바이닝(binning), 변환 또는 더미(dummy) 방법을 통해 선택된 피쳐(feature)에 따라 상기 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
본 발명의 일 실시 예에 따른, 머신 러닝 알고리즘을 이용하는 장치는, 머신 러닝(machine learning) 훈련 데이터(training data)의 데이터셋(data set) 생성에 필요한 원시 데이터(raw data)를 입력받는 데이터 입력 모듈; 상기 원시 데이터를 전처리(pre-processing)하는 데이터 전처리 모듈; 전처리된 데이터를 이용하여 데이터셋을 생성하는 데이터셋 생성 모듈; 데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가하는 모델 평가 모듈을 포함하되, 상기 모델 평가 모듈은, 원시 데이터의 형태 및 전처리 방법에 따라 상기 신뢰도 기반의 점수를 차등하여 평가 대상의 머신 러닝 모델에 부여하는 것을 특징으로 한다.
본 발명에 의하면, 머신 러닝 알고리즘을 이용한 모델의 평가에 있어서 데이터의 전처리 과정 및 데이터의 형태에 따른 신뢰도 기반의 점수를 평가의 지표로 사용할 수 있다.
또한, 데이터의 전처리 과정을 통해 머신 러닝 알고리즘의 정확도를 높일 수 있다.
도 1은 종래의 기술에 따른 머신 러닝 패키지 애플리케이션을 이용하는 시스템 구축 과정을 나타낸다.
도 2는 본 발명의 일 실시 예에 따른 머신 러닝 시스템 환경의 예시도이다.
도 3은 본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치의 블록도이다.
도 4는 도 3의 제어부의 블록도이다.
도 5는 본 발명의 다른 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치의 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법의 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 데이터 입력 및 출력에 관한 예시도이다.
이하, 첨부한 도면을 참조하여 본 발명의 머신 러닝 알고리즘을 이용하는 방법 및 장치에 대한 바람직한 실시 예를 상세히 설명한다.
본 발명의 실시 예에 따른 머신 러닝을 이용하는 장치(100)는 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 머신 러닝 알고리즘을 이용하는 장치(100)는 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 장치(100)는 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 예컨대, 데이터 입력 모듈(171), 데이터 전처리 모듈(172), 데이터셋 생성 모듈(173), 데이터셋 확인 모듈(174), 피쳐 엔지니어링 모듈(175), 머신 러닝 모델 생성 모듈(176), 머신 러닝 모델 훈련 모듈(177) 및 머신 러닝 모델 평가 모듈(178)은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다.
특히 클라우드 서버(300)가 이용되는 경우 ML 알고리즘을 이용하는 장치(100) 내의 각종 모듈들 중에서 일부 모듈은 클라우드 서버 내에 존재할 수 있으며, 사용자는 클라우드 서버 내에 존재하는 상기 일부 모듈을 시각화 장치(100) 내의 로컬 메모리 영역에서 실행시킬 수 있다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
이하 본 발명의 일 실시 예에 따른 머신 러닝 시스템 환경(1) 및 머신 러닝 알고리즘을 이용하는 장치(100)에 대해 설명하기로 한다.
도 2를 참조하면, 머신 러닝 시스템 환경(1)은 머신 러닝 알고리즘을 이용하는 장치(100)에 해당하는 사용자 단말(100), 서버(300) 및 네트워크(400)를 포함한다.
사용자 단말(100)은 머신 러닝 알고리즘을 이용하는 장치로서 컴퓨터 프로그램 코드, 예를 들면 데이터베이스 서버, 클라우드 서버 및 머신 러닝 알고리즘에 관한 라이브러리를 제공하는 서버에 클라이언트로 접속하여 컴퓨터 프로그램 코드를 작성하고 편집할 수 있는 프로그래밍 툴 전용의 장치, 프로그래밍 에디터, 코드 편집 장치 또는 프로그래밍 수행 및 편집 이외에 범용의 연산을 수행할 수 있는 장치로서 머신 러닝 알고리즘을 이용하는 통합 모듈 내에 포함된 컴퓨터 명령어를 실행하는 컴퓨터 장치, 단말기(terminal) 및 무선단말을 포함한다.
상기 무선단말의 다양한 실시 예들은 셀룰러 전화기, 무선 통신 기능을 가지는 스마트 폰, 무선 통신 기능을 가지는 개인 휴대용 단말기(PDA), 무선 모뎀, 무선 통신 기능을 가지는 휴대용 컴퓨터, 무선 통신 기능을 가지는 디지털 카메라와 같은 촬영장치, 무선 통신 기능을 가지는 게이밍(gaming) 장치, 무선 통신 기능을 가지는 음악저장 및 재생 가전제품, 무선 인터넷 접속 및 브라우징이 가능한 인터넷 가전제품뿐만 아니라 그러한 기능들의 조합들을 통합하고 있는 휴대형 유닛 또는 단말기들을 포함하되, 이에 한정되는 것은 아니다.
서버(300)는 파일 서버, 업데이트 서버, FTP 서버, 데이터베이스 서버, 클라우드 서버, 웹 서버 및 머신 러닝 알고리즘 라이브러리 서버를 포함할 수 있으나 이에 한정되는 것은 아니고, 사용자 단말(100)이 이용하는 각종 파일, 예를 들어 원시 데이터 파일, 머신 러닝 알고리즘 라이브러리 파일, 확장 프로그램 및 서비스 팩을 저장하고, 사용자 단말의 접속을 허용하여 파일 다운로딩에 의한 상기 파일들의 수신 또는 업데이트를 제공한다.
네트워크(400)는 LAN, WAN 형태의 유선 네트워크, WiFi, 블루투스, 지그비 등의 근거리 무선 네트워크 및 다양한 종류의 셀룰러 무선통신망을 포함하되, 이에 한정되는 것은 아니다.
사용자 단말(100)에 해당하는 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치(100)는 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법을 구성하는 컴퓨터 명령어의 집합인 각종 모듈을 포함하는 통합 모듈을 저장한다.
머신 러닝 알고리즘을 이용하는 장치(100)는 인스톨되지 않은 머신 러닝 알고리즘을 이용하는 방법에 관한 통합 모듈이 저장된 미디어를 읽고, 이를 인스톨하여 머신 러닝 알고리즘을 이용하는 장치(100) 내에 설치할 수 있다. 상기 미디어는 광학 저장 미디어, 예를 들어 CD-ROM 및 DVD-ROM을 포함한다. 또한, 통합 모듈은 서버(300)로부터 내려 받은(downloaded) 바이너리 파일 형태로 제공될 수도 있다. 머신 러닝 알고리즘을 이용하는 장치(100)는 네트워크(400)를 통해서 서버(300)로부터 각종 파일을 내려 받아 상기 통합 모듈을 업데이트할 수 있다. 상기 머신 러닝 알고리즘을 이용하는 장치(100)에 대해 상세히 설명하기로 한다.
도 3은 본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치의 블록도이다.
도 3을 참조하면, 머신 러닝 알고리즘을 이용하는 장치(100)는 입력 디바이스(input device)(110), 디스플레이 디바이스(display device)(120), 출력 디바이스(output device)(130), 저장 장치(storage device)(140), 통신 장치(communication device)(150), 전원 장치(power device)(160) 및 제어부(control unit)(170)를 포함한다.
입력 디바이스(110)는 컴퓨터 프로그램 코드 작성에 필요한 데이터 및 사용자 작업 환경의 각종 파라미터 설정을 위한 정보 입력을 수행하는 키보드, 터치스크린, 마우스, 전자펜 및 음성 입력장치, 예를 들어 마이크로폰을 포함하되, 이에 한정되는 것은 아니다. 실질적으로 사용자 입력을 통해 입력 디바이스(110)는 문자 및 개체를 문서 내에 입력한다. 여기서, 문자는 숫자, 기호 및 공백을 포함하는 개념이고, 개체는 아이콘, 그림, 도형, 표 및 차트와 같은 다양한 종류의 양식 개체를 포함한다.
디스플레이 디바이스(120)는 문서 작성을 위한 편집 화면의 프레임 출력을 수행하는 브라운관(cathode-ray tube, CRT), 액정 디스플레이(liquid crystal display, LCD), 플라즈마 디스플레이 패널(plasma display panel, PDP), 발광다이오드 (light emitting diode, LED) 디스플레이, 유기 발광다이오드(organic light emitting diode, OLED) 디스플레이를 포함하되, 이에 한정되는 것은 아니다.
출력 디바이스(130)는 프린터, 플로터, 빔프로젝터, 텍스트 음성 변환(text to sound, TTS) 장치와 스피커 및 이어폰을 포함하되, 이에 한정되는 것은 아니다.
저장 장치(140)는 머신 러닝 알고리즘을 이용하는 장치(100)로부터 분리가 가능/불가능한 모든 형태로서, 자기테이프, 자기드럼, 플로피 디스크, ZIP 드라이브 및 하드 디스크 드라이브(hard disk drive, HDD)와 같은 자기 방식의 저장장치, SD 카드, USB 메모리 및 솔리드 스테이트 드라이브(solid state drive, SSD)와 같은 플래시 메모리를 이용하는 전기 방식의 저장장치 및 CD-ROM 드라이브, DVD-ROM 드라이브, 블루레이 디스크(blu-ray disc) 드라이브와 같은 광학 방식의 저장장치를 포함하되, 이에 한정되는 것은 아니다.
통신 장치(150)는 네트워크(400)의 각종 통신망에 대응하는 통신 모듈, 예를 들어 블루투스 모듈, WiFi 모듈, 이더넷 인터페이스 카드, USB 모듈, 셀룰러 무선통신 모듈, 모뎀 및 무선 공유기를 포함하되, 이에 한정되는 것은 아니다.
전원 장치(160)는 AC를 DC로 변환하는 파워 서플라이, 어댑터, SMPS와 리튬이온 전지, 납축전지, 연료 전지 및 바이오에탄올 전지와 같은 2차 전지와 1차 전지를 포함하되, 이에 한정되는 것은 아니다. 이하 제어부(170)에 대해 구체적으로 설명하기로 한다.
도 4는 도 3의 제어부의 블록도이다.
도 4를 참조하면, 제어부(170)는 프로세서(central processing unit, CPU)와, 운영체제 및 머신 러닝 알고리즘을 이용하는 방법에 관한 통합 모듈(170-2)이 로드된 메모리(170-1)를 포함한다. 구체적으로 제어부(170)는 메모리(170-1) 영역에서, 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법을 수행하는 컴퓨터 명령어가 포함된 통합 모듈(170-2) 중에서 데이터 입력 모듈(171), 데이터 전처리 모듈(172), 데이터셋 생성 모듈(173), 데이터셋 확인 모듈(174), 피쳐 엔지니어링 모듈(175), 머신 러닝 모델 생성 모듈(176), 머신 러닝 모델 훈련 모듈(177) 및 머신 러닝 모델 평가 모듈(178)을 포함한다. 제어부(170)는 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법이 구현되도록 머신 러닝 알고리즘을 이용하는 장치(100) 내의 각 구성요소 및 모듈들을 제어한다.
구체적으로 제어부(170)는 머신 러닝 알고리즘을 이용하는 장치(100)가 입력 디바이스(110)를 통해 사용자 입력을 받아 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법에 따른 프로그래밍 코드 작성 프로세스, 작성된 프로그래밍 코드 및 사용자 인터페이스를 나타내는 디스플레이(120)를 통한 화면 프레임의 출력 프로세스, 출력 디바이스(130)를 통한 작성된 프로그래밍 코드를 종이 위에 출력하거나 음성으로 출력하는 프로세스, 작성된 프로그래밍 코드를 저장 장치(140)에 저장하는 프로세스, 작성에 필요한 각종 데이터를 수신하거나 작성된 프로그래밍 코드를 통신 장치(150)를 이용하여 네트워크(400)를 통해 서버(300) 또는 외부 단말에 전송하는 프로세스 및 전원 장치(160)를 통한 파워 공급 프로세스를 제어부(170) 내에 구성된 프로세서(CPU), 운영체제(OS) 및 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법에 관한 컴퓨터 명령어를 포함하는 통합 모듈이 로드된 메모리를 이용하여 제어한다.
통합 모듈(170-2)이 포함하는 각종 모듈들(171 내지 178)에 대한 자세한 설명은 후술하기로 한다.
컴퓨팅 장치(500)에 해당하는 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치(100)는 다른 실시 예를 통해 보다 구체적으로 설명될 수 있다.
도 5는 본 발명의 다른 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치의 블록도이다.
도 5를 참조하면, 컴퓨팅 장치(500)에 해당하는 머신 러닝 알고리즘을 이용하는 장치(100)는 입력 인터페이스 장치(510), 출력 인터페이스 장치(520), 메모리(531), 저장장치(532), 전원 장치(540), 프로세서(550), 네트워크 인터페이스 장치(560), 무선통신 장치(570) 및 버스(580)를 포함한다.
입력 인터페이스 장치(510)는 사용자의 입력에 따라 문서작성에 필요한 문자 또는 개체를 입력한다. 입력 인터페이스 장치(510)는 키보드(keyboard), 터치스크린(touch screen), 마우스(mouse), 전자펜(stylus pen) 및 펜 태블릿(pen tablet)을 포함하되, 이에 한정되는 것은 아니다.
출력 인터페이스 장치(520)는 프로그래밍 툴 관련 사용자 인터페이스 등을 표시하는 디스플레이(display) 및 문서를 프린트 출력하는 프린터(printer)를 포함한다. 또한, 출력 인터페이스 장치(520)는 문서 내의 문자를 음성합성(text to speech, TTS) 엔진을 이용하여 음성으로 출력하는 스피커(speaker), 헤드폰(head-phone) 및 헤드셋(head-set)을 포함한다.
프로세서(550)는 메모리(531) 및/또는 저장 장치(532)에 저장된 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법에 관한 통합 모듈이 포함하고 있는 컴퓨터 명령을 실행할 수 있다. 프로세서(550)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(531)와 저장 장치(532)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(531)는 읽기 전용 메모리(read only memory, ROM) 및/또는 랜덤 액세스 메모리(random access memory, RAM)로 구성될 수 있다.
무선통신 장치(570)는 근거리 무선통신, 무선 데이터 통신 및 무선 음성 통신을 위한 장치를 포함한다.
머신 러닝 알고리즘을 이용하는 장치(100)에 해당하는 컴퓨팅 장치(500)에 포함된 각각의 구성 요소들은 버스(580)에 의해 연결되어 서로 통신을 수행한다.
이하 상기 설명한 머신 러닝 알고리즘을 이용하는 장치(100)가 머신 러닝 알고리즘을 이용하는 방법에 관한 통합 모듈이 포함하는 컴퓨터 명령의 실행을 통해 수행되는 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법을 도 4, 도 6 및 도 7을 참조하여 설명하기로 한다.
본 발명에 따른 머신 러닝 알고리즘을 이용하는 장치가 수행하는 머신 러닝 알고리즘을 이용하는 방법(S100)은 디스플레이 디바이스(display device)(120) 및 적어도 하나 이상의 입력 디바이스(110)를 포함하는 컴퓨터 시스템에 기반하는 머신 러닝 알고리즘을 이용하는 장치(100)에서 실행되는 컴퓨터 명령어 셋 형태로 코드화될(coded) 수 있음을 전제로 한다.
도 6은 본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법(S100)의 흐름도이다.
도 3 및 도 6을 참조하면, 본 발명의 일 실시 예에 따른 머신 러닝 알고리즘을 이용하는 방법(S100)은 S110 내지 S130 단계를 포함한다.
도 6을 참조하면, 상기 방법(S100)은 S110 내지 S150 단계를 포함한다.
먼저, 데이터 입력 모듈(171)이 머신 러닝 훈련 데이터(training data)의 데이터셋(data set) 생성에 필요한 원시 데이터(raw data)를 수집한다(S110).
여기서, 원시 데이터(raw data)의 수집은, 연속형 데이터(continuous data)와 이산 데이터(discrete data)로 구성되는 수치 데이터(numerical data) 및 명목형 데이터(nominal data)와 서수 데이터(ordinal data)로 구성되는 카테고리 데이터(categorical data) 수집을 포함하는 것을 특징으로 한다.
머신 러닝 알고리즘을 이용하여 머신 러닝 모델을 생성하고 이를 훈련 및 테스트하기 위해서는 방대한 양의 데이터가 필요하다. 그리고 이 데이터는 질적인 면에서 가공된 양질의 데이터도 중요하지만, 양적인 면에서 머신 러닝 알고리즘에 의한 오버피팅(overfitting)을 방지하고 일반화하기에 충분한 빅데이터(big data) 수준의 많은 양의 데이터가 필수적이다.
개인 사용자가 빅데이터 수준의 많은 양의 데이터를 수집하는 것은 쉬운 일이 아니다. 따라서 사용자는 외부 서버(300) 중에서 데이터베이스 서버에 접속하여 원시 데이터 내지는 가공된 데이터를 이용할 수 있다. 여기서, 가공된 데이터는 본 발명에 따른 머신 러닝 알고리즘을 이용하는 방법에 포함된 전처리 과정을 거친 데이터일 수 있다. 이러한 가공된 데이터는 데이터 테이블(data table)을 포함하는 데이터셋(data set) 형태로 제공될 수 있다.
다음으로 데이터 전처리 모듈(172)이 원시 데이터를 전처리(pre-processing)한다(S120).
여기서, 원시 데이터의 전처리는, 결측값(missing value) 처리를 포함한다. 결측값이 있는 상태로 모델을 만들게 될 경우 변수 간의 관계가 왜곡될 수 있기 때문에 모델의 정확성이 떨어지게 된다. 결측값이 발생하는 유형은 다양한데, 결측값이 무작위로 발생하느냐, 아니면 결측값의 발생이 다른 변수와 관계가 있는지 여부에 따라 결측값을 처리하는 방법이 달라질 수 있다.
결측값 삭제의 경우 결측값이 발생한 모든 관측치를 삭제하거나, 데이터 중 모델에 포함시킬 변수들 중 발생된 관측 값만 삭제하는 방법이 있을 수 있다. 전체 삭제는 간편하지만 관측치가 줄어들어 모델의 유효성이 낮아질 수 있다. 부분 삭제는 모델에 따라 변수가 각각 다르기 때문에 관리 비용이 늘어난다는 단점이 있다. 이 경우 전체 삭제와 부분 삭제는 모델 평가에 있어서 신뢰도 기반의 점수가 차등되게 부여될 수 있다. 예를 들어 전체 삭제 대비 부분 삭제에 더 높은 신뢰도 기반의 점수를 부여하는 것이다.
높은 신뢰도 기반의 점수가 부여되는 결측값 삭제의 유형은 무작위 발생된 결측값의 삭제이다. 즉 무작위 발생된 결측값은 일정 패턴이 있는 결측값 대비 높은 신뢰도 기반의 점구를 부여 받을 수 있다.
다른 값으로의 대체는 관측치의 평균, 최빈값, 중간값 등이 이용될 수 있다. 모든 관측치의 평균값으로 대체되는 일괄 대체 방법과 범주형 변수를 활용해 유사한 유형의 평균값 등으로 대체되는 유사 유형 대체 방법이 있다. 이 경우 일괄 대체 대비 범주형 변수를 활용하는 대체에 보다 높거나 낮은 신뢰도 기반의 점수를 부여 받을 수 있다.
결측값의 발생이 다른 변수와 관계가 있는 경우 대체 방법이 유용한 측면은 있지만, 유사 유형 대체 방법의 경우 어떤 범주형 변수를 유사한 유형으로 선택할 것인지는 자의적으로 선택되므로 모델이 왜곡될 가능성이 존재한다. 이러한 왜곡 가능성으로 인해 유사 유형 대체 방법이 일괄 대체 대비 더 낮은 신뢰도 점수를 부여 받을 수 있다.
예측 값 삽입이란, 결측값이 없는 관측치를 훈련 데이터로 사용해서 결측값을 예측하는 모델을 만들고, 이 모델을 통해 결측값이 있는 관측 데이터의 결측값을 예측하는 방법이다. 회귀(regression)나 로지스틱 회귀(logistic regression)가 주로 사용된다.
예측 값 삽입은, 대체하는 방법보다 조금 덜 자의적이나, 결측값이 다양한 변수에서 발생하는 경우 사용 가능 변수 수가 적어 적합한 모델을 만들기 어렵고, 또 이렇게 만들어진 모델의 예측력이 낮은 경우에는 사용하기 어려운 방법이다. 따라서 적은 변수의 모델에 예측값 삽입이 사용되는 경우 낮은 신뢰도 기반의 점수가 부여될 수 있다.
이상과 같이 본 발명에서는 결측값을 삭제, 다른 값으로 대체 또는 예측 값 삽입에 따라 처리하는 과정에 관한 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
또한, 원시 데이터의 처리는, 이상값(outlier value) 처리를 포함한다.
이상값이란 데이터/샘플과 동떨어진 관측치로, 모델을 왜곡할 가능성이 있는 관측치를 말한다. 이상값을 찾아내기 위한 쉽고 간단한 방법은 변수의 분포를 시각화하는 것이다. 일반적으로 하나의 변수에 대해서는 박스 플롯(boxplot)이나 히스토그램(histogram)이, 두개의 변수 간 이상값을 찾기 위해서는 산점도(scatter plot)가 사용된다.
시각적으로 확인하는 방법은 직관적이지만 자의적이기도 하고 하나하나 확인해야 해서 번거로운 측면이 있다. 두 변수 간 이상값을 찾기 위한 또 다른 방법으로는 두 변수 간 회귀 모형에서 Residual, Studentized residual(혹은 standardized residual), leverage, Cook's D값을 확인하는 것이 있다.
이상값이 사용자 오류(human error)에 의해서 발생한 경우에는 해당 관측치를 삭제하면 된다. 삭제하는 방법은, 단순 오타나, 주관식 설문 등의 비현실적인 응답, 데이터 처리 과정에서의 오류 등의 경우에 사용된다. 절대적인 관측치의 숫자가 작은 경우, 삭제의 방법으로 이상값을 제거하면 관측치의 절대량이 작아지는 문제가 발생할 수 있다.
이런 경우 이상값이 사용자 오류에 의해 발생했더라도 관측치를 삭제하는 대신 다른 값(평균 등)으로 대체하거나, 결측값과 유사하게 다른 변수들을 사용해서 예측 모델을 만들고, 이상값을 예측한 후 해당 값으로 대체하는 방법도 사용될 수 있다.
이상값이 자연 발생한 경우, 단순 삭제나 대체의 방법을 통해 수립된 모델은 설명/예측하고자 하는 현상을 잘 설명하지 못할 수도 있다. 따라서 이러한 경우 단수 삭제 또는 대체의 방법에 대해서 낮은 신뢰도 기반의 점수가 부여될 수 있다.
예를 들어 다른 관측치들만 보면 경력과 연봉이 비례하는 현상이 존재하는 것처럼 보이지만, 5년차의 연봉 $35,000인 이상값이 포함됨으로써 모델의 설명력이 크게 낮아진다. 자연발생적인 이상값의 경우, 바로 삭제하지 말고 좀 더 찬찬히 이상값에 대해 파악하는 것이 중요하다.
예를 들어 위 이상값의 경우 의사 등 전문 직종에 종사하는 사람이라고 가정해 봅시다. 이럴 경우 전문 직종 종사 여부를 Yes ?? No로 변수화 하면 이상값을 삭제하지 않고 모델에 포함시킬 수 있다.
자연 발생한 이상값을 처리하는 또 다른 방법으로는 해당 이상값을 분리해서 모델을 만드는 방법이 있다. 15년 이상의 경력을 가진 사람의 경우 이상값이 존재한다고 가정해 보면, 이 관측치는 경력은 길지만 연봉이 비례해서 늘어나지 않은 사람이다.
위의 첫 번째 예는 설명 변수, 즉 경력 측면에서는 이상값(outlier)이 아니고, 종속 변수인 연봉만 예측치를 벗어나는 반면, 본 케이스는 설명 변수, 종속 변수 모두에서 이상값이라는 점이다. 이 경우 간단하게는 이상값을 삭제하고 분석 범위는 10년 이내의 경력자를 대상으로 한다는 설명 등을 다는 것으로 이상값을 처리할 수 있다.
또한, 이상값 처리의 방법 중에서 케이스를 분리하여 분석하는 것이 있다.
위와 동일한 사례에서 실은 경력이 지나치게 길어질 경우 연봉이 낮아지는 현상이 실제로, 예를 들어 건강상의 이유로 발생할 수도 있다. 이 경우 이상값을 대상에서 제외시키는 것은 현상에 대한 정확한 설명이 되지 않을 수 있다. 보다 좋은 방법은 이상값을 포함한 모델과 제외한 모델을 모두 만들고 각각의 모델에 대한 설명을 다는 것입니다.
자연 발생한 이상값에 별다른 특이점이 발견되지 않는다면, 단순 제외보다는 케이스를 분리하여 분석되는 것이 높은 신뢰도 기반의 점수가 부여될 수 있다.
이상과 같이 본 발명은 이상값을 삭제, 다른 값으로 대체, 변수화, 리샘플링 또는 케이스를 분리하여 분석하는 과정에 관한 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
다음으로 데이터셋 생성 모듈(173)이 전처리된 데이터를 이용하여 데이터셋을 생성한다(S130).
여기서, 데이터셋을 생성하는 단계는, 생성된 데이터셋 내의 데이터 및 변수를 확인하는 데이터셋 확인 단계를 포함한다.
변수를 확인 하는 것은 변수의 종류, 즉 독립/종속 변수, 변수의 유형 확인, 즉 범주형/연속형, 변수 데이터의 확인, 즉 date/character/numeric 등을 포함한다. 이러한 변수 확인 작업에 의해 확인된 변수에 따라 서로 다른 신뢰도 기반의 점수가 부여될 수 있다.
데이터를 확인하는 것은, 변수의 수, 예를 들어 단변수/이변수/셋 이상의 변수를 확인하는 것을 포함한다. 단변수의 경우 변수 하나에 대해 확인을 하고 이를 히스토그램(histogram) 또는 박스 플롯(boxplot)을 이용하여 범주형 또는 수치형 변수를 빈도수 분호 또는 평균/최빈값/중간값을 통해 표시할 수 있다.
이변수의 경우, 2개 변수 간의 관계를 연속형 vs. 연속형, 범주형 vs. 범주형 그리고 범주형 vs. 연속형으로 나누고 각 경우에 그래프, 예를 들어 추세선 산점도(scatter plot), 누적막대그래프, 100%기준 누적 막대그래프, 범주별 히스토그램(histogram)을 이용하고, 분석방법으로 correlation 분석, 이변수 상관관계, chi-square 분석, 이변수가 독립적인지 확인, 범주의 종류에 따라 2개인 경우 t-test/z-test, 3개이상인 경우 분산분석(analysis of variance, ANOVA)을 이용할 수 있다.
셋 이상의 변수의 경우, 범주형 변수가 하나이상 포함된 경우 변수를 범주에 따라 쪼갠 후에 이변수 방법에 따라 분석할 수 있다.
이상과 같이 본 발명은 데이터셋 확인 과정을 통해 독립/종속 변수, 변수 유형, 또는 변수 데이터 타입에 따라 신뢰도 기반의 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 한다.
또한, 머신 러닝 알고리즘을 이용하는 방법(S100)은, 생성된 데이터셋의 데이터를 이용하여 피쳐 엔지니어링(feature engineering)하는 단계를 포함한다.
피쳐 엔지니어링(feature engineering)이란, 기존의 변수를 사용해서 데이터에 정보를 추가하는 일련의 과정이다. 새로 관측치나 변수를 추가하지 않고도 기존의 데이터를 보다 유용하게 만드는 방법론 중의 하나이다.
그 방법 중에서 스케일링(scaling)은 변수의 단위를 변경하고 싶거나, 변수의 분포가 편향되어 있을 경우, 변수 간의 관계가 잘 드러나지 않는 경우에 사용된다.
가장 자주 사용하는 방법으로는 Log 함수가 있고, 유사하지만 좀 덜 자주 사용되는 Square root를 취하는 방법도 있다.
바이닝(binning) 방법은, 연속형 변수를 범주형 변수로 만드는 방법이다. 예를 들어 연봉 데이터가 수치로 존재하는 경우, 이를 100만원 미만, 101만원~200만원 하는 식으로 범주형 변수로 변환하는 것이다.
바이닝에는 특별한 원칙이 있는 것이 아니기 때문에, 분석가의 비즈니스 이해도에 따라 창의적인 방법으로 바이닝 할 수 있다.
변환(transform) 방법은, 기존 존재하는 변수의 성질을 이용해 다른 변수를 만드는 방법이다. 예를 들어 날짜 별 판매 데이터가 있다면, 날짜 변수를 주중/주말로 나눈 변수를 추가한다던지, 스포츠 관람객 데이터의 경우 해당 일에 특정 팀의 경기가 있는지 여부 등을 추가하는 것이다.
변환(transform)에도 특별한 원칙이 있는 것은 아니며, 분석가의 Business 이해도에 따라 다양한 변수가 생성될 수 있다.
더미(dummy) 방법은, 바이닝과는 반대로 범주형 변수를 연속형 변수로 변환하기 위해 사용된다. 사용하고자 하는 분석 방법론에서 필요한 경우에 주로 사용된다.
이상과 같이 본 발명은 스케일링, 바이닝(binning), 변환 또는 더미(dummy) 방법을 통해 선택된 피쳐(feature)에 따라 신뢰도 기반의 점수를 차등하여 머신 러닝 모델에 부여하는 것을 특징으로 한다.
본 발명의 실시 예에 따라, 머신 러닝 모델의 평가 단계에서, 테이터의 형태, 데이터 전처리 방식 및 피쳐 엔지니어링에 따라 모델마다 차등되게 부여되는 신뢰도 기반의 점수는 다음과 같이 표현될 수 있다.
Figure 112017111949928-pat00001
여기서, Credibility는 평가 모델의 신뢰도를 의미하고, dataType은 변수를 포함하는 데이터 형태에 따른 신뢰도 가중치를, preprocessingType은 전처리 방식에 따른 신뢰도 가중치를, dataAlgorithmMatchScore은 선택된 알고리즘에 의한 데이터 적합도를 각각 의미한다.
다음으로 머신 러닝 모델 평가 모듈(178)이 데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가한다(S150).
S150 단계는 머신 러닝 모델의 생성, 훈련 및 평가 과정이 포함되어 있다. 머신 러닝 모델은 분석된 데이터를 기초로, 변수가 지정되고, 가설이 설정되면 설정된 가설을 검증하기 위해 생성된다. 그리고 가설을 검증하기 위한 단계로 훈련 데이터를 이용하는 훈련 과정이 필요하고, 생성된 복수 개의 모델 중에서 평가 과정을 통해 높은 점수를 받은 모델이 가설 검증을 위한 최종 모델로 선정된다.
도 7은 본 발명의 일 실시 예에 따른 데이터 입력 및 출력에 관한 예시도이다.
도 7을 참조하면, 본 발명의 실시 예에 따른 머신 러닝 알고리즘을 이용하는 장치(100) 내의 제어부(170)가 포함하는 구성 모듈들(171 내지 177)에 의한 데이터 입력/출력 관계가 나타나 있다. 즉 데이터 입력 모듈(171)의 원시 데이터 입력을 시작으로, 데이터 전처리 모듈(172)의 전처리된 데이터의 출력, 데이터셋 생성 모듈(173)의 데이터셋 출력, 데이터셋 확인 모듈(174)이 데이터셋 확인을 위한 데이터셋의 입력, 피쳐 엔지니어링 모듈(175)의 피쳐 엔지니어링을 위한 데이터셋의 입력 그리고 데이터셋이 훈련용과 평가용으로 분리되는 것이 나타나 있다.
머신 러닝 알고리즘 라이브러리는 서버(300), 예를 들어 공개용 머신 러닝 알고리즘 라이브러리를 제공하는, 라이브러리 서버를 통해 제공받을 수 있다.
최종적으로 평가 단계를 마치면, 복수의 훈련된 입후보 모델 중에서 데이터 형태 및 전처리 기법에 따라 차등 부여된 신뢰도 기반의 점수를 기초로 가장 높은 점수를 받은 모델이 훈련된 머신 러닝 모델로 선정될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치인 머신 러닝 알고리즘을 이용하는 장치(100)는 본 발명의 동작을 수행하기 위해 상기 하드웨어와 결합되어 머신 러닝 알고리즘을 이용하는 방법을 수행하는 적어도 하나의 소프트웨어 애플리케이션 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이처럼, 본 발명의 실시 예에 따르면, 머신 러닝 알고리즘을 이용한 모델의 평가에 있어서 데이터의 전처리 과정 및 데이터의 형태에 따른 신뢰도 기반의 점수를 평가의 지표로 사용할 수 있다.
또한, 데이터의 전처리 과정을 통해 머신 러닝 알고리즘의 정확도를 높일 수 있다.
이상으로 본 발명은 도면에 도시된 실시 예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 청구범위에 의해서 판단되어야 할 것이다.
100: 머신 러닝 알고리즘을 이용하는 장치 110: 입력 디바이스
120: 디스플레이 디바이스 130: 출력 디바이스
140: 저장 장치 150: 통신 장치
160: 전원 장치 170: 제어부
171: 환경설정 모듈 172: 서식제어 모듈
300: 서버 400: 네트워크
500: 컴퓨팅 장치 510: 입력 인터페이스 장치
520: 출력 인터페이스 장치 531: 메모리
532: 저장장치 540: 전원 장치
550: 프로세서 560: 네트워크 인터페이스 장치
570: 무선통신 장치 580: 버스

Claims (7)

  1. 머신 러닝 알고리즘을 이용하는 장치에 의해 수행되는 방법으로서,
    머신 러닝(machine learning) 훈련 데이터(training data)의 데이터셋(data set) 생성에 필요한 원시 데이터(raw data)를 수집하는 단계;
    상기 원시 데이터를 전처리(pre-processing)하는 단계;
    전처리된 데이터를 이용하여 데이터셋을 생성하는 단계;
    상기 생성된 데이터셋의 데이터를 이용하여 피쳐 엔지니어링(feature engineering)하는 단계; 및
    데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가하는 단계를 포함하되,
    상기 신뢰도는,
    변수를 포함하는 데이터 형태에 따른 신뢰도 가중치, 피처 엔지니어링을 포함하는 전처리 방식에 따른 신뢰도 가중치 및 선택된 알고리즘에 의한 데이터 적합도에 따라 상기 머신 러닝 모델 평가에 부여되는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  2. 청구항 1에 있어서,
    상기 원시 데이터(raw data)를 수집하는 단계는,
    연속형 데이터(continuous data)와 이산 데이터(discrete data)로 구성되는 수치 데이터(numerical data) 및 명목형 데이터(nominal data)와 서수 데이터(ordinal data)로 구성되는 카테고리 데이터(categorical data) 수집을 포함하는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  3. 청구항 1에 있어서,
    상기 원시 데이터를 전처리하는 단계는,
    결측값(missing value)을 처리하는 단계를 포함하고,
    결측값을 삭제, 다른 값으로 대체 또는 예측 값 삽입에 따라 상기 신뢰도에 기반한 점수를 차등하여 상기 머신 러닝 모델 평가에 부여하는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  4. 청구항 1에 있어서,
    상기 원시 데이터를 전처리하는 단계는,
    이상값(outlier value)을 처리하는 단계를 포함하고,
    이상값을 삭제, 다른 값으로 대체, 변수화, 리샘플링 또는 케이스를 분리하여 분석함에 따라 상기 신뢰도에 기반한 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  5. 청구항 1에 있어서,
    상기 데이터셋을 생성하는 단계는,
    생성된 데이터셋 내의 데이터 및 변수를 확인하는 데이터셋 확인 단계를 포함하고,
    독립/종속 변수, 변수 유형, 또는 변수 데이터 타입에 따라 상기 신뢰도에 기반한 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  6. 청구항 1에 있어서,
    상기 머신 러닝 알고리즘을 이용하는 방법은,
    스케일링(scaling), 바이닝(binning), 변환(transform) 또는 더미(dummy) 방법을 통해 선택된 피쳐(feature)에 따라 상기 신뢰도에 기반한 점수를 차등하여 상기 머신 러닝 모델에 부여하는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 방법.
  7. 머신 러닝(machine learning) 훈련 데이터(training data)의 데이터셋(data set) 생성에 필요한 원시 데이터(raw data)를 입력받는 데이터 입력 모듈;
    상기 원시 데이터를 전처리(pre-processing)하는 데이터 전처리 모듈;
    전처리된 데이터를 이용하여 데이터셋을 생성하는 데이터셋 생성 모듈;
    상기 생성된 데이터셋의 데이터를 이용하여 피쳐 엔지니어링(feature engineering)하는 피쳐 엔지니어링 모듈: 및
    데이터셋 중에서 선택된 테스트 데이터와 머신 러닝 알고리즘 후보들 중에서 선택된 머신 러닝 알고리즘을 이용하여 훈련된 머신 러닝 모델의 신뢰도를 평가하는 모델 평가 모듈을 포함하되,
    상기 신뢰도는,
    변수를 포함하는 데이터 형태에 따른 신뢰도 가중치, 피처 엔지니어링을 포함하는 전처리 방식에 따른 신뢰도 가중치 및 선택된 알고리즘에 의한 데이터 적합도에 따라 상기 머신 러닝 모델 평가에 부여되는 것을 특징으로 하는, 머신 러닝 알고리즘을 이용하는 장치.
KR1020170149868A 2017-11-10 2017-11-10 머신 러닝 알고리즘을 이용하는 방법 및 장치 KR101864286B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170149868A KR101864286B1 (ko) 2017-11-10 2017-11-10 머신 러닝 알고리즘을 이용하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170149868A KR101864286B1 (ko) 2017-11-10 2017-11-10 머신 러닝 알고리즘을 이용하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101864286B1 true KR101864286B1 (ko) 2018-07-04

Family

ID=62912961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170149868A KR101864286B1 (ko) 2017-11-10 2017-11-10 머신 러닝 알고리즘을 이용하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101864286B1 (ko)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102037796B1 (ko) * 2019-03-28 2019-11-26 (주)위세아이텍 피처 엔지니어링에 의한 결과 데이터 대응 관계의 시각화 장치 및 방법
KR102069084B1 (ko) * 2019-03-28 2020-02-11 (주)위세아이텍 피처 엔지니어링 기반 알고리즘 정확도 향상 장치 및 방법
US10581885B1 (en) 2018-11-28 2020-03-03 Korea Internet & Security Agency Reinforcement learning method in which discount factor is automatically adjusted
KR102102418B1 (ko) * 2018-12-10 2020-04-20 주식회사 티포러스 인공지능 솔루션을 테스트하는 장치 및 방법
CN111079937A (zh) * 2019-11-15 2020-04-28 苏州金智渠信息技术有限公司 一种快速建模的方法
WO2020101128A1 (ko) * 2018-11-15 2020-05-22 한국지질자원연구원 딥러닝을 이용한 셰일가스 생산량 예측방법
KR102122168B1 (ko) * 2020-01-08 2020-06-11 (주)유에스티21 해무 소산 예측 모델 학습 방법 선택 장치, 해무 소산 예측 모델 학습 방법 선택 방법, 해무 소산 예측 장치 및 해무 소산 예측 방법
KR102128852B1 (ko) * 2020-03-30 2020-07-01 (주)위세아이텍 텍스트 데이터에서 생성한 단어 벡터에 주성분 분석을 적용하여 추출한 피처의 주요 단어 시각화 장치 및 방법
KR20200080947A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 파라미터 셋을 결정하는 방법
KR20200080819A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 상용화 서비스 제공 방법
KR20200108609A (ko) 2019-03-11 2020-09-21 연세대학교 산학협력단 머신러닝 학습 데이터 증강장치 및 증강방법
WO2020218663A1 (ko) * 2019-04-23 2020-10-29 (주) 위세아이텍 빅데이터의 이상값 탐지 프로세스 자동화 장치 및 방법
KR20200141853A (ko) * 2019-06-11 2020-12-21 한국원자력연구원 시험용 테스트 케이스 생성 장치 및 방법
KR20210001737A (ko) 2019-06-28 2021-01-06 (주)로드인터내셔널 환경 변화 예측 시스템 및 환경 변화 예측 방법
CN112465183A (zh) * 2020-10-15 2021-03-09 上海齐崂科技发展有限公司 一种污水处理数据采集方法及其应用
KR20210039654A (ko) * 2019-10-02 2021-04-12 (주)디지탈쉽 이상치 탐지를 위한 데이터 처리 방법 및 장치
KR20210065751A (ko) * 2019-11-27 2021-06-04 강릉원주대학교산학협력단 결측값 대체 시스템 및 결측값 대체 방법
KR20210114244A (ko) * 2020-03-10 2021-09-23 한림대학교 산학협력단 고장 예측 모델 획득 방법, 장치 및 프로그램
WO2021202017A1 (en) * 2020-03-31 2021-10-07 Micron Technology, Inc. Lightweight artificial intelligence layer to control the transfer of big data
KR20210122467A (ko) * 2020-04-01 2021-10-12 주식회사 원프레딕트 머신러닝을 위한 자동화된 피처 선택 방법 및 이러한 방법을 수행하는 장치
US11156969B1 (en) 2020-04-24 2021-10-26 MakinaRocks Co., Ltd. Environment factor control device and training method thereof
WO2021215635A1 (ko) * 2020-04-24 2021-10-28 주식회사 마키나락스 환경 인자 조절 장치 및 그 훈련 방법
KR20210152402A (ko) 2020-06-05 2021-12-15 에이치티씨 코퍼레이션 데이터 증강을 포함하는 머신런닝 시스템 및 머신런닝 방법
KR102408655B1 (ko) * 2021-11-04 2022-06-14 서울시립대학교 산학협력단 수치형 변수 및 범주형 변수를 포함하는 혼합형 결측 데이터에 대한 데이터 보간을 수행하는 장치 및 방법
KR20220132804A (ko) 2021-03-24 2022-10-04 경희대학교 산학협력단 메타데이터셋을 이용한 샘플링 방법 및 분류 알고리즘 추천 장치 및 방법
US11593642B2 (en) 2019-09-30 2023-02-28 International Business Machines Corporation Combined data pre-process and architecture search for deep learning models
KR20230052010A (ko) * 2021-10-12 2023-04-19 주식회사 디에스이트레이드 Ai 기반 모델 선택 알고리즘을 이용한 수요 예측 방법

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020101128A1 (ko) * 2018-11-15 2020-05-22 한국지질자원연구원 딥러닝을 이용한 셰일가스 생산량 예측방법
US10581885B1 (en) 2018-11-28 2020-03-03 Korea Internet & Security Agency Reinforcement learning method in which discount factor is automatically adjusted
KR102102418B1 (ko) * 2018-12-10 2020-04-20 주식회사 티포러스 인공지능 솔루션을 테스트하는 장치 및 방법
KR20200080819A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 상용화 서비스 제공 방법
KR20200080947A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 파라미터 셋을 결정하는 방법
KR102190105B1 (ko) 2018-12-27 2020-12-11 (주)아크릴 인공 신경망의 파라미터 셋을 결정하는 방법
KR102190103B1 (ko) * 2018-12-27 2020-12-11 (주)아크릴 인공 신경망의 상용화 서비스 제공 방법
KR20200108609A (ko) 2019-03-11 2020-09-21 연세대학교 산학협력단 머신러닝 학습 데이터 증강장치 및 증강방법
KR102069084B1 (ko) * 2019-03-28 2020-02-11 (주)위세아이텍 피처 엔지니어링 기반 알고리즘 정확도 향상 장치 및 방법
KR102037796B1 (ko) * 2019-03-28 2019-11-26 (주)위세아이텍 피처 엔지니어링에 의한 결과 데이터 대응 관계의 시각화 장치 및 방법
WO2020218663A1 (ko) * 2019-04-23 2020-10-29 (주) 위세아이텍 빅데이터의 이상값 탐지 프로세스 자동화 장치 및 방법
KR102226204B1 (ko) * 2019-06-11 2021-03-11 한국원자력연구원 시험용 테스트 케이스 생성 장치 및 방법
KR20200141853A (ko) * 2019-06-11 2020-12-21 한국원자력연구원 시험용 테스트 케이스 생성 장치 및 방법
KR20210001737A (ko) 2019-06-28 2021-01-06 (주)로드인터내셔널 환경 변화 예측 시스템 및 환경 변화 예측 방법
US11593642B2 (en) 2019-09-30 2023-02-28 International Business Machines Corporation Combined data pre-process and architecture search for deep learning models
KR20210039654A (ko) * 2019-10-02 2021-04-12 (주)디지탈쉽 이상치 탐지를 위한 데이터 처리 방법 및 장치
KR102262279B1 (ko) 2019-10-02 2021-06-08 (주)디지탈쉽 이상치 탐지를 위한 데이터 처리 방법 및 장치
CN111079937A (zh) * 2019-11-15 2020-04-28 苏州金智渠信息技术有限公司 一种快速建模的方法
KR20210065751A (ko) * 2019-11-27 2021-06-04 강릉원주대학교산학협력단 결측값 대체 시스템 및 결측값 대체 방법
KR102409101B1 (ko) * 2019-11-27 2022-06-14 강릉원주대학교산학협력단 결측값 대체 시스템 및 결측값 대체 방법
KR102122168B1 (ko) * 2020-01-08 2020-06-11 (주)유에스티21 해무 소산 예측 모델 학습 방법 선택 장치, 해무 소산 예측 모델 학습 방법 선택 방법, 해무 소산 예측 장치 및 해무 소산 예측 방법
KR102340652B1 (ko) * 2020-03-10 2021-12-17 한림대학교 산학협력단 고장 예측 모델 획득 방법, 장치 및 프로그램
KR20210114244A (ko) * 2020-03-10 2021-09-23 한림대학교 산학협력단 고장 예측 모델 획득 방법, 장치 및 프로그램
KR102128852B1 (ko) * 2020-03-30 2020-07-01 (주)위세아이텍 텍스트 데이터에서 생성한 단어 벡터에 주성분 분석을 적용하여 추출한 피처의 주요 단어 시각화 장치 및 방법
US11451480B2 (en) 2020-03-31 2022-09-20 Micron Technology, Inc. Lightweight artificial intelligence layer to control the transfer of big data
WO2021202017A1 (en) * 2020-03-31 2021-10-07 Micron Technology, Inc. Lightweight artificial intelligence layer to control the transfer of big data
KR20210122467A (ko) * 2020-04-01 2021-10-12 주식회사 원프레딕트 머신러닝을 위한 자동화된 피처 선택 방법 및 이러한 방법을 수행하는 장치
KR102417293B1 (ko) 2020-04-01 2022-07-06 주식회사 원프레딕트 머신러닝을 위한 자동화된 피처 선택 방법 및 이러한 방법을 수행하는 장치
WO2021215635A1 (ko) * 2020-04-24 2021-10-28 주식회사 마키나락스 환경 인자 조절 장치 및 그 훈련 방법
US11156969B1 (en) 2020-04-24 2021-10-26 MakinaRocks Co., Ltd. Environment factor control device and training method thereof
US11797859B2 (en) 2020-04-24 2023-10-24 MakinaRocks Co., Ltd. Environment factor control device and training method thereof
KR20210152402A (ko) 2020-06-05 2021-12-15 에이치티씨 코퍼레이션 데이터 증강을 포함하는 머신런닝 시스템 및 머신런닝 방법
CN112465183A (zh) * 2020-10-15 2021-03-09 上海齐崂科技发展有限公司 一种污水处理数据采集方法及其应用
KR20220132804A (ko) 2021-03-24 2022-10-04 경희대학교 산학협력단 메타데이터셋을 이용한 샘플링 방법 및 분류 알고리즘 추천 장치 및 방법
KR20230052010A (ko) * 2021-10-12 2023-04-19 주식회사 디에스이트레이드 Ai 기반 모델 선택 알고리즘을 이용한 수요 예측 방법
KR102646061B1 (ko) * 2021-10-12 2024-03-12 주식회사 디에스이트레이드 Ai 기반 모델 선택 알고리즘을 이용한 수요 예측 방법
KR102408655B1 (ko) * 2021-11-04 2022-06-14 서울시립대학교 산학협력단 수치형 변수 및 범주형 변수를 포함하는 혼합형 결측 데이터에 대한 데이터 보간을 수행하는 장치 및 방법

Similar Documents

Publication Publication Date Title
KR101864286B1 (ko) 머신 러닝 알고리즘을 이용하는 방법 및 장치
CN107025509B (zh) 基于业务模型的决策系统和方法
EP3989131A1 (en) Method and system for realizing machine learning modeling process
WO2020029689A1 (zh) 数据处理模型构建方法、装置、服务器和用户端
EP3428856A1 (en) Information processing method and information processing device
Ciaburro MATLAB for machine learning
US10191968B2 (en) Automated data analysis
JP2018195308A (ja) プロセス及び製造業における業績評価指標のデータに基づく最適化のための方法及びシステム
EP2648152A1 (en) Data solutions system
KR102565455B1 (ko) 신속한 스크리닝을 위한 도메인-특정 언어 해석기 및 대화형 시각적 인터페이스
CN112085087B (zh) 业务规则生成的方法、装置、计算机设备及存储介质
CN105051721A (zh) 为电子表格将自然语言描述转换为因因域而异而异的语言的程序
CN112396108A (zh) 业务数据评估方法、装置、设备及计算机可读存储介质
US20180005122A1 (en) Constructing new formulas through auto replacing functions
EP4024203A1 (en) System performance optimization
KR20200047006A (ko) 머신 러닝 기반의 근사모델 구축 방법 및 시스템
KR20190130212A (ko) 엔지니어링 빅데이터 기반의 설계 전문가 시스템 및 그 설계 방법
CN111582341A (zh) 用户异常操作预测方法及装置
CN113392920B (zh) 生成作弊预测模型的方法、装置、设备、介质及程序产品
US20240078473A1 (en) Systems and methods for end-to-end machine learning with automated machine learning explainable artificial intelligence
Artés et al. Real-time genetic spatial optimization to improve forest fire spread forecasting in high-performance computing environments
CN117522538A (zh) 招投标信息处理方法、装置、计算机设备及存储介质
Kozlova et al. Development of the toolkit to process the internet memes meant for the modeling, analysis, monitoring and management of social processes
CN116523622A (zh) 对象风险预测方法和装置、电子设备及存储介质
US20220374801A1 (en) Plan evaluation apparatus and plan evaluation method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant