1. XGBoost(eXtreme Gradient Boosting) 트리 기반의 앙상블 학습에서 가장 각광받고 있는 알고리즘 중 하나 캐글 경연대회에서 상위를 차지한 많은 데이터 과학자가 XGBoost를 이용하면서 널리 알려짐 GBMd에 기반하고 있지만, GBM의 단점인 느린 수행시간 및 과적합 규제(Regularization) 부재 등의 문제를 해결해서 각광받고 있음 It was developed by Tianqi Chen and now is part of a wider collection of open-source libraries developed by the Distributed Machine Learning Community (DMLC) 2. XGBoost 장점 뛰어난 예측 성능 - 분류와 회귀..
0. 들어가기전에 부스팅 알고리즘? 여러개의 약한 학습기(weak learner)를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가면서 학습하는 방식 부스팅 대표 알고리즘? AdaBoost(Adaptive boosting) & 그래디언트 부스트 0.1 AdaBoost 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 대표적인 알고리즘 개별 약한 학습기 -> 가중치 부여 결합 1. Gradient Boosting Machine 가중치 업데이트를 경사하강법(Gradient Descent)를 이용하는 것이 큰 차이 분류의 실제 결과값 y, 피처를 x1,x2... 피처에 기반한 예측 함수 F(x) ===> 오류식? h(x) = y - F(x) 경사하강법(Gradient ..
결정트리 학습법은 휼륭한 머신러닝의 한 방법이지만, 주어진 학습 데이터에 따라 생성되는 의사결정트리가 매우 달라져서 일반화하여 사용하기가 어려움 결정 트리를 이용한 학습 결과 역시 성능과 변동이 폭이 큼 >>>랜덤포레스트 등장 ===> 여러 개의 무작위 의사결정트리로 이루어진 숲이라는 개념으로 이해 1. 랜덤포레스트 구성 1.주어진 트레이닝 데이터세트에서 무작위로 중복을 허용해서 m개 선택 -> 부트스트랩(Bootstrap) 부트스트랩으로 추출된 n개의 데이터? 부트스트랩 샘플 Scikit-learn이 제공하는 랜덤 포레스트 API는 부트스트랩 샘플의 크기 n의 값으로 원래 트레이닝 데이터 전체 개수와 동일한 수를 할당 2.선택한 n개의 데이터 샘플에서 데이터 특성값(아이리스 데이터의 경우, 꽃잎 너비,..
1. 결정 트리 모델(Decision Tree Model) 머신 러닝 알고리즘 중 직관적으로 이해하기 쉬운 알고리즘 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리(Tree) 기반의 분류 규칙을 만드는 것 규칙 노드(Decision Node)로 표시된 노드는 규칙조건이 되는 것이고, 리프노드(Leaf Node)로 표시된 노드는 결정된 클래스 값 또한 새로운 규칙을 학습을 통해 자동으로 찾아내 트리(Tree) 기반의 분류 규칙을 만드는 것. 2. 의사결정트리에서 데이터 불순도를 측정하는 방법? 지니인덱스(Gini Index) 엔트로피(Entropy) 분류 오류(Classification Error) 2.1 정보이득(Information Gain) - 엔트로피(Entropy) 의사 결정 학습에서 각 ..
통계기반 머신러닝으로 만든 학습기와 분류기? => 분류와 식별을 실행할 때 학습기 하나에서 원하는 성능을 낼 수 있도록 설계. ∴ 학습기 수가 적은 모델을 구축할 때가 많다. (사람이 학습기의 동작을 이해하려면 가능한 하 구조가 단순한 것이 바람직하기 때문 앙상블 방법은 분류에서 가장 각광을 받는 방법 중 중 하나 서로 다른/또는 같은 알고리즘을 단순히 결합한 형태도 있으나, 일반적으로 배깅(Bagging)과 부스팅(Boosting) 방식으로 나뉨 1.배깅(Bagging) – 일반적인 모델을 만드는데 집중 가중치 부여 X 배깅 알고리즘(랜덤 포레스트) ==> 여러 트리 모양 결합하여 생긴 결과 샘플을 여러 번 뽑아 각 모델을 학습시켜 결과를 집계(Aggregating)하는 방법 대상 데이터로부터 복원 랜..
0. pandas로 csv 파일 읽기 1 2 3 4 5 train = pd.read_csv('./train/train.csv') test = pd.read_csv('./test/test.csv') print(train.head(5)) print(test.head(5)) cs 1.1 train , test shape 확인하기 1 2 3 print('We have {} training rows and {} test rows.'.format(train.shape[0], test.shape[0])) print('We have {} training columns and {} test columns.'.format(train.shape[1], test.shape[1])) train.head(2) Colored by..
1. 시계열(Time series) 데이터란? 시간에서 순차적으로 (sequentially) 관측한 값들의 집합 독립변수(Independent variable)를 이용하여 종속변수(Dependent variable)를 예측하는 일반적인 기계학습 방법론에 대하여 시간을 독립변수로 사용한다는 특징 독립변수로 시간을 사용하는 특성때문에 분석에 있어서 일반적인 방법론들과는 다른 몇가지 고려가 필요 2. 시계열 자료 분석 방법 일변량 시계열 분석 - {Yt ; t = 1,2,..,T}만을 가지고 분석 회귀분석(계량경제) 방법, BOX-JENKINS 방법 수학적 이론 모형에 의존하고 시간에 따라 변동이 많은 (빠른) 시계열 자료에 적용 지수 평활법, 시계열 분해 방법 다소 직관적인 방법이며 시간에 따른 변동이 느린..
1. label encoding - 단순하게 레이블링 해주는 것 - 하지만 머신러닝시 가중치로 되어 데이터 정확도에 혼선을 줄 수 있음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from sklearn.preprocessing import LabelEncoder import pandas as pd import numpy as np array = np.array([["paris","paris","seoul"],["newyork","paris","seoul"],["seoul","paris","paris"],["seoul","paris","paris"]]) df = pd.DataFrame(array, columns = ['A','B','C']) ..
0 . Predict Future Sales - 캐글 링크 불러오는 중입니다... 1. Data Description - 일일 이력 판매 데이터가 제공됩니다. 작업은 테스트 세트에 대해 모든 상점에서 판매 된 총 제품 수를 예측하는 것입니다. 상점 및 제품 목록은 매달 약간 씩 변경됩니다. 이러한 상황을 처리 할 수있는 강력한 모델을 만드는 것은 어려운 일 중 하나입니다. sales_train.csv - the training set. Daily historical data from January 2013 to October 2015. test.csv - the test set. You need to forecast the sales for these shops and products for Novemb..
0. 블록체인이란? - 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술 - 데이터 분산 처리 기술, 암호학적으로 안전한 블록들의 체인 - 중앙에서 데이터를 처리하거나 관리하는 기관이 없음 - 모든 사용자가 데이터 내역을 가짐 1. 블록체인 비대칭키 암호화 방식 - 비트코인에서 거래가 안전하게 이루어질 수 있도록 사용하는 암호화 기술 1.1 암호화 기술 * 대칭키 암호화 - 키가 하나 - 암호화를 할 떄와 암호를 풀 때 동일한 키를 사용한다 * 비대칭키 암호화 - 암호화할 때 사용하는 키와 암호를 풀..