티스토리 뷰
머신러닝이란?
(머신러닝 = 기계학습) -> 데이터 기반 학습 -> 예측
인공지능의 한 분야이다. 컴퓨터가 학습할 수 있도록 알고리즘, 기술 개발
통계, 데이터 마이닝, 컴퓨터 과학 등에 쓰임
(데이터 + 규칙)을 통해 답을 찾아내는 것,
(데이터 + 답)을 통해 규칙을 찾아내는 것
1. 데이터 수집 - 비즈니스 목적에 알맞은 데이터 소스를 수집하는 것.
시스템이나 소프트웨어를 이용하여 로그를 수집하거나 크롤링, 하드웨어를 이용한 세상 등이 있다.
2. 데이터 전처리 - 데이터를 분석 전 깨끗하게 처리하는 것
결측치 처리 : 데이터 삭제, 다른 값으로 대체(최대값, 최솟값, 중앙값 등), 예측 모델을 활용한 값 삽입
이상치 처리 : 입력오류(데이터 삭제, 다른 값으로 대체), 자연발생(feature 추가)
Feature Engineering : scaling(feature의 단위를 변경), binning(수치형-> 범주형),
transform(feature를 분리하거나 연산-날짜, 주중/주말),
encoding(범주형->수치형)
데이터 분석가는 80% 이상의 시간을 데이터 수집/전처리 과정에 사용
가비지.. 좋은 자료를 모으고, 적정하게 정리하여 넣지 않으면 가치를 발견하기 어렵다.
3. 데이터 분석 - 각 변수가 어떤 의미인지 파악
범주형(categorical data) : 성별, 혈액형, 성공 여부(nominal data), 학점, 지역
수치형(numerical data) : 발생 횟수, 학급 인원, 키, 몸무게, 혈압
기술통계 : 최댓값, 최솟값, 최빈값, 평균값, 중앙값, 분산, 표준편차, 사분위수
변수간 상관관계, 독립여부 확인
4. 데이터 예측
5. 데이터 시각화/서비스화 (데이터 시각화 부분은 나중에 한번 더 포스팅할 예정!)
- 시각화 :
- 파이썬 라이브러리: Matplotlib, Seaborn, ggplot
- 태블로 Tableau
- 자바스크립트 라이브러리: D3
- 서비스화
머신러닝의 종류
- 지도 학습(Supervised Learning) - 답이 주어진 상태에서 학습
- 비지도 학습(Unsupervised Learning) - 답 없이 학습
- > 예측 이전에 데이터를 정제하거나 묶어볼 때 주로 사용한다.
- 강화 학습(Reinforcement Learning) - 게임산업, 실시간 결정, 로봇 내비게이션
1. 지도 학습 (Supervised Learning)
정답을 알려주며 학습시키는 것!
X값 = input data
y값 = Label (정답)
1-1) 분류
미리 정의된 정답(클래스) 중 예측
입력 (속성), 출력 -> 클래스 값
- 이진 분류(둘 중에 하나 분류)
(ex. 스팸메일인지 아닌지! True / False 결과)
- 다중 분류
(ex. 동물 사진을 주고 고양이, 호랑이, 사자, 강아지 등으로 분류된 결과)
1-2) 회귀
연속적인 숫자 예측. 어떤 데이터들의 특징(feature)을 토대로 값을 예측하는 것.
예측 값의 작은 차이가 중요하지 않다. (예측 값들은 연속성을 갖는다. 그래프 생각해보면 된다.)
2. 비지도 학습 (Unsupervised Learning)
정답을 따로 알려주지 않고(Label 없음) 비슷한 데이터들을 '군집화' 하는 것.
그룹핑 알고리즘!
라벨링이 되어있지 않은 데이터로부터 패턴이나 형태를 찾아야 하기 때문에 지도학 습보다 난이도가 있다.
실제로 지도 학습에서 적절한 특징(feature)을 찾아내기 위한 전처리 방법으로 비지도 학습을 이용하기도 한다.
3. 강화 학습(Reinforcement Learning)
강화 학습은 지도, 비지도 학습과는 조금 다른 개념이다.
분류할 수 있는 데이터가 존재하지 않고,
데이터가 있어도 정답이 따로 정해져 있지 않으며
자신이 한 행동에 대해 보상(reward)을 받으며 학습하는 것을 말한다.
3-1) 강화 학습의 개념
- 에이전트(Agent)
- 환경(Environment)
- 상태(State)
- 행동(Action)
- 보상(Reward)
강화 학습의 동작 순서
1. 정의된 주체(agent)가 주어진 환경(environment)의 현재 상태(state)를 관찰(observation)하여,
이를 기반으로 행동(action)을 취한다.
2. 이때 환경의 상태가 변화하면서 정의된 주체는 보상(reward)을 받게 된다.
3. 이 보상을 기반으로 정의된 주체는 더 많은 보상을 얻을 수 있는 방향(best action)으로 행동을 학습하게 된다.
<머신러닝의 단계>
① 문제 정의
② 데이터 수집
③ 데이터 전처리
④ EDA(탐색적 데이터 분석, 시각화)
⑤ 모델(알고리즘 `=. 머신) 선택, 하이퍼 파라미터 조정
⑥ 학습
⑦ 평가
⑧ 예측
일반화(Generalizstion) - 훈련 세트로 학습한 모델이 테스트 세트에 대해 정확히 예측하도록 하는 것
과대 적합(Overfitting) - 훈련 세트에 너무 맞추어져 있어 테스트 세트의 성능 저하
과소 적합(Underfitting) - 훈련 세트를 충분히 반영하지 못해 훈련 세트, 테스트 세트에서 모두 성능이 저하
해결방법
- 주어진 훈련 데이터의 다양성이 보장되어야 한다. 다양한 데이터 포인트를 골고루 나타내야 한다.
- 일반적으로 데이터 양이 많으면 일반화에 도움이 된다.
- 하지만 편중된 데이터를 많이 모으는 것은 도움이 되지 않는다.
- 규제(Regularization)를 통해 모델의 복잡도를 적정선으로 설정한다.
'Python > 머신러닝' 카테고리의 다른 글
Decision Tree(결정트리) 알고리즘 [스마트인재개발원] (0) | 2021.07.09 |
---|
- Total
- Today
- Yesterday
- 3계층구조
- Ajax
- Python
- 최종프로젝트
- 발표
- 데이터계층구조
- 광주코딩교육
- 스마트인재캠퍼스
- 자바
- 스마트미디어인재개발원
- 야너두할수있어코딩
- 개발도구
- JavaScript
- 스마트인재개발원
- 코딩
- IoT
- Java
- Vue.js
- 지도학습모델
- 비동기
- JSON
- 야너두코딩할수있어
- 스마트미디어캠퍼스
- 국비지원코딩교육
- 뷰
- 머신러닝
- 랩실
- 랩실스터디
- 야너두할수있어
- Vue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |