데이터셋
|
train |
test |
데이터 개수 |
468,086 |
202,398 |
음식 종류 |
386 |
386 |
- 우리가 사용하는 데이터셋은 기본적으로 AIHub의
음식 이미지 및 영양정보 텍스트
데이터셋을 누비랩 측에서 정제한 데이터셋이다 [AIHub link]
- 한국인 다빈도 섭취 외식/한식 메뉴 400종을 선정하여 각 음식마다 2000장의 이미지가 존재하며 추가적으로 음식마다 16개의 대분류로 나눠져있다.
- 하지만 누비랩 측에서 정제된 데이터셋에서는 음식의 종류는 386개가 된다
- 제외된 음식 14개: (검은)콩조림, 간자장, 갈비삼각김밥, 돈가스, 선지해장국, 소고기무국, 자장면, 자장밥, 잣국, 전주비빔밥, 전주콩나물국밥, 참꼬막, 치즈돈가스, 치즈라면, 카레라이스
대분류 Analysis
Train 데이터를 대분류로 나눴을 때
대분류 |
train 비중 (%) |
클래스 개수 |
구이류 |
4.52 |
17 |
국, 탕 찌개류 |
16.49 |
69 |
김치류 |
3.57 |
15 |
나물, 무침류 |
10.23 |
38 |
떡류 |
3.94 |
17 |
면, 만두류 |
10.97 |
43 |
밥류 |
14.52 |
59 |
볶음류 |
7.42 |
27 |
장아찌, 젓갈류 |
3.25 |
14 |
전, 부침류 |
6.26 |
23 |
조림류 |
5.12 |
20 |
죽, 스프류 |
3.32 |
13 |
찜류 |
3.28 |
13 |
튀김류 |
4.37 |
20 |
한과류 |
1.42 |
6 |
회류 |
1.41 |
6 |
- Test 데이터셋을 대분류로 나눴을 때
- 음식을 대분류로 묶어서 데이터셋의 비중을 확인해보면
국, 탕 찌개류
와 밥류
에 속하는 데이터가 압도적으로 많고 그 다음으로 면, 만두류
와 나물, 무침류
가 많은 것을 확인할 수 있다
- 대분류 내 클래스 개수를 확인해보면
국, 탕 찌개류
와 밥류
가 클래스 69개와 59개가 존재하다는 것을 볼 수 있으니 데이터셋이 자연스럽게 클래스 개수가 많은 대분류 비중이 큰 것으로 확인을 할 수 있다.
음식(Class) Analysis
|
train |
test |
count |
386 |
386 |
mean |
1212.66 |
524 |
std |
175.33 |
78 |
min |
144 |
62 |
25% |
1198.25 |
514 |
50% |
1254.00 |
537 |
75% |
1271.00 |
548 |
max |
1497 |
694 |
- 위에서 언급을 했듯이 정제된 데이터셋에서는 음식 class가 386개가 된다. 각 class의 데이터 개수를 확인했을 때 평균으로 1212개의 데이터, 최소 144개, 최대 1497개의 데이터가 있는 것을 확인 할 수 있다.
Tokenizer Analysis
mean |
2.27 |
std |
0.67 |
min |
1.00 |
25% |
2.00 |
50% |
2.00 |
75% |
3.00 |
max |
6.00 |
- 누비랩에서 제공한 음식 사전을 이용한 토크나이저를 이용해서 음식 클래스를 tokenizing을 해보았다.
- sos와 eos를 제외하고 token이 제일 많은 class는
돼지고기메추리알장조림
(6 tokens)이다
- 제일 짧은 class는 token 1개짜리 classes이다
- max_sequence_length를 10 (sos, eos 포함해서) setting 하면 적절할 것으로 판단이 된다.
추가 인사이트