일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사
- list
- java
- 정처기
- AWS
- regressor
- javascript
- ensemble
- BeautifulSoup
- Intellij
- 정보처리기사필기
- 비전공자
- 머신러닝
- request
- pds
- 크롤링
- BS
- 자바
- crawling
- lombok
- dataframe
- sklearn
- Req
- pandas
- 백준
- SOUP
- 자바스크립트
- APPEND
- springboot
- 웹앱
- Today
- Total
No sweet without sweat
[Machine Learning] - 이론 정리 본문
머신러닝 종류
1. 지도학습(Supervised Learning) : 정답이 있음
1) 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
2) 사람이 직접 개입하기 때문에 정확도가 높은 데이터 사용가능
3) 사람이 직접 Label을 달아야 하므로 구할 수 있는 데이터의 한계가 있음
4) 분류(Classification)와 회귀(Regression)으로 나누어진다.
- 스팸 메일 분류, 집 가격 예측
*분류
- 미리 정의된 여러 클래스 레이블 중 하나를 예측( 정답의 종류가 정해져 있음)
- 속성 값을 입력, 클래스 값을 출력(정답을 예측)하는 모델
- 붓꽃(iris)의 세 품종 주 하나로 분류, 암 분류, 이진분류, 다중 분류 등이 있다.
(정답 -> 레이블, 정답의 종류- > class)
* 회귀 - 정답의 개수가 미정(집값)
- 연속적인 숫자를 예측하는 것
- 속성 값을 입력, 연속적인 실수 값을 출력하는 모델
- 어떤 사람의 교육수준, 나이, 주거지를 바탕으로 연간 소득 예측
- 예측 값의 미묘한 차이가 크게 중요하지 않다.
2. 비지도학습(Unsupervise Learning) : 정답이 없음, 정답을 찾지않음 대신 유사점, 특징을 찾음
- 데이터에 대한 Label(명시적인 답)이 업슨 상태에서 컴퓨터를 학습시키는 방법
- 데이터의 숨겨진 특성, 구조, 패턴을 파악하는데 사용
- 데이터를 비슷한 특성끼리 묶는 클러스터링(Clustering)과 차원축소(Dimensionality Reduction)등이 잇다.
강화학습( Reinforcement learning) :게임
1) 지도학습과 비슷하지만 완전한 답(Label)을 제공하지 않는 특징이 있다.
2) 기계는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
3) 주로 게임이나 로봇을 학습시키는데 많이 사용
머신러닝(Machine Learning)이 유용한 분야
- 기존 솔루션으로는 많은 수동 좆어과 규칙이 필요한 문제
- 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
- 새로운 데이터에 적응해야하는 유동적인 환경
- 대량의 데이터에서 통찰을 얻어야 하는 문제
[1] 머신러닝 과정
1. Problem Identification(문제 정의)
- 비즈니스 목적 정의(모델을 어떻게 사용해 이익을 얻을까?
- 현재 솔루션의 구성 파악
- 지도 vs 비지도 vs 강화
- 분류 vs회귀
2. Data Collect(데이터수집)
- File (CSV,XML,JSON)
- Database
- Web Crawler(뉴스, sns, 블로그)
- IOT 센서를 통한 수집
- Survey
3. Data Preprocessing(데이터 전처리)
- 결측치, 이상치 처리
- Feature Engineering (특성공학)
: Scaling(단위 변환)
: Transfrom(새로운 속성 추출)
: Encoding(범주형 ->수치형)
: Binning(수치형 -> 범주형)
4. EDA(탐색적 데이터분석)
- 기술통계, 변수간 상관관계
- 시각화
: pandas, matplotlib, seaborn
Feature Selection (사용할 특성 선택)
5. Model 선택, Hyper Parameter 조정
- 목적에 맞는 적절한 모델 선택
- Hyper Parameter
: model의 성능을 개선하기위해 사람이 직접 넣는 parameter(직접조정)
6. Training(학습)
- model.fit(X_train,y_train)
- 데이터 수집 -> 학습 -> 예측(임의로{test})
: train 데이터(문제와 정답이 있음. 문제와 정답을 그대로 사용해 규칙찾음)와 test 데이터(문제와 정답이 있음)를 7:3 정도로 나눔
- train(data - 문제 ) 7 : 3(test data - 정답{훈련용 데이터})
- 훈련용 데이터를 통해 모델에 학습하고 규칙을 찾음. 그리고 규칙을 통해 새로운 값을 예측
- 7단계 예측을 test(data)를 활용
- 문제, 정답(일부러 정답이 있게 해놓음), 실제정답
- 모델들이 본인의 규칙을 가지고 있음. + 새로운 문제를 넣어 예측값을 만들고 많은 정답을 만들어야 함.(원래는 예측값은 정답이 없음) 이렇게 예측값과 실제 정답과 비교를 해 얼마나 예측값이 정확한가?(정확도 – 95%)
1.규칙 잘찾앗나? 2. 규칙ㅈ정확한가?

학습 – X_train, y-trai
평가 – predict(x_test), score X_test
- >
7. Evaluation(평가)
1) accuraacy(종확성)
2) recall(재현율)
3) precision(저밀도)
1fs core
[2] 일반화, 과대적합, 과소적합, KNN알고리즘, 하이퍼파라미터 튜닝
1. 일반화, 과대적합, 과소적합

ex) 공이라는 물체에 정보 입력할때
1) 과대적합(overfitting) : 너무 많은 조건을 줘버림
: 훈련 세트에 너무 맞추어져 있어 테스트 세트의 성능 저하
점이있다
: 둥글게 생겼따
등등
등등
2) 과소적합(Underfiting) : 너무 적은 조건을 줘버림
: 훈련 세트를 충분히 반영하지 못해 훈련세트, 테스트 세트에서 모두 성능이 저하
: 둥글게 생겼다.
3) 일반화(Genraliztion)
- 훈련 세트로 학습한 모델이 테스트 세트에 대해 정확히 예측하도록 하는 것
|
훈련score
|
예측score
|
과대적합
|
매우높음 1
|
훈련score에 비해 낮음 2
|
▽
|
△
|
|
일반화
|
높음 2
|
가장높음 1
|
▽
|
▽
|
|
과소적합
|
다소낮음 3
|
매우낮음 3
|
train, test의 비율
7↑ 3↓ -> 과대적합 확률증가
↓ ↑ -> 과소적합 확률 증가
4) 데이터 칼럼의 수가 증가할수록 과대적합 확률 증가

5) 머신러닝 모델의 매개변수에 따라 과대, 과소 적합의 확률이 증가/감소할 수 있음
- 하이퍼파라미터 튜닝
해결방법
- 주어진 훈련데이터의 다양성이 보장되어야 한다. 다양한 데이터포인트를 골고루 나타내야한다.
- 일반적으로 데이터 양이 많으면 일반화에 도움이 된다
- 하지만 편중된 데이터를 많이 모으는 것은 도움이 되지 않는다.
- 규제(Regularization)을 통해 모델의 복잡도를 적정선으로 설정한다.
2. K-Nearest Neightbors(KNN)

1) k - 최근접 이웃 알고리즘
: 새로운 데이터 포인트와 가장 가까운 훈련 데이터셋이 데이터 포인트를 찾아 예측
2) k 값에 따라 가까운 이웃의 수가
3) 분류와 회귀에 모두 사용
4) k 값이 작을수록 모델의 복잡도(결정 경계가 복잡)가 생대적으로 증가.(noise->이상치 값에 민감)
5) 반대로 k 값이 커질수록 모델의 복잡도가 낮아진다.
6) 100개의 데이터를 학습하고 k를 100개로 설정하여 예측하면 빈도가 가장 많은 클래스 레이블로 분류
(데이터 의수 = k, 정답클래스 많은 비율이 답)

파랑색으로 예측
같으면 거리에 기반해서 결정
분류 : 이웃중에서 많은 비율을 가지는 것을 예측값으로 선택
회귀 : 이웃들의 평균값 -> 예측값
KNN
1) 주요 매개변수
- 거리측정 방법, 이웃의 수, 가중치 함수
scikit-learn의 경우
metric : 유클리디언 거리 방식
n_neightbors : 이웃의 수
weight : 가중치 함수
- uniform : 가중치를 동등하게 설정
- distance : 가중치를 거리에 반비례하도록 설정
2) 장단점
- 이해하기 매우 쉬운 모델
- 훈련 데이터 세트가 크면(특성, 샘플의 수) 예측이 느려진다.
- 수백 개 이상의 많은 특성을 가진 데이터 세트와 특성 값 대부분이 0인 희소(sparse)한 데이터 세트에는 잘 동작하지 않는다.
- 거리를 측정하기 때문에 같은 scale을 같도록 정규화 필요
'Machine Learning' 카테고리의 다른 글
[Machine Learning] - KNN_iris분류 (0) | 2022.09.04 |
---|---|
[Machine Learning] - 서울시 구별 CCTV 현황 분석하기 (numpy, pandas, matplotlib.pyplot) (0) | 2022.09.02 |
[Machine Learning] - 미스터리사인 (0) | 2022.09.01 |