머신러닝

머신러닝 기초

줘니(•̀ᴗ•́)و 2023. 3. 22. 09:25
728x90

1. 머신러닝

: 인공지능 기반의 기술로서 컴퓨터가 데이터를 통해 스스로 학습하면서

새로운 지식을 얻어 자동으로 개선하고 결과를 예측하는 컴퓨터 알고리즘

 

 

 

 

 

 

* 규칙 기반 전문가 시스템 : if, else문으로 하드코딩된 시스템

 

→ 단점

 

- 많은 상황에 대한 규칙들을 모두 만들어 낼 수는 없음

- 제작한 로직이 특정 작업에만 국한

- 작업이 조금만 변경되더라도 전체 시스템을 다시 만들어야 할 가능성 높음

- 규칙을 설계하려면 해당 분야에 대해 잘 알고 있어야 함

 

그래서 머신러닝 등장 ~ !

 

 

 

 

 

* 머신러닝과 딥러닝의 차이

 

 

 

머신러닝에는 사람이 껴 있다!

 

 

그럼 사람 손 안타는 딥러닝이 더 편하고 좋은 거 아닌가요???

NO!!!!

 

각각 장단점이 있다!

 

 

 

 

 

딥러닝은 데이터가 많으면 정확도가 우수하지만

데이터가 작다면 머신러닝 알고리즘이 더 우수!

 

 

 

 

 

그러니 뭐가 더 좋고 나쁘고 결정할 수 없다!

 

 

 

2. 머신러닝 학습방법

 

1) 지도학습

: 데이터에 대한 명시적인 답(Label)이 주어진 상태에서 컴퓨터를 학습시키는 법

대표적인 지도학습 방법으로는 분류(Classification)회귀(Regression)가 있다.

지도학습의 예시로는 스팸 메일 분류, 집 가격 예측의 경우를 들 수 있다.

 

 

 

 

 

 

* 분류(Classification)

- 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것

- 속성 값을 입력, 클래스 값을 출력으로 하는 모델

- 이진분류, 다중분류 등이 있음

 

 

* 회귀(Regression)

- 연속적인 숫자를 예측하는 것

- 속성값을 입력, 연속적인 실수 값을 출력으로 하는 모델

- 예측 값의 미묘한 차이가 크게 중요하지 않음

- 어떤 사람의 교육수준, 나이, 주거지를 바탕으로 연간 소득 예측 등

 

 

2) 비지도학습

: 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법

데이터의 숨겨진 특징, 구조, 패턴을 파악하는 데 사용

데이터를 비슷한 특성끼리 묶는 클러스터링(Clustering)과 차원축소(Dimensionality Reduction)등이 있다.

비지도학습의 예시로는 이미지 감색처리, 소비자 그룹 발견을 통한 마케팅, 손글씨 숫자 인식이 있다.

 

 

 

 

 

 

* 군집 분석(Clustering)

- 특별한 사전 가정 없이 개체들 사이의 유사성/거리에 근거하여 군집을 찾고 다음 단계의 분석을 하게 하는 방법

- 개인 또는 여러 개체를 유사한 속성을 지닌 대상들끼리 그룹핑하는 탐색적 다변량 분석 기법

- 계층적 군집 분석과 비계층적 군집분석으로 구분

 

 

* 차원축소(Dimension Reduction)

- 매우 많은 특성으로 구성된 다차원 데이터 세트의 차원을 축소해서 새로운 차원 세트를 생성

- 특성 선택과 특성 추출로 구분

- 단순하게 데이터를 압축하는 것이 아닌 차원 축소를 통해 데이터를 조금 더 잘 설명할 수 있는 요소를 추출

 

 

 

 

 

 

3) 강화학습

: 어떠한 환경에서 정의된 AI가 현재의 상태를 인식하여 선택 가능한 행동들 중

보상을 최대화 하는 행동 or 행동 순서를 선택하는 방법(게임회사에서 많이 함)

 

 

 

 

 

3. 머신러닝 과정

 

1) Problem Identification(문제정의)

2) Data Collect(데이터 수집)

3) Data Preprocession(데이터 전처리)

4) EDA(탐색적 데이터분석)

5) Model 선택, Hyper Parameter 조정

6) Training(학습)

7) Evaluation(평가)

 

 

 

1) Problem Identification(문제정의)

  • 비즈니스 목적 정의모델을 어떻게 사용해 이익을 얻을까?
  • 현재 솔루션의 구성 파악
  • 지도 vs 비지도 vs 강화
  • 분류 vs 회귀

 

 

2) Data Collect(데이터 수집)

  • File (CSV, XML, JSON)
  • Database
  • Web Crawler (뉴스, SNS, 블로그)
  • IoT 센서를 통한 수집
  • Survey

 

 

3) Data Preprocession(데이터 전처리)

  • 결측치, 이상치 처리
  • Feature Engineering (특성공학) : Scaling (단위 변환)
  • Encoding (범주형 → 수치형)
  • Binning (수치형 → 범주형)
  • Transform (새로운 속성 추출)

 

 

4)  EDA(탐색적 데이터분석)

  • 기술통계, 변수간 상관관계
  • 시각화 : pandas, matplotlib, seaborn
  • Feature Selection (사용할 특성 선택)

 

 

5) Model 선택, Hyper Parameter 조정

  • 목적에 맞는 적절한 모델 선택
  • KNN, SVM, Linear Regression, Ridge, Lasso, Decision Tree, Random forest 등등
  • Hyter Parameter :  model의 성능을 개선하기 위해 사람이 직접 넣는 parameter - (n_neighbor=1)

 

 

6) Training(학습)

  • model.fit(X_train, y_train)
  • train데이터와 test데이터를 7:3 정도로 나눔
  • model.predict(X_test)

 

 

7) Evaluation(평가)

 

분류 회귀
accuracy(정확도) MSE(Mean Squared Error)
recall(재현율) RMSE(Root Mean Squared Error)
precision(정밀도)
f1 score R² (R Square)

 

 

 

 

 

 

 

파이썬에선 scikit-learn 이라는 라이브러리를 사용할 것!

→ 회귀, 분류, 군집, 차원축소, 특성공학, 전처리, 교차검증, 파이프라인 등 머신러닝에 필요한 기능을 갖추고 있는 머신러닝 프레임워크, 라이브러리로 학습을 위한 샘플데이터도 제공하고 있음!

 

 

728x90