지난 시간에는 기능 공학의 단순한 선형 회귀 모델을 살펴봤는데요
이제 기능과는 작별하고 자연 언어 프로세싱을 시작해보죠
NLP의 다소 단순한 유형으로 시작하겠습니다 앞서 짧게 언급한 단어 주머니라고
하죠
이 두 가지 유용한 것부터 만들어 볼게요
하나는 가격이고 다른 하나는 문서인데 가격은 훈련 데이터 집합에 있는 모든 가격
목록입니다 문서는 훈련 데이터 집합에 있는 모든 테스트 프롬프트고요
비트 텍스트죠 이제 우리가 할 건 문서에 텍스트를 사용하는 모델을 만드는
겁니다 우리가 만든 기능을 사용하는 대신에요
그냥 글자를 써요
눈치채셨겠지만 작은 트릭이 하나 있어요 훈련용이 아니라 테스트 프롬프트죠
훈련 시간을 이용하면 가격도 포함되어 있죠
그건 작동하지 않을 겁니다 모델은 당연히 가격 자체를 알아내는 법을 배우게 될 테니까요 프롬프트
안에 있죠
테스트 시간이 되면 처참하게 실패하죠
조심해야 할 트릭이죠
제가 더 조심해야 할 함정이죠
그래서 준비하죠
이제 countvectorizer를 사용할 거예요 이름만 들어도 근사하죠
오늘 카운트 오브 벡터라이저로 작업한다고 생각한다면 매우
복잡한 무언가를 만들 거라고 생각하지만 실제로는 그렇지 않아요
단순히 단어 수를 세는 것을 찾는 것입니다 그리고 벡터 내의 각 위치들이 특정 단어를
나타내는 곳에 벡터를 구축합니다 그리고 그 단어가 여러분 문서에 몇 번 나타날지
확인하죠
각 문서는 벡터입니다 벡터의 모든 행은 여러분 어휘의 단어를 나타내죠
카운터는 몇 번 왔는지 세어보고요
이런 사고방식을 단어 자루 모델이라고 해요 단어 자루를 들고 숫자를
세는 것과 같죠 단어 순서는 상관없어요 특정 횟수만큼만
단어에 대한 개념이 있는 거죠
그래서 가장 흔하거나 가장 중요한 단어 1,000개까지 셀 거예요
여기 이 매개 변수를 이용해 확실히 하려는 건 일반적인 스톱 단어를 제거하는 겁니다 사람들이
앤 앤 더 앤 인이라고 부르는 거죠 모델에 유용하지 않고 방해만
되는 것들이죠
get이 뽑히면 즙이 흐르는 단어만 남죠
이제 우리가 할 일은 보다시피 훨씬 빨라졌어요
이 문서에 기반해 데이터 세트를 생성할 거예요
아까처럼 선형 회귀 모델을 다시 만들 거예요
우리 단어를 가격에 맞춰야 해요
다시 말해, 이번엔 기능을 사용하는 대신 이 단어들을 사용하는
겁니다 벡터 단어로요 단어 개수를 세는 거죠 가장 흔한 사전 용어에 있는
단어 천 개의 개수를요
그렇게 할 거예요
선형 회귀를 실행할 거예요
지금 진행 중이에요
모든 데이터 집합에 걸친 벡터 포인트 1,000개를 세고 있어요
그 작업이 끝나면 그걸 단어 모음에 넣습니다 선형 회귀, 프라이서죠
Put
그리고 테스트할 거예요 다시 테스트하죠
방금 실행이 완료됐어요
이건 우리 함수예요 시험해 볼 간단한 함수죠 테스터.테스트라는 기기로 테스트할
거예요
말주변이 좋네요
선형 회귀 프라이저예요
어떻게 되나 보죠
채소가 많네요
붉은색도 많고요
보이시죠?
하나만 뽑죠
74달러가 들었죠
사실 46달러였어요
그래서 제대로 된 것들이 있는 걸 볼 수 있죠
너무 많이 벗어난 부분도 있어요
그래프가 어떻게 보일까요?
어디 보죠
네, 좋아요
뭔가 좋은 일이 일어날 것 같아요
점점 더 가까워지고 있어요
녹색 점이 더 많이 보여요
평균 113달러죠
특징이 있는 선형 퇴행보다 훨씬 낫고 추측보다 훨씬 낫네요
진전이 있네요
아직 이상한 점이 있어요 문제가 좀 있죠
하지만 이게 진정한 가치이고 여기 어딘가에 있어야 한다고 생각했죠
하지만 진전이 있다는 걸 알 수 있어요
좀 더 고급 모델로 넘어가기 전에 이 세트의 마지막은 젠심 라이브러리를
이용해 이 단어를 베크 모델에 소개하는 거예요
그게 제가 NLP와 함께 있는 신경 네트워크를 처음 접한
것 중 하나입니다. 벡터화 모델을 사용했고 더 복잡한 벡터 내장 모델을 사용했죠.
겐심에서 2VC 함수 클래스를 사용하겠습니다 400D로
벡터를 빌드하죠
그래서 일꾼 8명을 쓰도록 설정했어요 제 상자를 망치질하는 셈이죠
실행하는 데 몇 분 걸렸어요 이걸 다 기다리지 않게 미리 실행했죠
그리고 이걸 실행했어요 이제 실행할 준비가 됐으면 좋겠네요
바로 결과를 볼 수 있게요
2bc 선형 회귀 프라이어를 통과시킬 수 있을 거예요 이 멋진 벡터화 모델이 선형 회귀로
어떻게 작동하는지 보죠
처음 두 줄까지는 괜찮아 보이는데 큰일이네요
빨강도 있고 초록도 있고 빨강도 있고 초록도 있고 빨강이 많네요 250개의 데이터
포인트를 지나 해도로 내려갔어요
여기 있네요
다시 괜찮아졌어요
흥미롭게도 나쁜 소식은 단순한 단어 모델에 따르면 선형 회귀보다 머리카락이 더 나쁘다는
거예요
멋진 단어를 공개하죠 벡터 2개는 아직 도움이 안 됐어요
여전히 이전과 같은 영역입니다. 아마도 2Vc 벡터에 있는
추가 정보를 활용할 만큼 선형 회귀 모델이 강력하지 않기 때문일
거예요.
다음 시간에는 좀 더 복잡한 모델을 탐구해 보고 전통적인 머신
러닝을 마무리할 거예요
조금만 더 기다려 주세요 비트를 좀 더 짜내고 싶거든요
베이스라인 모델로 좀 더 나아지길 원합니다 LMS가 비트 코일에서 쉽게 실행되는 걸 원치
않으니까요
Put it's go 우린 싸우고 싶어요
다음에 봐요