이 과정의 큰 프로젝트에 대해 코딩하는 건 이번이 처음이죠
주피터 연구소에 잘 오셨어요
6주 차 폴더에 오신 걸 환영합니다 큰 프로젝트에 착수했죠
그래서 우리 프로젝트는 제품 설명에 근거해 가격을 추정할 수 있는 모델을 만드는
거죠
오늘은 데이터 큐레이션의 첫 단계를 할 거예요
우선 가정용 가전제품이나 세탁기 같은 가전제품의 데이터부터 살펴보죠
먼저 데이터 집합을 보여드릴게요
데이터 집합은 이 링크에 있어요
이건 안아주는 얼굴 허브의 안아주는 얼굴 데이터셋 섹션의 데이터셋이에요
아마존에서 조사한 리뷰의 일련인데 그 시대를 거슬러 올라가죠
하지만 20년에 생긴 이 잔해는 2023년 말에 생긴 거예요
리뷰도 엄청나게 많이 실렸고 거의 5천만 개의 아이템이 실려 있어요
다양한 제품이 있고 여러 카테고리로 나뉘어 있어요
이걸 다 가지고는 일 못 해요
여기서 일부를 추출할 겁니다 이 훈련에 가장 흥미로운
범주예요
안 그러면 훈련하는 데 너무 오래 걸려서 재미가 없을 거예요
우리가 작업하는 데이터의 종류에 대한 좋은 감각을 제공하죠
안는 얼굴 폴더로 들어가 볼게요. 메타데이터가 들어있는 폴더입니다. 제품과
설명, 가격에 대한 데이터입니다. 우리가 정말 신경 쓰는 것들이죠.
여기 있네요
좋은 감을 잡을 수 있어요 전자 제품의 데이터 세트를 보면요 크기가 5기가바이트
조금 넘는 걸 보실 수 있어요
빅데이터 집합이죠 유용한 정보가 엄청나게 많아요
7개월 전에 업로드됐고요
최근 일이군요
Get up, Get up, Get up, Get up, Get, 시작, 시작할게요
수입 문제부터 시작하죠
복잡할 게 없죠
아직은요
더 많이 올 거예요
환경을 설정할 거예요
오늘 이걸 쓸 건 아니지만요
그냥 껴안는 얼굴만 할 거예요
얼굴 포옹에 로그인하세요
매트플로틀리브가 유피터 노트북에 차트를 띄울 수 있게 해 주죠
먼저 데이터 세트를 로드해요
우리가 할 일은 데이터 집합의 이름을 지정하는 겁니다 Amazon reviews요
어플라이언스 카테고리로 시작하도록 선택할게요
냉장고나 세탁기 같은 가전제품을 가장 먼저 로드할 거예요
얼굴 포옹 데이터 로드셋 함수를 이용해서요
이걸 처음 실행하면 H깅페이스 허브에서 다운로드 됩니다
제가 이미 했기 때문에 그건 필요 없죠
이미 완성된 가전제품이 몇 개나 있는지 확인할 거예요
가전제품이 94,000개 있어요
이 중 하나를 보죠
어디 보자 데이터 포인트가 데이터셋이라고 해보죠
첫 번째 걸 보죠
안 될 거 없죠
한번 보죠
이렇게 생긴 거군요
정보가 아주 많아요
하지만 특히 기능이라는 게 있어요
제목도 있고 몇 가지 다른 것도 있는데 아마 유용할 거예요
특히 제목, 설명, 기능 세부 사항, 가격이 있죠
하나씩 프린트해서 잠깐 보도록 하죠
이게 제목이에요
얼음 제조기 조리대예요
이 묘사는 비어 있어요
이게 세부 사항이에요
기능이 아주 많아요 상세 정보와 가격은 문제가 바로 보이네요
이 경우엔 프라이스가 없어요
모든 물건에 가격이 있는 건 아니군요
보다시피 설명은 목록의 형태로 나타나죠
특성이라면 세부 사항은 사전 형태로 나오겠죠
그건 속임수지만 사전은 아니에요
JSON을 포함하는 문자열이죠
이 텍스트를 읽어내려면 로드 인을 하고 A를 써서 사전으로 변환해야 해요 JSON
로드 문자열 로드 s를 써서요
네
다른 데이터 포인트를 보고 다음 걸 보죠
냉장고 달걀꽂이처럼 생겼고 달걀 10개까지 들어가며 하나도 없어요
이것도 가격은 없어요
세 번째도 가격표가 없어요
새 건조기 드럼 슬라이드예요
이 시점에서 처음으로 걱정하게 될지도 몰라요
가전제품이 94,000개예요
처음 본 세 개는 가격이 없었어요
몇 개나 가격이 적혀 있는지 보죠
간단한 방법은 데이터 집합의 모든 데이터 포인트를 반복하는 거죠
Get it, get it, get it, it! 그럼 우린 돈을 벌겠죠
그걸 try 블록에 넣을 거예요
그게 없으면 실패할 테니까요 그럼 데이터 포인트를 건너뛰죠
0으로 매기는 것도 전부 무시하고요
따라서 가격이란 숫자가 있는 것만 살펴볼 거예요
가격이 0이 아닌 0이 0보다 크다는 거죠
마이너스 가격은 없을 것 같지만 있다 해도 개수는 확인 안 할 거예요 get it
이제 이걸 통해 그걸 알아내려 할 거예요
다 됐어요
726개라는 뜻인데 거의 50%에 해당하죠
그러니 끔찍하진 않죠
괜찮아요, 괜찮아요
잠시 걱정되는 건 살 게 별로 없을까 봐서요 하지만 적어도
가전제품은 걱정 안 해요
데이터 세트인데 절반은 가격이 적혀 있어요
작은 측면이죠
제가 숫자를 인쇄한 때를 눈치채셨는지 모르겠네요
보통 쉼표로 수천을 구분하는데 이런 걸 읽을 때
아주 유용하죠
이렇게 하는 방법은 파이썬의 f 문자열을 사용한다면: 콤마를 합니다 이렇게요
get을 서식에 사용하면 이런 스타일로 숫자가 나와요
팁을 하나 드리죠
어, 이미 알고 계실 수도 있지만 모르셨더라도 알아두면 유용한 정보죠
네
이제 할 일은 가격이 있는 건 전부 다 가져오는 거예요
제목, 설명, 특징, 세부 사항에 글자가 몇 개인지 알아낼 거예요
문자의 총수를 더해서 set의 길이에 입력할 거예요
이제 가격 목록과 길이 목록이 나왔어요 디테일이 얼마나 많은지 가늠할 수 있죠
균일한지, 아니면 뭔가 어떤 식으로든 삐뚤어졌는지 알 수 있어요
그래서 매트플로틀리브를 많이 사용할 거예요 길이를 히스토그램 형태로
줄거리를 만들 거예요
기억하시면 좋겠네요 얼마 전 통계학 클래스에서 히스토그램은 기본적으로
모든 걸 통에 버킷으로 넣는 거예요 각 통에 몇 개가 있는지 보여주죠
직접 보여드리는 게 더 쉽겠네요
이렇게 생겼어요
엑스 축을 따라 각기 다른 가전제품과 세탁기의 길이를 표시합니다
설명에 포함된 글자의 개수죠
이 정도로 많은 글자를 가진 기기가 몇 개인지 세어보죠
이 주변이 봉우리처럼 솟아 있는데 긴 꼬리가 더
많이 나타나요
이건 우리가 훈련할 때 도전이 될 겁니다 궁극적으로 우리
자신의 오픈 소스 모델을 사용하고 훈련해야 하니까요
우리가 이해해야 하는 중요한 제약 중 하나는 통과할 수 있는 글자 수의 최대치입니다
혹은 각 시점에서 통과할 수 있는 토큰의 최대치죠
훈련 포인트를 통과할 때마다 메모리가 더 많이 필요하고
달성하기 더 어려워져요
또 다른 요점은 개척자 모델을 사용해도 이와 관련된 문제는 없지만 다른 문제가
있다는 것입니다 토큰을 많이 제출하는 것이 더 많은 토큰을 제출하는
것보다 비용이 더 많이 듭니다 이 문제는 몇몇의 경우에 큰 문제가 되지 않죠
하지만 분노로 많은 제품을 공격한다면 그 숫자는 점점 늘어날 거예요
이상적으로는 컷오프를 선택하고 그 시점에서 데이터를 제한하는 거죠
그건 나중에 생각해 볼 거예요
또 하나 주목할 점은 가격 분배예요
그래서 가격이 얼마죠?
아까 분석에서 힌트를 얻으셨을 거예요 냉장고나 세탁기
같은 가전제품이 가득할 줄 알았는데 우리가 본 건 좀 더 작았어요
달걀 홀더와 제빙기였어요 생각해 보면 그리 놀랍지 않아요
데이터에 따르면 값싼 제품들이 훨씬 더 많이 있었을 거예요 비싼
제품들을 눌러 버렸겠죠
한 번 보죠
어떤지 보죠
그런 것 같네요
데이터 집합의 평균 가격은 6달러예요
최고 21,000달러까지 올라가요
목록에 21,000달러짜리 가전제품이 있는데 가격이 낮은
제품들이 아주 많아요
중간값과 모드 차이를 기억하시는 분들을 위해 설명드리죠
학교 통계를 보면 비싼 아이템을 기준으로 평균값을 올릴
수 있고 확실히 모드를 능가합니다 중앙값도 능가하겠죠
보시다시피 저렴한 제품이 많이 유통되고 삐뚤게
분배돼 있어요
훈련 중에는 힘들 수도 있어요 훈련 데이터가 저비용 아이템으로 인해
정말 좁아질 테니까요
이 엄청나게 비싼 물건이 뭔지 빨리 살펴보죠
21,000달러짜리 물건이에요
데이터 세트에서 21,000달러 이상 하는 건 다 골라낼 거예요
터보셰프 총알 같아요
급속 조리 전자레인지 대류식 오븐이에요
누가 그런 설명을 해줬다면 그게 21,000달러나 할 줄은
상상도 못 했을 거예요
똑같은 건 아니지만 아마존 최신 버전인 것 같아요
이걸 자세히 보면 이것도 터보셰프에서 만든 거예요
21,000달러가 아니라 18,000달러밖에 안 해요
당신은 어떤지 모르겠네요
전자레인지가 이렇게 비싼지 몰랐어요 하지만 전문가용이고
고급 전자레인지예요 가격도 저렴하고요
그것의 21,000달러 버전이 여기 어딘가에 있어요 우리 데이터에서 스케일을 벗어나서요
이제 데이터를 큐레이팅할 시간입니다 다음 비디오에서 하죠