티스토리 뷰
이전 포스팅 iOS ML 자연어처리, json파일로 MLDataTable 생성하기 ▼
이전 포스팅에서는 ML 자연어처리 모델 생성 전, 학습데이터가 있는 json파일을 통해 MLDataTable을 생성하는 과정을 진행했습니다.
이번 포스팅에서는 이전 작업에 생성한 MLDataTable을 사용해 텍스트 판별에 사용하는 MLTextClassifier를 생성하고, 정확성 검사하는 작업을 해보겠습니다.
MLTextClassifier란 무엇인가?
MLTextClassifier는 자연어 텍스트 판별을 위해 학습된 모델 구조체입니다. CreateML 프레임워크에 포함되어 있습니다.
MLDataTable로부터 MLTextClassifier 생성하기
앞서 생성했던 MLDataTable을 통해 MLTextClassifier를 생성해보겠습니다.
MLDataTable타입의 trainingDataTable을 인자로, textColumn, labelColumn에는 각각 "text", "label"을 넣어서 MLTextClassifier를 생성합니다. try를 통해 생성을 시도하며, 생성도중 문제 발생 시, catch문으로 빠지게 됩니다.
생성 된 MLTextClassifier는 자신의 학습데이터 중 랜덤한 5%의 validation 셋을 생성하고, 이에대한 정확성 검사를 실행합니다. 이때의 정확성검사 결과는 할 때마다 그 결과값이 상이할 수 있는데, 그 이유는 랜덤한 5%의 validation 셋이 랜덤으로 선택되어지기 때문입니다.
trainingDataTable과 같이 생성했던 testingDataTable에 대한 MLClassifierMetrics를 생성합니다. 이때에는 앞서 생성한 sentimentClassifier의 evaluation 메서드를 사용합니다. 이를 통해 생성된 MLClassifierMetrics타입의 evaluationMetrics를 통해 이후 테스팅데이터에 대한 accuracy를 구할 수 있습니다.
앞서 생성했던 MLTextClassifier타입의 sentimentClassifier, MLClassifierMetrics타입의 evaluationMetrics를 통해 정확성 백분율을 확인할 수 있습니다.
sentimentClsasifier의 멤버인 traningMetrics, validationMetrics와 evaluationMetrics는 각각 classificationError라는 판별 부정확성 정보를 갖고 있습니다. 이 값은 일반적으로 0.0 ~ 1.0의 값을 가집니다.
위의 연산과정을 통해서 trainingAccuracy / validationAccuracy / evaluationAccuracy값을 백분율로 얻을 수 있습니다.
앞서 구했던 학습정확성 / 유효정확성 / 평가정확성 결과를 다수 행의 문자열로 정의해서 message에 저장 후, message를 출력하는 모습입니다. 해당 출력결과는 아래와 같습니다.
위와 같이 Traning accuracy, Validation accuracy / Evaluation accuracy의 출력결과를 얻을 수 있습니다.
지금까지 playground에서 MLTextClassifier를 생성해서 정확성검사를 진행했습니다. 다음 포스팅에서는 학습된 모델을 실제 로컬에 파일로 저장 후, 실제 iOS개발 간 해당 MLModel을 적용, 사용하는 과정을 진행해보겠습니다.
'iOS 개발' 카테고리의 다른 글
iOS ML 자연어모델, NLModel 생성 후 댓글 성향분석하기 (0) | 2020.10.11 |
---|---|
iOS 자연어처리, MLTextClassifier로 MLModel 로컬저장 (1) | 2020.10.11 |
iOS 자연어처리, json 학습데이터로 MLDataTable 생성하기 (0) | 2020.10.06 |
Git SourceTree, 소스트리 맥(macOS) 설치 및 사용방법 (0) | 2020.08.24 |
iOS UIImage 정사각형 모양 비율에 맞게 수정 후 사용방법 (0) | 2020.08.23 |
- Total
- Today
- Yesterday
- swift문제
- 부스트코스
- 프로토콜
- Collection
- swift
- SwiftUI
- publisher
- uikit
- 프로그래머스
- ios
- CoreML
- 컬렉션
- createML
- 개발자문서
- swift 기초
- swift알고리즘
- Protocol
- swift reduce
- Swift 알고리즘
- 김프매매
- 알고리즘
- 자연어처리
- swift언어
- 백준알고리즘
- swift string
- 백준swift
- swift 문자열
- 스위프트
- 프로그래머스swift
- 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |