반응형

앙상블 기법

  • 단일 머신러닝 모델을 연결하여 더 효율적인 모델을 만드는 기법
  • 앙상블의 아이디어는 많은 시행의 결과가 이성적으로 합리적인 결과를 기대함
  • 크게 Bagging과 Boosting 방법으로 나눈다.

Bagging(bootstrap agrregating)

  • 샘플을 여러번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계(Aggregration)
  • Train데이터에서 임의로 여러개의 샘플을 추출하여 모델 학습하는 과정을 반복하여 개별 학습모델을 생성
  • 각 모델은 서로 독립적
  • 각 모델별로 Test 데이터를 예측한 값으로 투표(Voting) 또는 평균(Regression)을 통해 최종 예측
  • 이러한 Bagging 기법을 이용한 모델이 Random Forest

출처 : https://icim.nims.re.kr/post/easyMath/838

Boosting

  • 잘못 분류된 샘플에 더 많은 가중치를 주어 학습
  • Bagging과 달리 모델 결과에 가중치를 주어 다음 모델에 영향을 끼침(Sequential 하다)
  • 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복

출처: Medium (Boosting and Bagging explained with examples)

  • Boosting 모델
    1. Adaboost
    2. XGBoost
    3. LightGBM
    4. CatBoost

Bagging과 Boosting의 장단점

  1. Boosting은 Bagging의 비해 오류가 적다.
  2. Boosting은 Overfitting 될 가능성이 있으며 속도가 느리다

 

출처 : https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-11-%EC%95%99%EC%83%81%EB%B8%94-%ED%95%99%EC%8A%B5-Ensemble-Learning-%EB%B0%B0%EA%B9%85Bagging%EA%B3%BC-%EB%B6%80%EC%8A%A4%ED%8C%85Boosting

 

머신러닝 - 11. 앙상블 학습 (Ensemble Learning): 배깅(Bagging)과 부스팅(Boosting)

앙상블(Ensemble) 앙상블은 조화 또는 통일을 의미합니다. 어떤 데이터의 값을 예측한다고 할 때, 하나의 모델을 활용합니다. 하지만 여러 개의 모델을 조화롭게 학습시켜 그 모델들의 예측 결과들

bkshin.tistory.com

https://icim.nims.re.kr/post/easyMath/838

 

앙상블의 Bagging과 Boosting | 알기 쉬운 산업수학 | 산업수학혁신센터

 

icim.nims.re.kr

 

반응형
반응형

시계열 분석에 대한 내용 정리

 

시계열 데이터란?

  • 시간에 따라 순차적으로 저장된 데이터
  • 정상 시계열 : 시계열의 평균, 분산, 공분산이 일정하고 일정한 추세가 없으면 정상 시계열
  • 비정상 시계열 : 정상 시계열에 만족하지 못한 시계열, 주로 현실에서 수집한 데이터들이 이에 해당
  • 시계열 예시 : 주가, 상품 판매 추세, 날씨
  • 비정상 시계열을 정상 시계열 형태로 가공하여 모델 학습

 

시계열 분석 방법

  1. 추세(Trend) : 시간에 따른 움직임
  2. 계절성(Seasonality) : 계절 변화가 표현
  3. 주기(Cyclical) : 계정성 이외의 기간적인 데이터
  4. 불규칙(Irregular) : 패턴이 없는 불규칙적인 데이터

 

시계열 데이터 모델

  • ARMA(Auto-regressive Moving Average)
    • AR(자기회귀모형)과 MA(이동평균모형)이 결합된 모델
  • ARIMA : 자기회귀누적이동평균 모델
    • 비정상적 시계열 자료에 대한 분석 방법
    • 4단계로 구분 : 1. 모형식별 > 2. 모수 추정 > 3. 모델 적합 > 4. 예측
    • SARIMA(Seasonal ARIMA) : 비정상 시계열 자료에 계절효과가 추가
  • ES(Exponential Smoothing) : 지수 창함수를 사용하여 시계열 데이터를 완만하게 만드는 방법
    • Moving Average방법과 유사
    • N개에 포함된 모든 데이터에 각각 다른 비중을 부여하여 하지만 최근 실적에 가중치를 더 두고 산술평균을 계산하여 다음을 예측
  • LSTM(Long Short-Term Memory) : 공부 후 작성 예정

 

반응형
반응형

8가지의 머신러닝 모델 정확성 증가 방법

우리는 100% 완벽한 데이터를 가지고 모델을 생성할 수 없기 때문에 오차가 있다고 가정한 내에서 가장 높은 성능을 나타내는 모델을 구현하기 위해 노력한다. 모델 성능을 높이기 위해서는 EDA(탐색적 데이터 분석) 가 필수적이다.

 

  1. 학습 데이터 추가
    • 데이터가 너무 적으면 모델 성능이 잘 나오지 않는다.
    • 하지만 너무 많은 데이터로 학습할 시 Overfitting(과적합)문제가 발생할 수 도 있다.
  2. 결측치 및 이상치 제거
    • 결측치가 있으면 학습이 안될 수 있다.
    • 이상치는 학습에 영향을 많이 끼친다. 꼭 제거할 필요는 없고 이상치 확인 후 처리 방법을 고민한다.
  3. Feature Engineering
    • 존재하는 데이터로부터 데이터 변환 또는 생성하는 과정.
    • Feature Transformation : 정규화, Log변환, 차원축소 등..
    • Feature Creation : 매일 판매량 데이터에서 각 판매일에 대한 휴일여부를 추가
  4. Feature Selection
    • 학습에 필요한 Feature를 선택하는 과정.
    • https://blackas119.tistory.com/71?category=779040 참고
  5. Multiple algorithms
    • 좋은 성능을 나타내는 알고리즘을 선택하는 것은 실제로 하는게 어려운 일입니다.
    • 따라서 여러가지 알고리즘에 대해 적용하고 성능을 확인해봐야 한다.
  6. Algorithm Tuning
    • 알고리즘 사용시 여러가지의 매개변수를 선택하게 된다. 적절한 매개변수를 통해 정확한 성능을 나타내도록 한다.
    • 예를 들어, K-means 알고리즘에서 적절한 K 를 찾는 과정
  7. Ensemble Method
  8. Cross Validation

참고 사이트 : https://www.analyticsvidhya.com/blog/2015/12/improve-machine-learning-results/

 

How To Increase Accuracy Of Machine Learning Model

8 proven ways for improving machine learning model accuracy which includes cross validation, engineering, ensemble & outliers in data science.

www.analyticsvidhya.com

 

반응형
반응형

머신러닝 또는 딥러닝 시 고려해야 할 사항 중 데이터 전처리 내 Feature 선택에 대한 방법들

 

Feature란?

모델 학습 시 사용되는 입력 값. 즉 일반적으로 말하는 머신러닝 또는 딥러닝에서 사용되는 '독립변수들'이라고 보면 된다.

*이 글에서는 Feature라는 단어 대신 독립변수라는 단어를 사용.

 

학습시 어떤 독립변수를 사용할 지에 따라 학습 시간, 성능에 많은 영향을 끼친다.

크게 독립변수들은 숫자형과 문자형 두가지로 분류한다.

 

python3 pandas dataframe 예시 코드

import pandas as pd
sample = pd.read_csv(...) #샘플 데이터 파일을 읽는다.

print(sample.dtypes[sample.dtypes == "object"].index) #문자형 독립변수들
print(sample.dtypes[sample.dtypes != "object"].index) #숫자형 독립변수들
print(sample.info()) # 각 컬럼의 데이터 타입을 알 수 있다

 

변수 선택 방법을 통해 불필요한 독립변수들을 제거하는 방법

  1. wrapper방법 : 독립변수를 여러개의 하위집합으로 만들어 각각 모델을 학습 및 평가하여 가장 좋은 성능을 선택
    적용 예시 : https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html
  2. filter방법 : 각 독립변수들과 종속변수에 대한 상관관계를 평가하여 선택 (지도학습에서 사용)

*종속변수는 학습시 사용되는 정답값

 

  • Feature Selection: Select a subset of input features from the dataset.
    • 비지도 학습 : 종속변수를 사용하지 않는다 (e.g. remove redundant variables).
      • 독립변수들 간의 상관관계를 이용하여 선택
    • 지도학습 : 종속변수를 사용한다. (e.g. remove irrelevant variables).
      • Wrapper: 독립변수들의 하위집합 중 성능이 좋을 것을 찾는다.
        • RFE
      • Filter: 종속변수와 독립변수의 관계를 기반하여 독립변수 하위 집합을 선택한다.
        • Statistical Methods
        • Feature Importance Methods
      • Intrinsic(Embedded): 학습 중 자동적으로 알고리즘으로 독립변수를 선택한다.
        • Decision Trees
        • Lasso
        • Redge
        • Elastic Net
  • Dimensionality Reduction: 입력데이터를 저차원 공간에 반영(?)
    Dimensionality Reduction의 경우 추가 공부하여 이후 다시 작성할 예정...

위 지도학습 내 Intrinsic(Embedded) 방법에 대해 다른 포스터에서 다시 작성할 예정

 

아래 사진은 독립변수들의 데이터 타입을 나타내는 사진 예시이다.

 

 

 

결론적으로 Feature selection에 대한 정답은 없다. 처음에는 휴리스틱하게 판단한 정보를 가지고 테스트를 하면서 점차적으로 성능을 끌어올리는게 현재까지는 최선의 방법인 것으로 판단된다.

 

참고 사이트 : https://machinelearningmastery.com/feature-selection-with-real-and-categorical-data/

반응형
반응형

딥러닝에서 사용되는 인공신경망의 종류 및 간단한 요약설명

  1. ANN(Artificail Neural Network[인공신경망]) : 두뇌의 신경망을 흉내 낸 인공지능 기술.
  2. DNN(Depp Neural Network[심층신경망]) : 은닉 계층을 여러개 쌓아서 만든 인공신경망.
  3. CNN(Convolutional Neural Network[합성곱신경망]) : 영상 처리에 많이 활용되는 합성곱을 이용하는 신경망 기술.
  4. RNN(Recurrent Neural Network[순환신경망]) : 계층의 출력이 순환하는 인공신경망.
  5. AE(AutoEncoder[오토인코더]) : 비지도학습 인공신경망.
  6. GAN(Generative Adverarial Network[생성적 적대 신경망]) : 경쟁을 통한 최적화를 수행하는 생성적 인공신경망.
  7. UNET(U-shaped Network[유넷]) : 저차원과 고차원 정보를 모두 사용하여 이미지의 경계를 비롯한 특징을 추출하는 인공신경망.

참고 서적 : 코딩셰프의 3분 딥러닝 케라스맛

반응형
반응형

머신 러닝 및 딥 러닝을 배우기 위해 kaggle 사이트에서 연습하며 개인 메모 용도로 작성

첫 과제로 일반적으로 많이 알려진 집값 예측 문제를 풀기로 하였다.

ML/DL 관련 강의는 몇개 수강하였지만 실질적으로 문제를 풀어본 적이 없어

해당 내용을 참고하여 배웠던 내용이랑 몰랐던 부분을 학습하는 목적으로 시작한다.

참고 URL : https://www.kaggle.com/munmun2004/house-prices-for-begginers#II.-EDA-&-FE-

 

[한글커널][House Prices]보스턴 집값 예측 for Begginers

Explore and run machine learning code with Kaggle Notebooks | Using data from House Prices - Advanced Regression Techniques

www.kaggle.com

 

머신러닝 또는 딥러닝은 아래 4단계로 진행한다.

1. 데이터 수집

2. 데이터 가공

3. 모델 학습

4. 예측 또는 분류

 

머신러닝 또는 딥러닝은 위 4단계로 진행이 되지만 프로젝트를 하기 위해서는 아래 순서로 생각하며 설계를 한다.

  1. 목적설정 (가설) : 어떤 일을 할 것인가
  2. 자료수집 : 선택한 일에 대해 어떤 학습을 할 것이며 필요한 데이터가 어떤것이 있는지 확인
  3. 모델 생성 : 수집된 데이터로 모델 생성
  4. 평가 : 생성된 모델을 사용하여 실제 적용
  5. 피드백

 

*** 개인 정리 ***

  • 이상치 제거 (극단값 제거) : 모델 학습에 성능 저하를 가져올 수 있는 데이터를 찾아 제거한다.
  • 다중공선성 문제 : 회귀분석에서 발생하는 문제. 특정 변수들 간의 상관관계가 높을 경우 발생. 회귀분석은 독립된 변수들 간에 변화를 학습하여 예측하는 모델이다. 특정 변수들의 상관도가 높으면 해당 변수의 변화값이 모델에 부정적 영향을 미치게 된다.
    참고 사이트 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=vnf3751&logNo=220833952857
  • 결측치 확인 및 처리 : 손실데이터 즉 값이 없는 데이터를 의미한다. 처리 방법은 데이터 케이스별 및 결측량에 따라 다르게 처리.
  • 수치(순서)형 데이터 : 연속 또는 이산형 데이터. 예) 키 / 몸무게 / 출생아 수 / 주가 등
  • 범주(명목)형 데이터 : 몇개의 범주로 나누어진 데이터. 예) 성별 / 혈액형 등

 

*** 분석 ***

 

Stacked Regressions : Top 4% on LeaderBoard

Explore and run machine learning code with Kaggle Notebooks | Using data from House Prices - Advanced Regression Techniques

www.kaggle.com

반응형
반응형

기계 학습(Machine learning)을 위해 라이브러리 및 계산하기 편한 언어는 Octave, Matlab, Python, Numpy, R 등이 있습니다. 그 중 Octave는 오픈소스이며 무료로 사용가능하고 Python, Numpy, R 보다 생산성이 뛰어나다는 평가를 받고 있는 언어입니다.

많은 사람들이 Octave를 이용해 기계학습 프로토 모델을 생성하여 테스트를 진행합니다.

* Octave 다운로드 주소 : https://www.gnu.org/software/octave/download.html

 

Octave로 프로토 타입을 만들어 본 후 해당 알고리즘을 C++, Java로 새로 코딩하는 것을 추천합니다.

 

 

반응형
반응형

기계 학습 알고리즘 (Machine Learning Algorithm)

 

기계 학습 알고리즘으로 크게 두가지로 분류 되지만 두개의 특성을 합친 학습법을 포함해 3가지로 나눌 수 있다.

 

기계 학습은 experience E 와 respect to some task T 그리고 some performance measure P로 학습 및 성능 측정을 한다.

 

E : 학습할 데이터

T : 실제 데이터

P : E로 학습한 모델을 T로 측정한 성능

 

1. Supervised Learning (지도 학습)

 - 정답인 데이터를 학습하여 입력값에 대한 정답 여부를 판별

 

2. Unsupervised Learning (비지도 학습)

 - 정답이 없는 데이터를 학습하여 입력값을 특정 그룹으로 분류

 

3. Semisupervised Learning (반지도 학습)

 - 정답이 있는 데이터와 없는 데이터를 같이 학습하여 입력값을 처리

 

sklearn 라이브러리에 있는 Regression 모델

  1. Lasso Regression(Least Absolute Shrinkage and Selection Operator)
  2. Elastic Net Regression
  3. Kernel Ridge Regression
  4. Gradient Boosting Regression
반응형
반응형

Machine Learning(ML) 이란?


알파고와 이세돌의 바둑 대결로 알파고에 관심이 증가함에 따라 알파고에 접목된 Machine Learning 또한 관심도가 높아졌다.

현재 AI 분야에서 주로 사용되는 분야로 한국어로는 기계 학습이라고 한다.

Machine learning(기계 학습)이 주목 받는 이유는 단 하나다.

AI분야에서 음성인식, 자연어 처리, 영상 처리 등 전반적인 부분에서 처리 및 인식 성능이 타 기술보다 높게 측정되었기 때문이다.

알파고가 보여준 엄청난 바둑 경기력은 바로 이 Machine Learning에서 비롯 되었다.

수천 수만개의 바둑 기보를 통해 학습한 기계 알파고를 인간 이세돌이 이기기는 쉽지 않았고 사람들은 알파고의 능력에 감탄하고 열광하면서

AI에 대한 기대가 커지게 된 것이다.


그럼 이 Machine Learning으로 할 수 있는 일이 무엇이 있을까?

충분한 학습에 필요한 데이터만 있으면 그 데이터를 기반으로 학습 된 모델을 통해 앞으로 일어날 일을 예측하고 분석할 수 있으며 분류 또한 가능해 진다.

예로 들어 과거 기상 데이터를 학습하여 내일 또는 미래의 날씨를 예측하거나 스팸 메일 분류 같은 일까지 정확하게 처리할 수 있다.

이처럼 충분한 데이터 셋만 있다면 어느 분야에서도 사용이 가능한 Machine Learning은 앞으로도 대체 가능한 방법이 나오지 않는다면 활발하게 연구 될 것이고 AI의 시대가 점점 더 가까워 지고 있다는 것을 알 수 있다.

반응형

+ Recent posts