본문 바로가기

DB-Oracle

Oracle Machine Learning을 이용한 데이터 예측 방법 및 참고자료

728x90
반응형

1. Oracle Machine Leaning 환경설정 및 작성방법
A. 환경설정
- Oracle Machine Leaning을 사용하기 위해서는 Oracle Advanced Analytics 옵션 필요
- 현재 Oracle Enterprise Edition(EE) 와 Express Edition(XE) 에서만 사용 가능
- DBMS_DATA_MINIG 이라는 패키지 형태로 되어있어 Oracle ML(Machine Learning) 사용 가능

Oracle ML(Machine Learning) Setting

 패키지 확인 쿼리

-- DBMS_DATA_MINING 패키지 확인

SELECT *

FROM ALL_PROCEDURES

WHERE OBJECT_NAME = 'DBMS_DATA_MINING';

 

 

 알고리즘 및 옵션을 위한 테이블 생성 및 데이터 입력

--1. 세팅 테이블

create table SETTING_NN (

   setting_name varchar2(30),

   setting_value varchar2(4000)

);

 

--2. 세팅 값 입력

begin

   insert into SETTING_NN values (dbms_data_mining.algo_name, dbms_data_mining.algo_neural_network);

   insert into SETTING_NN values (dbms_data_mining.prep_auto, dbms_data_mining.prep_auto_on);

end;


- ALGO_NAME : 
알고리즘 명

- PERP_AUTO : ON으로 할 경우 알고리즘에 필요한 데이터 변환을 자동으로 수행

 

 

    알고리즘 별 Oracle 지원 버전

. Apriori (11g 이상)

. CUR Matrix Decomposition (18c 이상)

. Decision Tree (11g 이상)

. Expectation Maximization (12c 이상

. Explicit Semantic Analysis (12c 이상)

. Exponential Smoothing (18c 이상)

. Generalized Linear Models (11g 이상)

. k-Means (11g 이상)

. Minimum Description Length (11g 이상)

. Multivariate State Estimation Technique - Sequential Probability Ratio Test (20c 이상)

. Naive Bayes (11g 이상)

. Neural Network (18c 이상)

. Non-Negative Matrix Factorization (11g 이상)

. O-Cluster (11g 이상)

. R Extensibility (18c 이상)

. Random Forest (18c 이상)

. Singular Value Decomposition (12c 이상)

. Support Vector Machines (11g 이상)

. XGBoost (20c 이상)

 

 

 모델 생성 및 학습

--3. 모델 생성

---- Key Column 단일화 필요

----모델이 있을 경우 제거

begin dbms_data_mining.drop_model('NN_MODEL_XX_ALC_TEST');

exception when others then null; end;

 

----모델생성 및 학습 시작 = 데이터가 많은 수록 학습시간 늘어남(31만건 => 1시간 이상 소요)

begin

  dbms_data_mining.create_model(

    model_name          => 'NN_MODEL_XX_ALC_TEST',                                           --모델명

    mining_function     => dbms_data_mining.classification,            --분석 function

    data_table_name     => 'XX_ALC_TEST',                                                            --대상 테이블 명

    case_id_column_name => 'XX_ALC_KEY',                                                            --머신러닝 대상 KEY 컬럼

    target_column_name  => 'TRN_CST_COD',                                                    --머신러닝 목표 컬럼

    settings_table_name => 'SETTING_NN'                                              --알고리즘 세팅 테이블

  );

end;

 

-모델 생성 및 학습 시 학습모델 관련된 테이블이 자동생성됨

 

 값 예측

--4. 예측

select XX_ALC_KEY,

           TRN_CST_COD,

       prediction(NN_MODEL_XX_ALC_TEST using *) predicted_value,  -- USING * : 학습할때 사용했던 모든 컬럼 사용

       prediction_probability(NN_MODEL_XX_ALC_TEST using *) probility

from XX_ALC_TEST

 

 

-XX_ALC_KEY : Table 단일 key

-TRN_CST_COD : 현재 목표 Column

-PREDICTED_VALUE : 예상 값

-PROBILITY : 예상 값 유추 비율

 

 정확도

--5. 정확도

select total, correct, round(correct / total * 100, 2) as percent

from (

   select count(*) as total,

          sum(decode(TRN_CST_COD, predicted_value, 1, 0)) as correct

   from (

      select XX_ALC_KEY, TRN_CST_COD,

             prediction(NN_MODEL_XX_ALC_TEST using *) predicted_value,

             prediction_probability(NN_MODEL_XX_ALC_TEST using *) probility

      from XX_ALC_TEST

   )

);

 

-TOTAL : 전체개수

-CORRECT : 예상값과 현재값이 같은 개수

-PERCENT : 예상값과 현재값이 같은 개수 비율



● 효율적인 Machine Learning 구성
 - 대상 데이터의 명확한 분류
 - 대량의 데이터 경우 모델 학습 소요 시간 증가 및 정확도 증가
 - 데이터 특성 별 알고리즘 매칭 중요



첨부파일
 - 상세 문서 : Oracle Machine Learning을 이용한 데이터 예측 방법 및 참고자료.docx
 - XX_ALC : 배차 정보 테이블




   참고자료

- 기본 개념 : https://bioinformaticsandme.tistory.com/118


- 
선형회귀 :  http://hleecaster.com/ml-linear-regression-concept/


- 
파이썬 선형회귀 : http://hleecaster.com/ml-linear-regression-example/


- 
지도학습 과 비지도 학습 : https://stickie.tistory.com/43


- 
오라클 ML 소개 문서 : https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dmapi/introduction-to-oracle-data-mining.html#GUID-429CF74D-C4B7-4302-9C33-5292A664E2AD


- 
오라클 ML구조 문서 : https://docs.oracle.com/ko/solutions/data-science-environment/index.html#GUID-25FBDA8E-BCD8-42D5-98FA-7FA997B01D75


- 
오라클 ML 분석 Function 문서 : https://docs.oracle.com/cd/E18283_01/appdev.112/e16760/d_datmin.htm#CACDBBCC


- 
데이터 마이닝 : https://dzone.com/articles/building-regression-model-using-oracle-data-mining


- 
내부머신러닝 지원 : https://www.ciokorea.com/news/192599


- OLAP : 
https://12bme.tistory.com/144


- ML.NET (.NET CORE) : 
https://docs.microsoft.com/ko-kr/dotnet/machine-learning/how-does-mldotnet-work


- MSSQL ML : 
https://docs.microsoft.com/ko-kr/sql/machine-learning/sql-server-machine-learning-services?view=sql-server-ver15


- GLM 
알고리즘 : https://be-favorite.tistory.com/52

https://dzone.com/articles/building-regression-model-using-oracle-data-mining

 

 

728x90
반응형