1. 머신러닝이란? 기계학습 또는 머신러닝은 기계(컴퓨터)가 학습을 할 수 있도록 하는 연구분야. 인공지능을 소프트웨어적으로 구현하는 머신러닝(Machine learning)은 컴퓨터가 데이터를 학습하고 스스로 패턴을 찾아내 적절한 작업을 수행하도록 학습하는 알고리즘 머신러닝 시스템(ML)은 관측데이터 D로부터 성능지수P를 최적화하는 모델 M을 자동으로 만드는 기술이다 데이터는 환경과의 끊임없는 상호작용을 통하여 축적된다. Google Assistant, Apple Siri, IBM Watson… 등 머신러닝을 사용하여 다양한 도메인의 지식 습득 및 실제 문제의 해결에 적용. 형식화 하여 정의? “환경(Environment)과의 상호작용을 통해서 축적되는 경험적인 데이터(Data)를 바탕으로 지식, 즉 ..
1. Support Vector Machines 퍼셉트론의 한계 : 결정 경계가 항상 선형이어야 하므로 범용 함수 근사기가 될 수 없음 SVM? 선형으로 분리 가능할 수도 있는 고차원으로 효율적 매핑하는 커널을 사용해 퍼셉트론의 한계를 극복 SVM은 결정 경계로부터 가장 가까운 인스턴스의 마진을 최대화한다. 특징을 더 고차원으로 매핑하는 방법이 SVM임. 고차원 공간에 매핑 된 데이터를 학습할 때 발생하는 계산 양 문제와 일반화 문제를 SVM이 어떻게 완화시켰는지 알아보기 SVM을 훈련시키기 위해 사용하는 최적 알고리즘을 설명하려면 고차원의 수학을 사용해야 한다. 2. SVM의 장단점 실제로 그 문제들이 이진분류에 적합하지 않더라도, 회귀, 분류, 비정상 탐지(anomaly detection)같은 지도 ..
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 방법 수학적 이론 모형에 의존하고 시간에 따라 변동이 많은 (빠른) 시계열 자료에 적용 지수 평활법, 시계열 분해 방법 다소 직관적인 방법이며 시간에 따른 변동이 느린..