머신러닝에 대한 강의가 3.11 ~ 3.15일 까지 진행되었어요
인간은 경험을 토대로 예측을 하지만, 머신러닝은 방대한 양의 데이터를 예측 혹은 분류하고자 할 때 기계를 학습시키는데 그것을 머신러닝이라고 부릅니다.
머신러닝 즉, 기계가 학습하기 위해서는 적정량의 데이터가 필요합니다.
또한 기계는 언어를 모르므로 숫자 데이터만을 입력해야합니다.(Target은 예외)
적정량의 데이터를 선정하는 과정을 전처리라고 합니다.
-> 따라서 데이터를 잘 가공해야만 머신러닝의 성능이 향상됨
머신러닝은 학습 방법에 따른 분류와 과제에 따른 분류로 나눌수 있어요
- 지도 학습
- 학습 대상이 되는 데이터에 정답을 주어 규칙성
- 즉 데이터 패턴을 배우게 하는 학습 방법
- 비지도 학습
- 정답이 없는 데이터만을 배우게 하는 학습 방법
- 강화학습
- 선택한 결과에 대해 보상을 받아 행동을 개선하면서 배우게 하는 학습 방법
- 분류 문제
- 이미 적절히 분류된 데이터를 학습하여 분류 규칙을 찾고
- 그 규칙을 기반으로 새롭게 주어진 데이터를 적절히 분류(지도학습)
- 회귀 문제
- 이미 결과값이 있는 데이터를 학습하여 입력 값과 결과 값의 연관성을 찾고
- 그 연관성을 기반으로 새롭게 주어진 데이터에 대한 값을 예측하는 것을 목적으로 함(지도학습)
- 클러스터링
- 주어진 데이터를 학습하여 적절히 분류 규칙을 찾아 데이터를 분류함을 목적
- 정답이 없으니 성능을 평가 하기 어려움(비지도학습)
-> 회귀는 연속적인 숫자를 예측하는 것이고, 분류는 범줏값을 예측함
머신러닝 모델을 학습할 때 학습 데이터셋에 지나치게 최적화하여 발생하는 문제
모델을 지나치게 복잡하게 학습하여 학습 데이터셋에서는 모델 성능이 높게 나타나지만 정작 새로운 데이터가 주어졌을 때 정확한 예측/분류를 수행하지 못함
과대적합의 반대 개념으로서 머신러닝 모델이 충분히 복잡하지 않아(최적화가 제대로 수행되지 않아) 학습 데이터의 구조/패턴을 정확히 반영하지 못하는 문제
Scikit-Learn이란? 지도/비지도 학습 알고리즘을 제공하는 대표적인 파이썬 라이브러리
여러 알고리즘을 같은 구조의 코드로 사용할 수 있기 때문에 배우기가 쉬움
따라서 구조는 같고 선언하는 부분과 평가하는 부분만 각 알고리즘에 맞게 수정하면 코드가 동작함
-> 배우기가 쉬움