목록머신러닝 (23)
Stack Building
1. 로지스틱 회귀 1-1. 분류 이메일을 스팸과 일반 메일로 구분하고, 온라인 상거래의 이상치를 검토하고, 종양이 양성인지 음성인지 분류해주는 예제를 보아 왔다. 이처럼, 분류에서 종속 변수 y는 0과 1 중에 하나가 되었다. 0은 부정적이고, 1은 긍정적인 경우, 단 두 가지로 말이다. 그런데 이때, y가 두 개가 아니라 여러 개로 분류되는 것을 multiclass problem이라고 부른다. 1-2. 선형회귀Linear Regression의 문제점 위와 같은 분류를 선형회귀로 나타내면 어떻게 될까? 위의 분류기는 임계값 분류기Threshold classifier로, 임계치 이상의 값은 a, 아닌 것은 b 와 같은 식으로 분류를 수행한다. 만약 임계값 분류기 hΘ(x)가 0.5보다 크거나 같으면 y는..
1. 다중 선형 회귀 multivariate linear regression 1-1. 개념 독립변수가 하나인 선형회귀는 단변량 선형 회귀라고 말했다. 독립변수, 즉 피처가 늘어날 수 있다. 예를 들어, 위 그림과 같은 경우는 기본 가격은 80 정도이고, 평수의 10% 가량 가격이 올라가고, ..., 지어진지 오래됐을 수록 가격이 떨어진다면 ℎΘ(x) = 80 + 0.1x1 + 0.01x2+ 3x3 - 2x4x 정도로 표현할 수 있다. 이처럼 독립변수를 여러개로 확장한 선형회귀를 '다중선형회귀'라고 한다. 일반적인 표기로 hΘ(x)=Θ0 + Θ1x1 + Θ2x2 + ... + Θn4xn 와 같이 표현할 수 있다. 이때 표기의 간편함을 위해 x0=1로 두어 hΘ(x)=Θ0x0 + Θ1x1 + Θ2x2 + ...
1. 회귀와 분류의 차이 분류는 지도학습, 클러스터링은 비지도학습이다. 다만 지도학습이 모두 분류는 아닌데, 바로 지도학습에 '회귀Regression'가 있기 때문이다. 회귀 문제는 연속적continuous인 값을 예측한다. 입력값을 어떤 연속함수에 매핑한다. 부동산 시장의 주택 매물의 크기 데이터가 주어지고, 그 주택들의 가격을 예측하는 문제가 회귀의 예라고 볼 수 있다. 분류는 이산값discrete categories을 예측한다. 입력값을 이산 카테고리(ex. 긍정/부정)로 매칭한다. 종양을 가진 환자의 데이터를 주고 이 종양이 악성인지 양성인지 예측하는 것이 그 예이다. (로지스틱 회귀는 분류이다) 2. 선형회귀 2-1. 예시 선형 회귀란 독립 변수와 종속 변수의 선형 상관 관계를 모델링하는 것이다..
1. 의사결정나무 Decision Tree 1-1. 결정 트리 유도에 의한 분류 (1) 결정 트리 - 플로우 차트와 같은 트리 구조 - 내부internal 노드는 속성에 대한 테스트를 나타냄 - 분기branch는 테스트의 결과를 나타냄 - 리프leaf 노드는 클래스 레이블 또는 클래스 분포를 나타냄 (예: buys_computer=Yes) (2) 트리 생성의 단계 ⓐ 트리 생성 - 처음에는 모든 학습 예제가 루트에 있다. - 선택된 속성에 기반하여 재귀적으로 파티셔닝partitioning다. ⓑ 가지치기 Pruning - 노이즈나 이상치를 보여주는 분기(가지)를 확인하고 제거한다. (3) 트리 사용 - 알려지지 않은 샘플을 분류한다. - 의사결정트리에 대해 샘플의 속성값을 테스트한다. 1-2. 예시 1-..
1. 기본 개념 ㅡ지도학습 (분류): 학습 데이터(training data, 관측치, 값 등)는 정답(분류 결과, 클래스)을 알려주는 레이블이 붙어있다. 새로운 데이터는 이 학습 데이터를 기반으로 분류된다. 분류는 이산/명목형 자료와 같은 범주형 클래스 레이블을 추정한다. 학습 데이터 셋과 그 값(클래스 레이블)을 분류한classify 것에 기반한 모델을 생성하여 새로운 속성을 분류하는 데 사용한다. flat하게 나누는 것과 계층이 있게 나누는 것으로 또 나뉠 수 있다. flat한 분류는 여학생/남학생으로 분류하는 것이 있고, 계층이 있는 분류는 저학년/고학년으로 분류하는 것이 있다. 수치 예측은 알려지지 않거나 결측치와 같은 연속값 함수를 모델링한다. ㅡ비지도학습 (클러스터링): 학습 데이터의 레이블을..
시각화의 기본은 plot과 show다. 플라팅을 해준 뒤, 화면에 보여준다. 파이썬의 시각화 패키지에는 matplotlib가 있다. 사용 예제는 아래와 같다. [1] 직선 그래프 [2] 그래프 이름과 축 이름 추가 [3] 선 대신 점으로 표현하기 [4] 한글 입력하기 한글 입력을 할 경우 깨져서 나오기 때문에 폰트를 따로 지정한다. [5] 서브플랏을 사용해서 여러 개의 그래프 표현하기 [6] 그리드 표현하기 [7] 산포도 [8] 막대그래프 [9] 파이그래프 코드 살펴보기: 데이터 시각화
1. AWS 람다란? 어떠한 이벤트에 따라 Cron 프로세스를 구성하는데에는 다양한 방법이 존재합니다. 서버 인스턴스를 띄워놓고 일정 시간에 이벤트를 발생시키는 것이 일반적인 방법 중 하나이지만 이러한 방법으로 구성할 시에는 해당 시간에 Event를 발생시키는 일을 제외하고는 서버 인스턴스를 낭비하게 됩니다. AWS Lambda는 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버 없는 컴퓨팅 서비스입니다. AWS Lambda를 사용하여 커스텀 로직으로 다른 AWS 서비스를 확장하거나, AWS 규모, 성능 및 보안으로 작동하는 자체 백엔드 서비스를 만들 수 있습니다. AWS Lambda는 Amazon S3 버킷의 객체에 대한 변경 또는 Amazon DynamoDB의 테이블 업데..
1. 기계 학습 - 인간이 가지고 있는 학습 능력을 로봇이나 컴퓨터에서 실현하는 기술 - 인공지능 분야에서 수학적인 기초가 잘 잡혀있는 분야 2. 지도학습(Supervised Learning) - '지도': 학습에 사용되는 자료의 정답 - 정답이 있는 학습 데이터(Training Data)를 통해 학습을 수행하여 예측(또는 인지) 모형을 구성 따라서 정확한 답이 존재하는 양질의 데이터가 주어지는 것이 중요. - 학습된 모형을 정답이 있는 검증 데이터를 통해 성능을 향상시킴 ex. 강아지 사진 10장 학습, 고양이 사진 10장 학습 후 강아지/고양이 맞추기 ex. 면적, 화장실 갯수, 시세를 학습, 시세 예측 - 지도학습 수행의 필수요소 - 학습 데이터(Training Data) : 모델 학습에 필요한 자..
1. 프로그래밍 개념 - 컴퓨터 프로그램: 컴퓨터가 수행할 명령어(instruction)들을 적어 놓은 문서 (ex.작업지시서) - 소스 코드: 컴퓨터가 수행할 명령어가 저장된 파일 - 컴퓨터가 이해할 수 있는 프로그래밍 언어를 사용해야 함 - 변수: 프로그램에서 일시적으로 데이터를 저장하는 공간. 데이터가 입력되면 어딘가에 저장해야만 다음에 다시 사용할 수 있음. 1.1 변수 이름 부여하기 - 변수 이름은 변수/함수를 식별할 수 있게 하고, 언어마다 지정하는 방식에 조금씩 차이가 있음 (강제는 아님) - 의미 있는 이름을 사용 - 대문자 =/= 소문자 - 변수의 이름은 영문자, 숫자, underscore( _ )로 구성 - 첫 번째 문자는 반드시 알파벳 또는 underscore( _ ) - 변수의 이름..