데이터분석

[데이터 분석]크롤링을 활용한 쇼핑몰 키워드 기반 귤 상품 분석-2

Hong_1 2024. 1. 2.

이번 포스팅에서는 이전 포스팅에서 다루었던 크롤링을 통해 생성된 데이터를 활용해

연관규칙을 분석하고 해석해 볼 것이다.

 

이전 포스팅

https://anhong1.tistory.com/7

 

[데이터 분석]크롤링을 활용한 쇼핑몰 키워드 기반 귤 상품 분석-1

1. 주제선정 겨울에는 귤! 주변에 귤을 좋아하는 사람들이 정말 많은데 구매에 도움이 되는 분석을 해 분석된 자료를 직접 활용해보기로 하였다. 2. 개요 우선 네이버, 우체국 마켓, 홈플러스 등

anhong1.tistory.com

 

4. 데이터를 활용한 연관규칙 분석

이전 포스팅에서 네이버, 홈플러스, 우체국 등의 온라인 쇼핑몰에서 크롤링을 통해 3개의 데이터 파일을 추출했다.

이 파일들을 병합하고 apriori 함수를 사용 연관규칙을 분석해 보자.

 

우선 다음 코드로 파일을 병합해 주었다.

import pandas as pd

# 3개의 CSV파일을 읽어서 데이터프레임으로 저장
df1 = pd.read_csv('best_tangerine1.csv')
df2 = pd.read_csv('best_tangerine2.csv')
df3 = pd.read_csv('best_tangerine3.csv')

# 데이터프레임을 병합
merged_df = pd.concat([df1, df2, df3], ignore_index=True)

# 병합한 데이터프레임을 새로운 CSV 파일로 저장
merged_df.to_csv('merged_tangerine.csv', index=False)

df = pd.read_csv('merged_tangerine.csv')

 

이렇게 생성된 병합된 CSV 파일인  ‘merged_tangerline.csv’ 파일을 가지고 분석을 진행해 볼 것이다.

 

데이터 정렬을 위해 다음 코드를 통해 파일을 읽어와 명사만 추출하였다. 

!pip install konlpy
!pip install networkx==2.7.1

f = open('merged_tangerine.csv','r',encoding='utf-8')
lines = f.readlines()
f.close()

dataset = []
for i in range(len(lines)):
  dataset.append(hannanum.nouns(re.sub('[^가-힣a-zA-Z\s]','', lines[i])))
dataset[0:3]

 

그 다음 apriori 연관규칙 분석 알고리즘에서 항목 수가 2이면서 지지도가 0.025 이상인 행만 남겨 지지도가 높은 것부터 정렬해 보았다.

!pip install install apyori
from apyori import apriori

result = (list(apriori(dataset, min_support=0.025)))
df = pd.DataFrame(result)

df['length'] = df['items'].apply(lambda x: len(x))
df = df[(df['length']==2)&(df['support']>= 0.025)].sort_values(by='support',ascending=False)
df

 

위 코드의 실행 결과는 다음과 같다.

 

이제 마지막으로 네트워크 그래프를 생성하고 그래프에 나타난 연관관계를 분석해보자.

 

5. 네트워크 그래프 생성

다음 코드를 통해 그래프를 생성해보자.

!pip install scipy == 1.8.0
!pip install pyg-nightly

G = nx.Graph()
ar = (df['items']); G.add_edges_from(ar)
pr = nx.pagerank(G)
nsize = np.array([v for v in pr.values()])
nsize = 2000*(nsize-min(nsize)) / (max(nsize)-min(nsize))
pos = nx.spring_layout(G)
plt.figure(figsize=(16,12)); plt.axis('off')
  nx.draw_networkx(G, font_family='NanumGothic', font_size=20,pos=pos,\
                  node_color=list(pr.values()), node_size=nsize*10, alpha=0.7,\
                  edge_color='.5', cmap=plt.cm.coolwarm)
  plt.savefig('네트워크 그래프_귤.png', bbox_inches='tight')

 

 

다음은 위 코드를 통해 생성된 분석 그래프이다.

<실행 결과>

*노지: 노지귤 뜻은 한자로 이슬 로, 땅 지를 의미하며비바람을 그대로 맞으며 키운 귤로 당도가 높으며 제주도 대부분의 귤

*타이벡 감귤: 노지에서 키우는 감귤나무 아래에 타이벡이라는 특수한 천을 깔아서 키우는 방식

 

결과 분석

위 그래프를 통해 분석해보면 시중에 판매되고 있는 귤 중 판매량이 높은 귤은 제주도에서 많이 나며 특히 서귀포시에서 많이 생성되는 것을 유추할 수 있었다. 그리고 노지와 타이벡 감귤의 비율이 많이 차지하는 것을 볼 수 있었다. 그리고 식탐대첩이라는 회사에서 판매하는 귤이 가장 많은 판매량을 올리는 것을 볼 수 있다.

 

그리고 마지막으로 귤은 제주도 서귀포시에서 자란 타이벡 감귤을 사는 것을 고려해봐야겠다.

댓글