WEBVTT 00:01.430 --> 00:06.980 이 과정의 큰 프로젝트에 대해 코딩하는 건 이번이 처음이죠 00:06.980 --> 00:08.930 주피터 연구소에 잘 오셨어요 00:08.930 --> 00:14.390 6주 차 폴더에 오신 걸 환영합니다 큰 프로젝트에 착수했죠 00:14.390 --> 00:20.870 그래서 우리 프로젝트는 제품 설명에 근거해 가격을 추정할 수 있는 모델을 만드는 00:20.870 --> 00:21.710 거죠 00:21.710 --> 00:26.120 오늘은 데이터 큐레이션의 첫 단계를 할 거예요 00:26.120 --> 00:34.220 우선 가정용 가전제품이나 세탁기 같은 가전제품의 데이터부터 살펴보죠 00:34.220 --> 00:36.710 먼저 데이터 집합을 보여드릴게요 00:36.710 --> 00:39.260 데이터 집합은 이 링크에 있어요 00:39.260 --> 00:46.190 이건 안아주는 얼굴 허브의 안아주는 얼굴 데이터셋 섹션의 데이터셋이에요 00:46.580 --> 00:55.520 아마존에서 조사한 리뷰의 일련인데 그 시대를 거슬러 올라가죠 00:55.520 --> 00:59.810 하지만 20년에 생긴 이 잔해는 2023년 말에 생긴 거예요 01:00.020 --> 01:07.450 리뷰도 엄청나게 많이 실렸고 거의 5천만 개의 아이템이 실려 있어요 01:07.450 --> 01:15.040 다양한 제품이 있고 여러 카테고리로 나뉘어 있어요 01:15.250 --> 01:17.410 이걸 다 가지고는 일 못 해요 01:17.410 --> 01:22.870 여기서 일부를 추출할 겁니다 이 훈련에 가장 흥미로운 01:22.870 --> 01:24.070 범주예요 01:24.490 --> 01:28.930 안 그러면 훈련하는 데 너무 오래 걸려서 재미가 없을 거예요 01:28.930 --> 01:34.000 우리가 작업하는 데이터의 종류에 대한 좋은 감각을 제공하죠 01:34.330 --> 01:41.560 안는 얼굴 폴더로 들어가 볼게요. 메타데이터가 들어있는 폴더입니다. 제품과 01:41.590 --> 01:48.400 설명, 가격에 대한 데이터입니다. 우리가 정말 신경 쓰는 것들이죠. 01:48.430 --> 01:49.270 여기 있네요 01:49.300 --> 01:56.380 좋은 감을 잡을 수 있어요 전자 제품의 데이터 세트를 보면요 크기가 5기가바이트 01:56.380 --> 01:59.320 조금 넘는 걸 보실 수 있어요 01:59.320 --> 02:05.110 빅데이터 집합이죠 유용한 정보가 엄청나게 많아요 02:05.110 --> 02:08.160 7개월 전에 업로드됐고요 02:08.160 --> 02:10.290 최근 일이군요 02:11.100 --> 02:14.010 Get up, Get up, Get up, Get up, Get, 시작, 시작할게요 02:14.010 --> 02:16.410 수입 문제부터 시작하죠 02:16.440 --> 02:19.440 복잡할 게 없죠 02:19.470 --> 02:20.700 아직은요 02:20.730 --> 02:22.380 더 많이 올 거예요 02:22.680 --> 02:24.660 환경을 설정할 거예요 02:24.690 --> 02:26.550 오늘 이걸 쓸 건 아니지만요 02:26.550 --> 02:28.260 그냥 껴안는 얼굴만 할 거예요 02:28.290 --> 02:29.970 얼굴 포옹에 로그인하세요 02:30.720 --> 02:37.230 매트플로틀리브가 유피터 노트북에 차트를 띄울 수 있게 해 주죠 02:37.380 --> 02:41.070 먼저 데이터 세트를 로드해요 02:41.070 --> 02:45.660 우리가 할 일은 데이터 집합의 이름을 지정하는 겁니다 Amazon reviews요 02:45.660 --> 02:49.980 어플라이언스 카테고리로 시작하도록 선택할게요 02:50.010 --> 02:56.970 냉장고나 세탁기 같은 가전제품을 가장 먼저 로드할 거예요 02:57.000 --> 03:03.480 얼굴 포옹 데이터 로드셋 함수를 이용해서요 03:03.780 --> 03:09.330 이걸 처음 실행하면 H깅페이스 허브에서 다운로드 됩니다 03:09.350 --> 03:13.370 제가 이미 했기 때문에 그건 필요 없죠 03:13.400 --> 03:20.870 이미 완성된 가전제품이 몇 개나 있는지 확인할 거예요 03:20.990 --> 03:26.510 가전제품이 94,000개 있어요 03:26.510 --> 03:28.520 이 중 하나를 보죠 03:28.520 --> 03:34.550 어디 보자 데이터 포인트가 데이터셋이라고 해보죠 03:35.030 --> 03:36.290 첫 번째 걸 보죠 03:36.290 --> 03:37.100 안 될 거 없죠 03:37.370 --> 03:38.360 한번 보죠 03:42.590 --> 03:44.210 이렇게 생긴 거군요 03:44.210 --> 03:45.950 정보가 아주 많아요 03:45.950 --> 03:49.370 하지만 특히 기능이라는 게 있어요 03:49.370 --> 03:54.350 제목도 있고 몇 가지 다른 것도 있는데 아마 유용할 거예요 03:54.530 --> 04:01.910 특히 제목, 설명, 기능 세부 사항, 가격이 있죠 04:01.940 --> 04:04.970 하나씩 프린트해서 잠깐 보도록 하죠 04:05.030 --> 04:06.770 이게 제목이에요 04:06.770 --> 04:09.860 얼음 제조기 조리대예요 04:09.890 --> 04:13.280 이 묘사는 비어 있어요 04:13.820 --> 04:16.430 이게 세부 사항이에요 04:16.460 --> 04:24.830 기능이 아주 많아요 상세 정보와 가격은 문제가 바로 보이네요 04:24.830 --> 04:26.870 이 경우엔 프라이스가 없어요 04:26.870 --> 04:30.080 모든 물건에 가격이 있는 건 아니군요 04:30.560 --> 04:35.780 보다시피 설명은 목록의 형태로 나타나죠 04:35.780 --> 04:41.090 특성이라면 세부 사항은 사전 형태로 나오겠죠 04:41.090 --> 04:43.790 그건 속임수지만 사전은 아니에요 04:43.790 --> 04:47.180 JSON을 포함하는 문자열이죠 04:47.180 --> 04:54.980 이 텍스트를 읽어내려면 로드 인을 하고 A를 써서 사전으로 변환해야 해요 JSON 04:54.980 --> 04:58.940 로드 문자열 로드 s를 써서요 05:00.020 --> 05:01.310 네 05:01.310 --> 05:05.060 다른 데이터 포인트를 보고 다음 걸 보죠 05:05.060 --> 05:12.740 냉장고 달걀꽂이처럼 생겼고 달걀 10개까지 들어가며 하나도 없어요 05:13.250 --> 05:15.390 이것도 가격은 없어요 05:15.420 --> 05:17.880 세 번째도 가격표가 없어요 05:17.880 --> 05:20.940 새 건조기 드럼 슬라이드예요 05:20.940 --> 05:24.720 이 시점에서 처음으로 걱정하게 될지도 몰라요 05:24.750 --> 05:27.300 가전제품이 94,000개예요 05:27.300 --> 05:30.000 처음 본 세 개는 가격이 없었어요 05:30.000 --> 05:32.340 몇 개나 가격이 적혀 있는지 보죠 05:32.340 --> 05:37.800 간단한 방법은 데이터 집합의 모든 데이터 포인트를 반복하는 거죠 05:37.800 --> 05:40.410 Get it, get it, get it, it! 그럼 우린 돈을 벌겠죠 05:40.650 --> 05:44.040 그걸 try 블록에 넣을 거예요 05:44.190 --> 05:50.010 그게 없으면 실패할 테니까요 그럼 데이터 포인트를 건너뛰죠 05:50.010 --> 05:53.220 0으로 매기는 것도 전부 무시하고요 05:53.220 --> 05:57.120 따라서 가격이란 숫자가 있는 것만 살펴볼 거예요 05:57.120 --> 06:01.140 가격이 0이 아닌 0이 0보다 크다는 거죠 06:01.170 --> 06:05.490 마이너스 가격은 없을 것 같지만 있다 해도 개수는 확인 안 할 거예요 get it 06:06.360 --> 06:11.310 이제 이걸 통해 그걸 알아내려 할 거예요 06:11.310 --> 06:12.540 다 됐어요 06:12.540 --> 06:19.560 726개라는 뜻인데 거의 50%에 해당하죠 06:19.560 --> 06:20.580 그러니 끔찍하진 않죠 06:20.580 --> 06:22.290 괜찮아요, 괜찮아요 06:22.290 --> 06:26.790 잠시 걱정되는 건 살 게 별로 없을까 봐서요 하지만 적어도 06:26.790 --> 06:29.700 가전제품은 걱정 안 해요 06:29.970 --> 06:35.010 데이터 세트인데 절반은 가격이 적혀 있어요 06:35.400 --> 06:36.960 작은 측면이죠 06:36.960 --> 06:39.270 제가 숫자를 인쇄한 때를 눈치채셨는지 모르겠네요 06:39.270 --> 06:45.210 보통 쉼표로 수천을 구분하는데 이런 걸 읽을 때 06:45.240 --> 06:47.370 아주 유용하죠 06:47.370 --> 06:53.340 이렇게 하는 방법은 파이썬의 f 문자열을 사용한다면: 콤마를 합니다 이렇게요 06:53.460 --> 06:59.850 get을 서식에 사용하면 이런 스타일로 숫자가 나와요 07:00.000 --> 07:02.610 팁을 하나 드리죠 07:02.700 --> 07:06.510 어, 이미 알고 계실 수도 있지만 모르셨더라도 알아두면 유용한 정보죠 07:07.500 --> 07:08.490 네 07:08.970 --> 07:14.490 이제 할 일은 가격이 있는 건 전부 다 가져오는 거예요 07:14.850 --> 07:23.370 제목, 설명, 특징, 세부 사항에 글자가 몇 개인지 알아낼 거예요 07:23.370 --> 07:29.130 문자의 총수를 더해서 set의 길이에 입력할 거예요 07:29.130 --> 07:36.150 이제 가격 목록과 길이 목록이 나왔어요 디테일이 얼마나 많은지 가늠할 수 있죠 07:36.180 --> 07:42.390 균일한지, 아니면 뭔가 어떤 식으로든 삐뚤어졌는지 알 수 있어요 07:42.450 --> 07:50.400 그래서 매트플로틀리브를 많이 사용할 거예요 길이를 히스토그램 형태로 07:50.400 --> 07:53.250 줄거리를 만들 거예요 07:53.250 --> 08:00.360 기억하시면 좋겠네요 얼마 전 통계학 클래스에서 히스토그램은 기본적으로 08:00.360 --> 08:06.930 모든 걸 통에 버킷으로 넣는 거예요 각 통에 몇 개가 있는지 보여주죠 08:06.960 --> 08:09.060 직접 보여드리는 게 더 쉽겠네요 08:09.060 --> 08:10.170 이렇게 생겼어요 08:10.170 --> 08:18.330 엑스 축을 따라 각기 다른 가전제품과 세탁기의 길이를 표시합니다 08:18.330 --> 08:22.830 설명에 포함된 글자의 개수죠 08:22.830 --> 08:29.240 이 정도로 많은 글자를 가진 기기가 몇 개인지 세어보죠 08:29.240 --> 08:36.470 이 주변이 봉우리처럼 솟아 있는데 긴 꼬리가 더 08:36.470 --> 08:38.960 많이 나타나요 08:38.960 --> 08:43.610 이건 우리가 훈련할 때 도전이 될 겁니다 궁극적으로 우리 08:43.610 --> 08:48.650 자신의 오픈 소스 모델을 사용하고 훈련해야 하니까요 08:48.650 --> 08:55.730 우리가 이해해야 하는 중요한 제약 중 하나는 통과할 수 있는 글자 수의 최대치입니다 08:55.730 --> 09:01.490 혹은 각 시점에서 통과할 수 있는 토큰의 최대치죠 09:01.490 --> 09:06.770 훈련 포인트를 통과할 때마다 메모리가 더 많이 필요하고 09:06.770 --> 09:09.950 달성하기 더 어려워져요 09:09.980 --> 09:14.990 또 다른 요점은 개척자 모델을 사용해도 이와 관련된 문제는 없지만 다른 문제가 09:14.990 --> 09:19.430 있다는 것입니다 토큰을 많이 제출하는 것이 더 많은 토큰을 제출하는 09:19.430 --> 09:24.710 것보다 비용이 더 많이 듭니다 이 문제는 몇몇의 경우에 큰 문제가 되지 않죠 09:24.830 --> 09:31.490 하지만 분노로 많은 제품을 공격한다면 그 숫자는 점점 늘어날 거예요 09:31.520 --> 09:37.430 이상적으로는 컷오프를 선택하고 그 시점에서 데이터를 제한하는 거죠 09:37.550 --> 09:40.820 그건 나중에 생각해 볼 거예요 09:41.120 --> 09:45.200 또 하나 주목할 점은 가격 분배예요 09:45.200 --> 09:47.270 그래서 가격이 얼마죠? 09:47.300 --> 09:53.150 아까 분석에서 힌트를 얻으셨을 거예요 냉장고나 세탁기 09:53.150 --> 09:59.900 같은 가전제품이 가득할 줄 알았는데 우리가 본 건 좀 더 작았어요 09:59.900 --> 10:05.810 달걀 홀더와 제빙기였어요 생각해 보면 그리 놀랍지 않아요 10:05.810 --> 10:12.860 데이터에 따르면 값싼 제품들이 훨씬 더 많이 있었을 거예요 비싼 10:13.010 --> 10:16.730 제품들을 눌러 버렸겠죠 10:16.730 --> 10:17.660 한 번 보죠 10:17.690 --> 10:19.100 어떤지 보죠 10:20.360 --> 10:22.850 그런 것 같네요 10:23.120 --> 10:29.280 데이터 집합의 평균 가격은 6달러예요 10:29.310 --> 10:33.360 최고 21,000달러까지 올라가요 10:33.390 --> 10:40.290 목록에 21,000달러짜리 가전제품이 있는데 가격이 낮은 10:40.290 --> 10:43.140 제품들이 아주 많아요 10:43.470 --> 10:48.150 중간값과 모드 차이를 기억하시는 분들을 위해 설명드리죠 10:48.180 --> 10:54.930 학교 통계를 보면 비싼 아이템을 기준으로 평균값을 올릴 10:54.930 --> 11:01.710 수 있고 확실히 모드를 능가합니다 중앙값도 능가하겠죠 11:02.730 --> 11:10.080 보시다시피 저렴한 제품이 많이 유통되고 삐뚤게 11:10.080 --> 11:12.690 분배돼 있어요 11:12.690 --> 11:19.650 훈련 중에는 힘들 수도 있어요 훈련 데이터가 저비용 아이템으로 인해 11:19.650 --> 11:22.140 정말 좁아질 테니까요 11:22.440 --> 11:26.880 이 엄청나게 비싼 물건이 뭔지 빨리 살펴보죠 11:26.880 --> 11:30.630 21,000달러짜리 물건이에요 11:30.630 --> 11:35.300 데이터 세트에서 21,000달러 이상 하는 건 다 골라낼 거예요 11:35.300 --> 11:38.000 터보셰프 총알 같아요 11:38.000 --> 11:41.300 급속 조리 전자레인지 대류식 오븐이에요 11:41.330 --> 11:45.290 누가 그런 설명을 해줬다면 그게 21,000달러나 할 줄은 11:45.320 --> 11:46.940 상상도 못 했을 거예요 11:47.300 --> 11:53.870 똑같은 건 아니지만 아마존 최신 버전인 것 같아요 11:53.960 --> 12:00.590 이걸 자세히 보면 이것도 터보셰프에서 만든 거예요 12:00.590 --> 12:05.420 21,000달러가 아니라 18,000달러밖에 안 해요 12:05.900 --> 12:07.640 당신은 어떤지 모르겠네요 12:07.640 --> 12:12.440 전자레인지가 이렇게 비싼지 몰랐어요 하지만 전문가용이고 12:12.470 --> 12:17.090 고급 전자레인지예요 가격도 저렴하고요 12:17.090 --> 12:27.110 그것의 21,000달러 버전이 여기 어딘가에 있어요 우리 데이터에서 스케일을 벗어나서요 12:28.340 --> 12:35.120 이제 데이터를 큐레이팅할 시간입니다 다음 비디오에서 하죠