Everyday, Challenge

코딩/머신러닝

[ML]2. 머신러닝 개요

Code.Jaram 2023. 8. 7. 13:46

 

  1. 머신러닝: 데이터를 기반으로 컴퓨터에게 학습시켜 예측하게 만드는 기법

-인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 알고리즘 기술을 개발하는 분야

- 통계학, 데이터마이닝, 컴퓨터 과학이 어우러진 분야

 

 

2. 머신러닝의 역사: 암호해독가 앨런 튜링이 1950년에 ‘기계도 생각할 수 있을까?’ 논문발표

  • 튜링테스트: 컴퓨터가 지능이 있는지 판별하는 시험
  • 규칙 기반 전문가 시스템: if와 else로 하드코딩된 명령을 사용하는 시스템

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

-제작한 로직이 특정작업에만 국한, 작업이 조금만 변경되면 전체 시스템을 변경해야 함

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

 

 

3. 머신러닝: 데이터를 이용하여 스스로 특성과 패턴을 찾아 학습하고 예측

 

4. 머신러닝과 딥러닝

 

 

5. 머신러닝으로 할 수 있는 일

6. 머신러닝이 유용한 분야

  • 대량의 데이터에서 통찰을 얻어야 하는 문제
  • 새로운 데이터에 적응해야 하는 유동적인 환경
  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
  • 전통적인 방식으로는 해결방법이 없는 복잡한 문제



7. 머신러닝의 종류

  • 지도학습
  • 비지도학습
  • 강화학습

 

8. 지도학습

  • 데이터에 대한 label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
  • label의 종류에 따라 분류(classification)와 회귀(Regression)로 구분

-범주형 데이터→분류  예)스팸메일 여부, 생존 여부, 암 판정, 품종 분류, 학점 예측

-연속형 데이터→회귀  예)키, 몸무게, 연봉, 집값 예측, 점수 예측

 

1)분류

-미리 정의된 여러 클래스 레이블(정답데이터의 개수) 중 하나를 예측하는 것(범주형)

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

-예측값의 미묘한 차이에 따라 분류가 달라지므로 주의해야 함

예)생존여부-2개, 암 판정-2개, 붓꽃의 품종분류-3개

-클래스 레이블의 개수에 따라 이진분류(2개), 다중분류(3개 이상)로 구분

 

2)회귀

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

-속성 값(독립변수)을 입력, 연속적인 실수 값(종속변수)을 출력으로 하는 모델

-교육수준, 나이, 주거지(독립변수)를 바탕으로 연간소득(종속변수) 예측

-예측값의 미묘한 차이가 크게 중요하지 않음 예)키 173.9와 174는 큰 상관이 없음

 

9. 비지도 학습

  • 데이터에 대한 label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
  • 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
  • 클러스터링(Clustering), 차원축소(Dimensionality  Reduction) 등

예)소비자그룹발견을 통한 마케팅(기저귀를 사는 사람에게 아기용품 추천)

 

 

10.강화학습

  • 지도학습과 비슷하지만 완전한 답(label)을 제공하지 않음
  • 기계는 더 많은 보상을 얻을 수 있는 방향으로 행동학습
  • 게임이나 로봇을 학습시키는데 많이 사용

예)알파고 바둑 학습, 고양이 자율배식



11. 머신러닝 과정

  • Problem Identification(문제정의)
  • Data Collect(데이터 수집)
  • Data Preprocessing(데이터 전처리)
  • EDA(탐색적 데이터 분석): 기초통계량 분석/데이터 시각화
  • Model 선택, Hyper Parameter(조정)
  • Training(학습)
  • Evaluation(평가)

 

  1)문제정의

-비즈니스 목적 정의 모델을 어떻게 사용하여 이익을 얻을까?

-현재 솔루션의 구성 파악

-지도/비지도/강화학습 선택

-분류/회귀 선택

 

2)데이터 수집

-File(csv, xml, json)

-Database

-web 크롤링

-iot 센서를 통한 수집

-Survey(설문조사)

 

3)데이터 전처리

-결측치, 이상치 처리

-Feature Engineering(특성공학): Scaling(단위 변환), Encoding(범주형→수치형), 

Binning(수치형→범주형), Transform(새로운 속성 추출)



4)탐색적 데이터 분석

-기술통계 변수 간 상관관계

-시각화: pandas, matplotlib, seaborn

-Feature Selection(사용할 특성 선택)

 

5)모델 선택

-목적에 맞는 적절한 모델 선택

-KNN, SVM, Linear Regression, Ridge…

-Hyper Parameter 조정: model의 성능을 개선하기 위해 사람이 직접넣는parameter



6)학습

  • model.fit(X_train, Y_train)=fit(‘학습할 문제’, ‘학습할 정답’)

-train(학습) 데이터와 test(시험) 데이터를 7:3 정도로 나눔

-train 데이터의 문제와 정답으로 모델 학습

  • model.predict(X_test)=predict(‘시험볼 문제’)

-test 데이터의 문제를 넣고 정답을 예측

 

 

7)평가

 

'코딩 > 머신러닝' 카테고리의 다른 글

[ML]6. Decision Tree 모델  (0) 2023.08.17
[ML]5. KNN 모델(Iris 데이터)  (0) 2023.08.16
[ML]4. 데이터 핸들링(Titanic 실습)  (0) 2023.08.14
[ML]3. 머신러닝 과정 실습  (0) 2023.08.10
[ML]1. 기초통계  (0) 2023.08.04