주피터랩의 가장 좋은 장소에 잘 오셨어요
다시 대회 3일째인데요
6주 차에요
이 공책이 정말 기대되네요 여러분도 즐겁게 읽으시길 바라요
좋은 걸 준비해 뒀어요
오늘도 기본 모델을 살펴볼 거예요
여러 개의 import로 시작할게요. 모두 이전에도 봤던 것들이에요.
새로운 건 없어요
두 번째 셀에 새로운 수입품이 있어요
머신 러닝 판다를 위해 가져온 장비인데 여행하면서 많이 보셨을
겁니다 데이터를 비트처럼 정리하는 훌륭한 방법이죠
물론 넘피는 낯설지 않겠죠
그리고 스클론이죠
Scikit은 머신 러닝 라이브러리로 아주 인기가 많습니다 아주 흔한 알고리즘이 많아서
아주 유명하죠 오늘날에도 많이 사용될 겁니다 하지만 가장 중요한 건 선형 회귀입니다
데이터 과학자의 툴킷에서 표준으로 사용되는 선형 회귀 모델이죠
또 다른 것은 자연 언어 프로세싱 NLP와 관련된 것들입니다
겐심도 포함해서요 NLP와 관련된 아주 유용한 라이브러리입니다 아까 언급했던 워드 2 베c가
그 예죠
방금 언급했지만 언어를 벡터로 바꾸는 강력한 모델이죠
그 감방도 제가 운영하게 해주세요
하나 더 있어요 다른 수입품 세트요
공부가 더 필요해요
이건 따로 보관했어요 더 고급 머신 러닝을 위해 두 개를 수입하는 거니까요
하나는 벡터 회귀 지원입니다 벡터 머신과 패키지의 일부죠
다른 하나는 무작위 숲 퇴행자예요
어, 아까 임의의 숲이라고 했는데 그것도 같이 갖고 올게요
네
이 상수들의 집합은 여러분을 놀라게 할 수도 있어요
비트가 좀 특이하네요
그 생각은 잠시 보류하세요
나중에 올 거예요
이런 걸 해 본 적이 있다면 알아볼 수 있을 거예요
좀 이상하지만 역사적인 이유에서죠
특정 기호를 표준에 프린트하면 색이 변해서 초록색이
돼요
이유는 다 말할 순 없지만요
그리고 다시 색을 검정이나 흰색으로 바꾸죠 전경 색에 따라서요
이런 상수를 알고 손으로 직접 인쇄할 수 있으면 컬러 프린트가 쉬워지죠
오늘 할 거예요
네
그러니 저 상수는 우리가 잘 아는 일반적인 환경 셋업을 실행합니다 그리고 얼굴 안기로 로그인하세요
잘 모르겠어요
오늘은 포옹하는 얼굴 안 써요 굳이 로그인할 필요
없었는데 그냥 재미로 해봤어요
매트플로틀리브는 유피터 노트북에 꼭 넣어주세요
피클 파일에서 데이터를 로드할 거예요 다시 만드는 대신에요
훈련 데이터를 다시 한 번 살펴보죠
첫 번째 훈련 데이터 포인트를 보죠
이게 뭐였는지 다시 상기시켜줄 프롬프트를 요청할게요
이건 이 아이템 개체의 프롬프트 특성을 찾는 겁니다 아까도 말씀드렸죠
과거에요 이틀 전쯤에 말이죠
하지만 이제 이런 것에 익숙해졌길 바라요
프린트해서 잘 나오게 할게요
자, 됐어요
여기 있네요
이건 얼마 정도 할까요?
제목도 있고 디테일도 있고 가격도 있죠
왜 이 문제를 위해 아이템 클래스에 많은 시간을 투자하는지 궁금하실 텐데요
실제로 이런 일을 하게 되는 건 상업적인 문제를 해결하고
데이터를 조작할 방법을 찾을 때죠
현실 세계 경험이 유용할 거예요
이 코드나 아이템 클래스를 사용하지 않을 거고 이것과 똑같은 프롬프트를 갖지도 않겠죠
하지만 이런 기술은 여러분이 복제할 수 있습니다 따라서 제가 내리는 결정을
이해하고 이해하는 게 중요합니다 그래야 여러분도 자신의 프로젝트에서
자신감을 갖고 똑같이 할 수 있죠
이게 그 훈련 프롬프트예요
이제 테스트 프롬프트를 보죠
첫 번째 테스트 아이템을 선택할게요
메서드 테스트 프롬프트를 호출할게요
기본 훈련 프롬프트만 갖고 실제 가격을 없애 모델을 테스트할 때 답을 공개하지 않도록
하는 걸 기억하세요
그 가격을 채우는 게 그 기계의 일이죠
뭘 채우려는 건지 알고 싶을 땐 훈련용으로 가져가요
기차를 타고 가서 가격을 부르면 돼요
이게 이 제품의 실제 가격입니다 보시다시피 가장 비슷한 가격으로
반올림했죠
하지만 진짜 가격은 약간 달라요
이걸 보면 우리가 이 훈련과 테스트 메서드로 뭘 하는지 기억이 되살아나길
바랍니다 이 훈련과 테스트 아이템 목록과 그걸 어떻게 부르는지도요
이제 제가 아주 만족하는 걸 보여드리겠습니다 코드 덩어리죠 여러분 프로젝트에 정확히
이 코드를 사용하지 않을 수도 있지만 비슷한 걸 할 거예요
여러분이 해결해야 할 문제에 접근하는 좋은 방법이고 여러분의 문제에 대해
복제할 수 있는 좋은 방법이죠
그래서 다양한 모델을 테스트하고 싶었어요 빠르고 간단한 방법으로요
그러려면 테스트 데이터를 모델에 적용해 결과를
시각화해야 해요
함수에서 가지고 있던 것입니다 그리고 계속해서 반복을 했고 코드를 복사하고
붙여넣기를 했습니다 반복적으로 같은 것을 해야 하기 때문이죠
그렇게 할 때마다 여러분을 위해 일종의 유틸리티를 만들 때인 것처럼
들리네요
그래서 클래스 테스터라는 걸 생각해냈어요 모델을 테스트할 수
있는 건데 어떤 식으로 작동하느냐면 원하는 함수를 쓸 수 있어요
어떤 함수든 제 예측 함수 같은 걸로 불릴 수 있죠
유일한 작업은 항목을 취하고 그에 반응해 추정 가격을 반환하는 겁니다 특정 예측을
하기 위해 원하는 어떤 코드든 입력하는 거죠
그런 함수를 작성하고 나면 테스터를 호출할 수 있어요
이 클래스는 . test를 하고 함수 이름을 통과하는 거예요
이 함수를 취할 거예요
250개의 다른 테스트 항목에 대해 반복적으로 호출하고 결과를 예측하는 데 얼마나 좋은지
보고 그 정보를 시각적으로 요약하죠
그게 목적이죠
워크플로우도 단순화할 수 있고요
이게 그 수업이에요
아주 간단해요
색상도 신경 써야 해요
색상 인쇄할 거라고 했잖아요
데이터 포인트를 실행하는데 실행 데이터 포인트는 하나의 데이터 포인트에 대한 비즈니스를 하는 메서드입니다.
그 데이터 포인트를 얻는 것이죠.
여기서 당신이 제공한 함수를 호출하죠
모델의 모델을 get get 데이터 포인트라고 부르죠
함수에서 얼마라고 하는지 맞혀 보세요
그리고 가격 특성을 호출해서 진실을 얻습니다. 조금 전에 보았던 것이죠.
물론 오류는 추측과 진실의 절대적인 차이예요
아주 간단해요
제곱로그에러라는 것도 계산하는데 제곱로그에러의 공식은 여기와
똑같아요
진실 더하기 1을 더하고 맞힌 것 더하기 1을 더해요
네, 그리고 왜 공식에 플러스 1이 들어가는지 짐작되실 거예요
진실이 0이라면 수학을 원치 않을 테니까요 일지를 폭파할 거예요
이 공식은 진실 혹은 추측이 0인 경우에 잘 맞아요
그러면 제곱 로그 에러는 물론 이것의 제곱이고요
이제 비트 프로세싱을 좀 할 거예요
작은 차트를 그릴 수 있어요 잠시 후 보여드리죠
보고서를 써요
이게 궁극적으로 제가 아까 언급한 함수예요
테스트를 호출해 이 테스트를 실행할 수 있어요
네
제가 그 감방을 처리할게요
그러니 제가 이 시험에서 풀었던 모든 걸 이해하실 필요는 없어요
이렇게 멋진 테스트 하니스를 만드는 건 원칙이에요 약간의 시간을 투자해 모델을
실행한 결과에 대한 진정한 통찰력을 얻을 수 있도록 하는 거죠 비트로
여기서 배우는 거죠
가장 간단한 모델은 뭘까요?
가장 단순한 모델이 뭘까요?
기본 모델 작업을 하기 전에 위로 올라갈 거예요
두 가지 코미디 모델을 만들 거예요 우스꽝스러운 모델인데 우리가 상상할 수 있는 가장 기본적인
거죠
잠깐 질문 하나 할게요
가장 간단한 모델이 무엇인지 생각해 보세요 아마 그것보다 더 간단한
걸 거예요
첫 번째는 아주 간단한 모델 두 개예요
첫 번째 문제는 벌써 답을 공개했어요
아마 첫 번째 숫자는 무작위로 추측하는 걸 보셨을 거예요
그게 다일 거예요
여기 함수가 있어요
여기 함수가 있는데 프롬프트가 없어요
항목을 선택하는데∙∙∙ 중요하지 않아요 항목을 완전히 무시할 테니까요 대신
무슨 말을 들었는지 신경 쓰지 않죠
1에서 1000 사이의 무작위 숫자를 반환하죠
죄송해요, 그건 1과 999를 포함해서죠
무작위로 종자를 설정해서 매번 같은 결과를 얻도록 할 거예요
이제 작동시켜요
이 테스트를 다시 실행하는 방법은 테스터 클래스로 가서 .테스트를 보여드렸죠
그런 다음 이 함수의 이름을 전달해요
함수를 호출하지 않아요 왜냐하면 함수를 호출하면 한 번만 호출하거든요
함수 그 자체로 이렇게 전달해요
이제 이걸 실행하면 제 프로그램의 결과를 보실 수 있어요
아주 빨리 진행됐죠 아주 빠른 모델이었거든요
다시 스크롤을 올려 뭐가 보이는지 말씀드리죠 너무 많아서요
여러분이 아주 익숙해지게 될 겁니다 다음 몇 클래스에서 이걸 많이
할 테니까요 get it
여기 보이는 각 행은 다른 테스트 데이터 포인트를 나타내요
오른쪽에 있는 아이템이 뭔지 알려주고 있어요
이건 고독스 ML 60 바이 LED예요 LED 조명 키트죠 휴대용 LED예요
그 후론 짧게 편집했어요
이 LED 조명 키트는 모델과 그 기능의 함수를
보여 주는데요
무작위 번호 생성기라서 143달러로 나왔어요
진실이 뭐죠?
그런데 놀랍게도 289달러였어요 제가 기대한 금액보다 좀 높네요 하지만
거기 짧게 묘사된 걸 보면 그렇죠
어쩌면요
옆에 노트북 같은 게 딸려 있을지도 몰라요
그게 오류예요
이 모델이 이 정도로 잘못하고 있다는 거죠
제곱 로그 에러는 다음에 얘기하도록 하죠
하지만 이건 보완을 위한 겁니다 절대 오류와 상대적인 오차의
차이를 더 잘 반영하는 거죠
하지만 이 부분에 집중할 겁니다 추측과 진실의 차이는
우리 인간에게는 너무나 쉽게 이해되니까요
추측이 형편없어서 빨간색으로 칠한 거예요
빨간색은 정말 끔찍해요
노란색은... 초록색이면 충분해요
그에 대한 정의는 스크롤을 다시 올려보면 경험에서
나온 비트가 있는데요
40달러나 20% 이하면 녹색이라고 부르죠
40달러나 20% 이하면 녹색이에요
40달러라니 관대하다고 생각하실 수도 있지만 가격 범위가 넓다는 걸 기억하세요
설명만 듣고 바로 결정해야 해요
정말 어려운 일이에요
만약 40달러 오차 범위 안에 든다면 잘 작동하고 있는 거죠
원하신다면 더 엄격하게 하실 수 있어요
이건 당신이 손보면 돼요
하지만 그게 제 원칙이었어요
여기 포인트가 다 있어요
마지막엔 멋진 시각화가 있어요
이건 뭔가요?
이 도표 마음에 들어요
이 도표들을 많이 보게 될 거예요
Get in get에 익숙해지세요
엑스 축은 대지의 진리를 보여줍니다 제품의 실제 값이죠
데이터 과학자들이 Y라고 설명하는 걸 들을 수도 있어요 반면 축을 보면
데이터 과학자들이 어떤 값을 계산했는지 알 수 있죠
제품의 실제 가치와 모델의 추정치를 비교하는 거죠
그래서 진정한 값은 항상 데이터 집합에서 0에서 1000인 사이로 퍼져 있어요 모델의 값은 사방에
있죠
무작위로 찍혀 있어요
이 파란 선은 완벽한 추리를 의미해요
모델이 이 파란 선을 따라 맞힌다면 바닥에 정확히 게스트예요 운이 좋았다는
걸 알 수 있죠
물론 시간이 촉박하긴 하지만요. 파란 선 근처에 있는 초록색 점들은
get 작업을 꽤 잘했다는 걸 나타내요.
노란 점은 A가 있는 곳이고 빨간 점은 묘기를 놓쳐서 저기로 갔을 때죠
정말 재미있었어요
즐거우셨길 바라요
우리가 할 수 있는 아주 사소한 모델이 또 있어요 제가 요청했을 때 여러분이 생각하셨던
것일 수도 있죠
아주 기본적인 모델에서 여러분은 생각하셨겠지만 제게 정말 기본적인
건 모든 걸 0으로 맞추거나 1로 맞추자는 거였어요
더 잘할 수 있어요
훈련 데이터 세트를 가지고 모든 훈련 데이터 집합의 평균 가격이 얼마인지 물어볼
수 있어요
왜냐하면 우리 모델은 훈련 데이터 집합이 제공되거든요
그래서 그걸 계속 추측하는 거라고 볼 수 있죠
모든 게 훈련 데이터 집합에 있는 모든 것의 평균 가격이라고 가정해 보죠
기본적으로 훈련 데이터의 가격을 계산하고 평균을 내요 훈련
가격을 전부 합쳐서 그걸 개수로 나눈 거죠
훈련 데이터 집합에서 1점의 가격을 알려줄 거예요
이건 아주 정교한 모델이에요 아주 정교한 모델이죠
다시 말씀드리지만 아이템을 선택하고 평균을 반환해요
통과한 건 무시하고 평균만 반환해요
어떻게 보일지 한 번 보죠
어떤 도표를 보게 될지 마음속으로 그릴 수 있는지 보세요
어떤 모습일지 정확히 상상할 수 있으면 좋겠네요
당신이 옳았는지 확인할 준비가 됐는지도요
좋아요!
이건 물론 도표고요
고정된 지점에서 추측하는 거죠 500이 될 거라고 생각한다면 유통 방향이 좀 더 저렴한
물건 쪽으로 기울었다는 걸 기억하세요
처음만큼 심하진 않아요
비트를 약간 수정했어요
모든 것에 이 정도 양을 계산했어요
물론 제품의 값과 같은 지점에서 초록이 나왔어요 아니면 노랑이나
빨강이겠죠
이렇게 퍼져 있어요
예상했던 결과를 볼 수 있어요
실제 결과를 다시 스크롤하면 붉은 바다가 보일 겁니다
가끔 녹색도 보이고요 평균에 가까운 비용으로요
그럼 즐겁게 보시길 바랄게요
아직 실제 머신 러닝 모델은 보지 못했지만 곧 볼 테니 걱정
마세요
조금만 참아요
다음에 봐요