SlideShare a Scribd company logo
1 of 26
Download to read offline
Python Machine Learning
Chapter 04. Machine Learning
ceo@partprime.com
Ryan Jeong
Today …
4-4 CLASSIFICATION OF FOREIGN LANGUAGE
4-5 ABOUT SVM
4-6 ABOUT RANDOM FOREST
4-7 HOW TO VALIDATE THE DATA
4-4 CLASSIFICATION OF FOREIGN LANGUAGE
with scikit-learning
기계학습 시스템 구현
모델 생성 모델 저장학습
데이터
준비(가공)
연습 1단계 : 기계학습을 활용해 외국어 판별하기
학습을 위한 데이터를 준비
언어별로 각 알파벳 출현빈도가 다르다는 아이디어로 언어 판별
ex) 영어(en) / 불어(fr) / 인도네시아어(id) / 따갈로그(tl)
각 언어별
알파벳 캐릭터
출현빈도수 학습
모델 생성
테스트를 위한 데이터를 준비스코어출력/재학습
모델 저장
연습 1단계 : 외국어 판별하기(계속)결과출력
소스
check_freq
함수는 학습데이터로 사용할 하나의 텍스트 파일을 읽어 들여서,
그 텍스트 파일안에 있는 알파벳의 출연빈도를 map 타입으로 리턴 합니다.
이 함수는,
load_files
에서 호출되어,
1. 언어별로 모든 학습데이터 파일들과 테스트데이터 파일들의 출연빈도를 가져옵니다.
2. 다음, 이렇게 해서 파이썬에서 사용할 수 있는 json 형태로 변환/저장 합니다.
3. 그리고, 이렇게 학습시키고,
(svm.SVC()은 기계학습 방식인데요, 이에 대해서는 다음 장에서 설명합니다.)
4. 잘 학습해서 결과를 잘 내는지. 테스트데이터를 넣어서 예측합니다.
5. 나머지 이 아래 쪽 코드들은 테스트한 결과들을 출력해보는 코드들 입니다.
연습 2단계 : 데이터 시각화 연습
이를 위해 설치할 패키지들
1. matplotlib
2. numpy
3. pandas
연습 2단계 : 데이터 시각화 연습 (계속)
결과출력소스
df.plot(kind="line", subplots=True, ylim=(0,0.15))
코드의 25 라인에
df.plot에 kind=“line” 으로 바꾸면, 선그래프가 됩니다.
연습 3단계 : 학습 후 모델 저장하기
결과출력소스
학습을 한번 시켰으면,
그것을 저장해 두고, 영구적인 두뇌로 사용해야지,
매번 판별을 할 때 마다 학습을 시킬 수는 없습니다.
그래서
한번 학습하면, 저장해 두었다가,
계속 그걸로 사용하고 싶습니다.
어떻게 할까요?
from sklearn.externals import joblib
를 사용하여,
학습한 clf 객체를 저장합니다.
# 학습 데이터 저장하기
joblib.dump(clf, “./lang/freq.pkl")
연습 4단계 : 저장 한 모델 사용하기
결과출력소스
여기가 모델 데이터 파일을 불러들이는 부분입니다.
detect_lang
함수내에서 판별할 글의 각 알파벳별 사용 빈도수를 계산합니다.
4-5 ABOUT SVM
(Support Vector Machine)
서포트 벡터 머신
Support Vector Machine
선형 SVM이 두 자료(흰색 원, 검은색 원)을
직선으로 분리하고 있다.
* 비선형 SVM의 예시
연습 1단계 : SVM 실제 사용을 위한 데이터 생성
결과출력소스
이렇게 하면,
출력은 ok와 개수 정도가 찍히지만,
생성된 csv파일에는
데이터가 임의로 많이 생성되었을 겁니다.
나중에 건강검진 센터 같은 곳에서
실제 데이터를 받아서 사용할 수 있으면
좋습니다.
생성된 CSV파일
연습 2단계 : 생성한 BMI 데이터로 SVM 학습 모델 연습
결과출력소스
SVM을 사용한다는 것은…
clf = svm.SVC()
clf.fit(data_train, label_train)
이 부분만 보시면 됩니다.
4-6 ABOUT RANDOM FOREST
with scikit-learning
Random Forest, Randomized Trees
랜덤 포레스트 테스트 과정 : 각 결정트리로 부터 얻어진 결과를 평균, 곱하기,
또는 과반수 투표 방식을 통해 최종 결과를 도출 해낸다.
연습 1단계 : 연습을 위한 데이터 다운로드
결과출력
소스
출력결과는 단순히 OK 이지만,
다운로드 받은 파일을 확인해 보면 이렇습니다.
여기 기록된 한 줄 한 줄은, 버섯 하나 하나의 특징들을 기호로 표시한 것 입니다.
연습 1단계 : 연습을 위한 데이터 다운로드(추가)
종종 이런 에러가 발생하는 분들도 계시는데…
이렇게 하신 후 다시 실행 하시면 에러가 없어 집니다.
연습 2단계 : 다운로드한 버섯 데이터로 랜덤포레스트 연습
결과출력소스
코드 25라인에 보면,
랜덤포레스트를 위한 scikit-learn 의 고마운 함수를 확인하실 수 있습니다.
clf = RandomForestClassifier()
clf.fit(data_train, label_train)
연습 3단계 : 다운로드한 버섯 데이터로 랜덤포레스트 연습
결과출력
소스
각 훈련데이터의 버섯 특성을 수치 기호화 해서 사용하면,
훨씬 더 좋은 성능의 기계학습 결과를 기대할 수 있습니다.
4-7 HOW TO VALIDATE THE DATA
with scikit-learning
K-fold cross validation
훈련 전용 데이터와 테스트 전용 데이터를 K개로 분할하여 교차검증하는 방식
데이터를 K개로 분할
1. AAA BBB CCC DDD …… ZZZ
2. AAA BBB CCC DDD …… ZZZ
3. AAA BBB CCC DDD …… ZZZ
…
K. AAA BBB CCC DDD …… ZZZ
테스트 전용 데이터로 사용
테스트 전용 데이터로 사용
테스트 전용 데이터로 사용
테스트 전용 데이터로 사용
= 검증 결과 점수
검증 결과 점수들의 평균
= 검증 결과 점수
= 검증 결과 점수
= 검증 결과 점수
연습 1단계 : 교차검증(CROSS VALIDATION) 연습소스
결과출력
이 예제 소스를 보시면,
교차검증의 원리를 알수 있습니다.
연습 2단계 : scikit-learn으로 교차검증(CROSS VALIDATION)
결과출력
소스
-
scores = model_selection.cross_val_score(clf, data, label, cv=5)
사실 이렇게 scikit-learn을 사용하시면,
훨씬 더 간단하게 교차검증을 할수 있습니다.
연습 3단계 : scikit-learn의 GridSearch 연습
결과출력소스
-
알고리즘 별로 파라미터 조정을 좀 하면 정확도가 많이 올라갑니다.
그래서 파라미터 튜닝이 중요한데요.
그리드서치를 사용하면, 파라미터 튜닝이 가능합니다.
scikit-learn에도 이것을 손쉽게 사용할 수 있는 함수를 제공합니다.
코드 23라인,
clf = GridSearchCV( svm.SVC(), params, n_jobs=-1 )
clf.fit(train_data, train_label)
부분을 주목하시기 바랍니다.
Thank youhttp://www.partprime.com

More Related Content

Similar to Python machine learning_chap04_2

Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Taekyung Han
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출정주 김
 
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 SangIn Choung
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apifermat39
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012Esun Kim
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기Jaeseung Ha
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터JEEHYUN PAIK
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다Evion Kim
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 

Similar to Python machine learning_chap04_2 (20)

Openface
OpenfaceOpenface
Openface
 
Openface
OpenfaceOpenface
Openface
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출
 
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
 
파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_api
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
llvm 소개
llvm 소개llvm 소개
llvm 소개
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 

More from PartPrime

Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1PartPrime
 
Python machine learning_chap07_1
Python machine learning_chap07_1Python machine learning_chap07_1
Python machine learning_chap07_1PartPrime
 
Python machine learning_chap06_1
Python machine learning_chap06_1Python machine learning_chap06_1
Python machine learning_chap06_1PartPrime
 
Image and deep learning 07-2
 Image and deep learning 07-2 Image and deep learning 07-2
Image and deep learning 07-2PartPrime
 
what is deep learning?
what is deep learning? what is deep learning?
what is deep learning? PartPrime
 
Deep Learning with Python 2-1
Deep Learning with Python 2-1Deep Learning with Python 2-1
Deep Learning with Python 2-1PartPrime
 
Python machine learning_chap05_8
Python machine learning_chap05_8Python machine learning_chap05_8
Python machine learning_chap05_8PartPrime
 
Python machine learning_chap05_7
Python machine learning_chap05_7Python machine learning_chap05_7
Python machine learning_chap05_7PartPrime
 
Ch.5 Deep Learning
Ch.5 Deep LearningCh.5 Deep Learning
Ch.5 Deep LearningPartPrime
 
Python machine learning_chap02
Python machine learning_chap02Python machine learning_chap02
Python machine learning_chap02PartPrime
 
Ch.3 데이터 소스의 서식과 가공
Ch.3 데이터 소스의 서식과 가공Ch.3 데이터 소스의 서식과 가공
Ch.3 데이터 소스의 서식과 가공PartPrime
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4PartPrime
 

More from PartPrime (12)

Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1
 
Python machine learning_chap07_1
Python machine learning_chap07_1Python machine learning_chap07_1
Python machine learning_chap07_1
 
Python machine learning_chap06_1
Python machine learning_chap06_1Python machine learning_chap06_1
Python machine learning_chap06_1
 
Image and deep learning 07-2
 Image and deep learning 07-2 Image and deep learning 07-2
Image and deep learning 07-2
 
what is deep learning?
what is deep learning? what is deep learning?
what is deep learning?
 
Deep Learning with Python 2-1
Deep Learning with Python 2-1Deep Learning with Python 2-1
Deep Learning with Python 2-1
 
Python machine learning_chap05_8
Python machine learning_chap05_8Python machine learning_chap05_8
Python machine learning_chap05_8
 
Python machine learning_chap05_7
Python machine learning_chap05_7Python machine learning_chap05_7
Python machine learning_chap05_7
 
Ch.5 Deep Learning
Ch.5 Deep LearningCh.5 Deep Learning
Ch.5 Deep Learning
 
Python machine learning_chap02
Python machine learning_chap02Python machine learning_chap02
Python machine learning_chap02
 
Ch.3 데이터 소스의 서식과 가공
Ch.3 데이터 소스의 서식과 가공Ch.3 데이터 소스의 서식과 가공
Ch.3 데이터 소스의 서식과 가공
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4
 

Python machine learning_chap04_2

  • 1. Python Machine Learning Chapter 04. Machine Learning ceo@partprime.com Ryan Jeong
  • 2. Today … 4-4 CLASSIFICATION OF FOREIGN LANGUAGE 4-5 ABOUT SVM 4-6 ABOUT RANDOM FOREST 4-7 HOW TO VALIDATE THE DATA
  • 3. 4-4 CLASSIFICATION OF FOREIGN LANGUAGE with scikit-learning
  • 4. 기계학습 시스템 구현 모델 생성 모델 저장학습 데이터 준비(가공)
  • 5. 연습 1단계 : 기계학습을 활용해 외국어 판별하기 학습을 위한 데이터를 준비 언어별로 각 알파벳 출현빈도가 다르다는 아이디어로 언어 판별 ex) 영어(en) / 불어(fr) / 인도네시아어(id) / 따갈로그(tl) 각 언어별 알파벳 캐릭터 출현빈도수 학습 모델 생성 테스트를 위한 데이터를 준비스코어출력/재학습 모델 저장
  • 6. 연습 1단계 : 외국어 판별하기(계속)결과출력 소스 check_freq 함수는 학습데이터로 사용할 하나의 텍스트 파일을 읽어 들여서, 그 텍스트 파일안에 있는 알파벳의 출연빈도를 map 타입으로 리턴 합니다. 이 함수는, load_files 에서 호출되어, 1. 언어별로 모든 학습데이터 파일들과 테스트데이터 파일들의 출연빈도를 가져옵니다. 2. 다음, 이렇게 해서 파이썬에서 사용할 수 있는 json 형태로 변환/저장 합니다. 3. 그리고, 이렇게 학습시키고, (svm.SVC()은 기계학습 방식인데요, 이에 대해서는 다음 장에서 설명합니다.) 4. 잘 학습해서 결과를 잘 내는지. 테스트데이터를 넣어서 예측합니다. 5. 나머지 이 아래 쪽 코드들은 테스트한 결과들을 출력해보는 코드들 입니다.
  • 7. 연습 2단계 : 데이터 시각화 연습 이를 위해 설치할 패키지들 1. matplotlib 2. numpy 3. pandas
  • 8. 연습 2단계 : 데이터 시각화 연습 (계속) 결과출력소스 df.plot(kind="line", subplots=True, ylim=(0,0.15)) 코드의 25 라인에 df.plot에 kind=“line” 으로 바꾸면, 선그래프가 됩니다.
  • 9. 연습 3단계 : 학습 후 모델 저장하기 결과출력소스 학습을 한번 시켰으면, 그것을 저장해 두고, 영구적인 두뇌로 사용해야지, 매번 판별을 할 때 마다 학습을 시킬 수는 없습니다. 그래서 한번 학습하면, 저장해 두었다가, 계속 그걸로 사용하고 싶습니다. 어떻게 할까요? from sklearn.externals import joblib 를 사용하여, 학습한 clf 객체를 저장합니다. # 학습 데이터 저장하기 joblib.dump(clf, “./lang/freq.pkl")
  • 10. 연습 4단계 : 저장 한 모델 사용하기 결과출력소스 여기가 모델 데이터 파일을 불러들이는 부분입니다. detect_lang 함수내에서 판별할 글의 각 알파벳별 사용 빈도수를 계산합니다.
  • 11. 4-5 ABOUT SVM (Support Vector Machine)
  • 12. 서포트 벡터 머신 Support Vector Machine 선형 SVM이 두 자료(흰색 원, 검은색 원)을 직선으로 분리하고 있다. * 비선형 SVM의 예시
  • 13. 연습 1단계 : SVM 실제 사용을 위한 데이터 생성 결과출력소스 이렇게 하면, 출력은 ok와 개수 정도가 찍히지만, 생성된 csv파일에는 데이터가 임의로 많이 생성되었을 겁니다. 나중에 건강검진 센터 같은 곳에서 실제 데이터를 받아서 사용할 수 있으면 좋습니다. 생성된 CSV파일
  • 14. 연습 2단계 : 생성한 BMI 데이터로 SVM 학습 모델 연습 결과출력소스 SVM을 사용한다는 것은… clf = svm.SVC() clf.fit(data_train, label_train) 이 부분만 보시면 됩니다.
  • 15. 4-6 ABOUT RANDOM FOREST with scikit-learning
  • 16. Random Forest, Randomized Trees 랜덤 포레스트 테스트 과정 : 각 결정트리로 부터 얻어진 결과를 평균, 곱하기, 또는 과반수 투표 방식을 통해 최종 결과를 도출 해낸다.
  • 17. 연습 1단계 : 연습을 위한 데이터 다운로드 결과출력 소스 출력결과는 단순히 OK 이지만, 다운로드 받은 파일을 확인해 보면 이렇습니다. 여기 기록된 한 줄 한 줄은, 버섯 하나 하나의 특징들을 기호로 표시한 것 입니다.
  • 18. 연습 1단계 : 연습을 위한 데이터 다운로드(추가) 종종 이런 에러가 발생하는 분들도 계시는데… 이렇게 하신 후 다시 실행 하시면 에러가 없어 집니다.
  • 19. 연습 2단계 : 다운로드한 버섯 데이터로 랜덤포레스트 연습 결과출력소스 코드 25라인에 보면, 랜덤포레스트를 위한 scikit-learn 의 고마운 함수를 확인하실 수 있습니다. clf = RandomForestClassifier() clf.fit(data_train, label_train)
  • 20. 연습 3단계 : 다운로드한 버섯 데이터로 랜덤포레스트 연습 결과출력 소스 각 훈련데이터의 버섯 특성을 수치 기호화 해서 사용하면, 훨씬 더 좋은 성능의 기계학습 결과를 기대할 수 있습니다.
  • 21. 4-7 HOW TO VALIDATE THE DATA with scikit-learning
  • 22. K-fold cross validation 훈련 전용 데이터와 테스트 전용 데이터를 K개로 분할하여 교차검증하는 방식 데이터를 K개로 분할 1. AAA BBB CCC DDD …… ZZZ 2. AAA BBB CCC DDD …… ZZZ 3. AAA BBB CCC DDD …… ZZZ … K. AAA BBB CCC DDD …… ZZZ 테스트 전용 데이터로 사용 테스트 전용 데이터로 사용 테스트 전용 데이터로 사용 테스트 전용 데이터로 사용 = 검증 결과 점수 검증 결과 점수들의 평균 = 검증 결과 점수 = 검증 결과 점수 = 검증 결과 점수
  • 23. 연습 1단계 : 교차검증(CROSS VALIDATION) 연습소스 결과출력 이 예제 소스를 보시면, 교차검증의 원리를 알수 있습니다.
  • 24. 연습 2단계 : scikit-learn으로 교차검증(CROSS VALIDATION) 결과출력 소스 - scores = model_selection.cross_val_score(clf, data, label, cv=5) 사실 이렇게 scikit-learn을 사용하시면, 훨씬 더 간단하게 교차검증을 할수 있습니다.
  • 25. 연습 3단계 : scikit-learn의 GridSearch 연습 결과출력소스 - 알고리즘 별로 파라미터 조정을 좀 하면 정확도가 많이 올라갑니다. 그래서 파라미터 튜닝이 중요한데요. 그리드서치를 사용하면, 파라미터 튜닝이 가능합니다. scikit-learn에도 이것을 손쉽게 사용할 수 있는 함수를 제공합니다. 코드 23라인, clf = GridSearchCV( svm.SVC(), params, n_jobs=-1 ) clf.fit(train_data, train_label) 부분을 주목하시기 바랍니다.