- 머신러닝: 데이터를 기반으로 컴퓨터에게 학습시켜 예측하게 만드는 기법
-인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 알고리즘 기술을 개발하는 분야
- 통계학, 데이터마이닝, 컴퓨터 과학이 어우러진 분야
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 |