top of page

[데이터 분석] 노트북 추천을 위한 머신러닝 시스템


노트북 가격에 영향을 미치는 가장큰 요인이 무엇일까요? 어떤 사양의 노트북이 가장 비쌀까요? 머신 러닝을 통해 이 질문에 대한 해답을 찾아 보겠습니다.

들어가는 말

신학기 준비에 빠져서는 안되는 품목이 노트북입니다. 그러나 어떤 사양과 어떤 가격대의 노트북을 구입해야 할지 결정을 내리기가 쉽지 않습니다. 온라인 쇼핑몰이나 가전제품 판매점을 가보면 사양과 브랜드에 따라 엄청나게 다양한 종류의 노트북이 판매되고 있는 것을 알 수 있습니다. 그렇기 때문에 어떤 노트북을 구입해야 할지 선택이 더욱더 어렵습니다.

전세계적으로 2019년에 1억6천6백만 대의 노트북이 판매된 것으로 조사 되었습니다. (자료: International Data Corporation) 미국내 노트북의 평균 가격은 약 629달러 입니다. 그랜드 뷰 리서치 (Grand View Research)의 조사에 의하면 전세계 노트북 시장 규모는 약 1천억달러, 2025년의 시장 규모는 1,089억 달러로 예상되고 있습니다. 소비자의 구매 능력이 증가하고 기술이 발전함에 따라 신제품에 대한 기대 수요가 늘어나서, 전체적으로 노트북에 대한 수요는 꾸준히 증가할 것으로 예상되고 있습니다. 전세계 고객들의 요구를 충족시키기 위해 노트북 제조사는 더 발전된 기술로 경쟁력을 강화시키려고 많은 노력을 하고 있습니다.



[ 프로젝트 기획 ]

- 정량화 : 노트북의 품질에 영향을 주는 가장큰 요인 3가지를 찾아 정량화

- 노트북 시장 트렌드 발견 : 여러 브랜드, 타입, 성능별 트렌드 감지

- 노트북 가격 예측: 램 용량, 스토리지 용량 및 타입, CPU/GPU별 성능, 브랜드, 타입, 스크린 크기에 따른 가격 예측

- KNN 추천 시스템 : 사양에 따른 노트북 추천 시스템


데이터 수집, 웹스크래핑

모든 카테고리에서 데이터를 수집하는 것은 거의 불가능해 보였습니다. 분석을 좀더 단순화 하고 다음과 같이 개인용, 업무용, 게임용 세 카테고리로 한정하여 데이터를 수집하기로 하였습니다. 머신 러닝 트레이닝을 위한 데이터는 Newegg와 BestBuy 사이트에서 수집하였고, 테스트용 데이터는 B&H Photovideo 사이트에서 수집하였습니다.

이 세 웹사이트에서 노트북의 가격, 사양 데이터를 세개의 카테고리로 구분하여 수집하였습니다. 노트북의 사양은 화면크기, CPU에 이르기까지 매우 다양했습니다. 각 웹사이트에서 약 10개 정도의 데이터 세트를 수집하였으며 각 데이터 세트는 1,000~4,000개의 행과 40개의 열로 구성되어 있었습니다. 그래서 전체 데이터는 총 20,000개의 행과 40개의 열로 구성 되었습니다.


데이터 정제

서로 다른 세 웹사이트에서 수집된 데이터는 형식과 열 이름이 서로 달랐습니다. Newegg사이트에서 총 38개의 열, 600개 행의 데이터 셋이 수집되었습니다. 정제 프로세스를 좀더 간편하게 진행하기 위해 먼저 동일 사이트 내에서 세 카테고리 데이터 세트를 하나의 포맷으로 통합하는 과정을 먼저 진행하였습니다.

총 결측값에 대한 갯수를 확인 한 후, 정해진 규칙에 따라 결측값을 채웠습니다. 어떤 노트북은 SSD가 없거나 HDD가 없기 때문에 각 결측치는 0으로 대체 하였습니다. 그리고 대부분의 개인용 노트북에는 전용 그래픽카드가 없기 때문에 이 데이터 값도 0으로 수정하고 다른 카테고리와 비교하였습니다. 결측값을 가능한 많이 보완한 후, 결측값이 10% 이상인 경우는 해당 행 데이터를 삭제하였습니다.

그리고, CPU, RAM 값이 없거나 스토리지 용량이 0인 데이터도 삭제하였습니다. 이렇게 데이터에 결측값이 있는 경우는 신제품의 경우 사양에 대한 정보가 아직 입력되지 않았거나, 특정 제품을 등록할 때 쇼핑몰 가이드라인에 따르지 않고 제품 사양을 정확하게 등록하지 않아 생기는 경우로 파악 되었습니다.

그런 다음 각 열에 해당하는 변수의 유형을 확인하였는데 대부분의 경우 문자열이었습니다. 데이터 정제 과정을 시작하면서 무게, 스토리지, 크기, 화면크기 등의 숫자로 표현할 수 있는 변수는 모두 문자를 숫자로 변환하였습니다.

컴퓨터 언어로는 intel 9720X나 Nvidia GTX1080 등으로 표현된 값을 처리해 낼 수 없습니다. 그래서 CPU나 GPU 값을 정량 데이터로 변환 하였습니다. 이를 위해 cpubenchmark.net과 videocardbenchmark.net 사이트를 참고하였습니다.



Knuth-Morris-Pratt 문자열 검색 알고리즘을 사용하여 검색 알고리즘의 효율성을 극대화 하고 CPU와 GPU 컬럼 데이터 변환을 99% 완료하였습니다. 이 단계를 완료 한 후 파이선 Seaborn 패키지로 데이터 시각화를 진행하였습니다.


데이터 시각화

● 브랜드별 가격 트렌드

비즈니스, 개인, 게임용 노트북 카테고리에 대한 브랜드 트렌드를 살펴 보도록 하겠습니다.

비즈니스 노트북의 경우 애플과 레노버 브랜드가 가격 평균값, 중간값이 가장 높았습니다. 그 이유는 가격대가 높은 제품인 Thinkpads가 Lenovo, 맥북프로가 애플 브랜드이기 때문입니다. 델, HP, 에이서의 경우 이들 브랜드의 평균 가격은 앞서 언급한 레노버나 애플보다 훨씬 낮습니다. 이 세 브랜드의 노트북은 좋은 가격과 전통적인 노트북 느낌, 디자인을 강점으로 내세우고 있습니다.



게임 노트북의 경우 2019년 현재 가격 평균값과 중간값이 가장 높은 브랜드는 Razer, Gigabyte, Alienware 입니다. Razer와 Alienware 브랜드의 노트북은 하이앤드 게이밍 노트북 시장을 장악하고 있습니다. MSI, ASUS, Razer, Gigabyte는 게이밍 고객을 대상으로 하는 최고급 사양의 노트북 브랜드 입니다.





개인용 노트북의 경우 Razer, Gigabyte, Alienware, Apple, MSI의 고급 브랜드는 노트북 가격 평균값과 중간값이 가장 높은 Top5 브랜드 입니다. 그러나 대중적으로 가장 많이 알려진 개인용 노트북 브랜드는 HP, Huawei, Lenovo, Dell, Asus, Acer 입니다.​



● 화면 크기와 모니터 사양

세 가지 노트북 카테고리에서 2019년에 가장 인기 있었던 화면의 크기는 15.6인치 였습니다. 특히 게임 노트북의 경우 15.6인치 이하의 노트북이 없는 것은 게임을 해본 사람이라면 충분히 이해 할 수 있습니다. 비즈니스 노트북의 경우 반면, 15.6인치 이상의 노트북은 거의 찾아 볼 수 없는데 그 이유는 비즈니스 노트북은 이동성과 무게가 가장 중요시 되기 때문입니다. 2019년에는 세 카테고리 모두 13.3인치 미만의 노트북은 거의 출시되지 않았습니다.​



● CPU/GPU vs. 무게 : 회귀 분석

노트북의 무게와 성능은 노트북 선택게 있어 가장 중요한 요소 입니다. CPU/GPU가 고사양 일수록 노트북 무게는 증가합니다. 고성능의 하드웨어를 탑재하려면 더 넓은 공간이 필요하고 노트북의 무게도 증가하게 됩니다. 그러나 2019년에 고사양 CPU 2~4 lbs(SUPER LIGHT) 제품이 많이 출시되어 이러한 제약이 많이 사라졌습니다.

반면, GPU의 경우에는 사정이 다릅니다. 고성능 GPU는 가장 가벼운 제품이 4lbs 입니다. 노트북의 그래픽 카드는 또 다른 설치 공간과 팬과 같은 추가적인 하드웨어의 지원이 필요합니다. 2019년 제품 중, 고사양 GPU의 경우 기타 여러가지를 감안해도 무게가 최소 4lbs가 약간 넘습니다.​



● CPU/GPU vs. 가격 : 회귀 분석​

CPU/GPU의 성능이 좋을수록 노트북 가격은 높습니다. 그러나 2019년에는 고성능 CPU/GPU가 내장된 천달러 가격 수준의 노트북이 출시 되었습니다. 무어 지수 성장법(Moore's Exponential Growth Law)을 근거로 설명해 보면, 8년전에는 3천달러 가격수준의 노트북은 2천~2천5백 정도의 CPU/GPU를 내장할 수 있었지만 2019년에는 1만 9천~2만1천의 CPU/GPU를 내장할 수 있었습니다. 8년동안 10배의 성장을 이룬 것입니다.​



머신러닝 추천 알고리즘 구현

● 가격 예측 모델링과 정확도​

Newegg와 Bestbuy 사이트에서 수집한 데이터로 구축한 모델로 B&H VideoPhoto 사이트에 등록된 노트북 가격을 어느 정도 예측할 수 있는지 확인해 보고 싶었습니다. 노트북 가격 예측 모델을 좀 더 간단화 하기 위해 몇몇 변수를 더미화 하고 custom featuring engineering을 생성한 후 모델링을 진행하였습니다. 편포도(Skewness) 값이 0.15를 넘는 변수는 정규화를 진행하였습니다. 그 후, Newegg와 Bestbuy 데이터셋을 트레이닝 셋으로, B&H VideoPhoto 데이터 셋을 테스트 셋으로 나누어 구축된 모델이 어느 정도 정확하게 노트북 가격을 예측하는지 확인해 보았습니다.




​첫번째 그림은 검색 교차 검증을 사용하여 변수를 변환한 후 Ridge Linear 회귀분석을 하고 잔차를 표현한 그림입니다. R2는 0.69 입니다.

두번째 그림은 5-fold cv 그리드 검색을 사용하여 변수를 변환한 후 XBGboosting 회귀분석을 하고 잔차를 표현한 그림입니다. 모델 점수는 0.79입니다.

두 가지 회귀분석 잔차 그래프에서 한개 이상의 아웃라이어를 발견할 수 있었습니다. 이것을 제외하면 전반적으로 모델링이 잘 되었다고 할 수 있습니다.

● KNN Neighbor 추천 알고리즘

앞에서는 선형모델을 이용하여 사양에 따른 노트북 가격 예측 모델을 만들어 보았습니다. 이번에는 K-Nearest Neighbor 모델을 이용하여 노트북 추천 시스템을 구축해 보았습니다.

유클리드 거리 측정이 필요한 KNN 모델을 구축하기 전에 Min Max Scalers를 이용하여 데이터셋을 스케일링 하였습니다.

Min Max Scalers를 이용하는데 있어 중요한 점:

- 모든 데이터 값에서 최소값을 빼고 차이값으로 표시합니다.

- 모든 데이터 값을 최소값과 최대값의 차이로 나눕니다.

- 모든 데이터 값은 0에서 1사이의 값으로 수정될 것입니다.

- 단점은 표준편차 값이 감소하고 아웃라이어의 영양을 감소시킵니다.

아래 그림은 사용자가 입력한 데이터를 기반으로 추천 알고리즘을 구현한 것입니다. 15.6인치의 화면과 MSI 게이밍 노트북을 참고 있는 고객에게 노트북을 추천해 보겠습니다.

아래의 그림에서 추천 알고리즘이 추천한 노트북 리스트 입니다. 리스트 안에 제가 몇주동안 관심있게 봐왔던 노트북도 있었습니다. 추천된 노트북의 사양이 생각보다 다양한 것에 조금 놀라긴 했습니다.



향후 연구 계획

소비자 후기 점수와 리뷰를 요약한 제품 후기 분석을 바탕으로 노트북별 순위를 매기고, USB-C타입 포트가 있는지, 어떤 버전의 블루투스를 지원하는지 등의 다양한 사양 변수가 추가되면 좀 더 정확한 모델링을 할 수 있을 것입니다. 또한 KNN 모델링을 하기전에 다양한 유형의 스케일러를 사용하여 테스트 해 보고 모델링에 영향을 미치는 스케일러에 대한 연구를 충분히 진행해 보도록 하겠습니다.







Comments


bottom of page