이번 포스팅에서는 이전 포스팅에서 다루었던 크롤링을 통해 생성된 데이터를 활용해
연관규칙을 분석하고 해석해 볼 것이다.
이전 포스팅
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' )
다음은 위 코드를 통해 생성된 분석 그래프이다.
<실행 결과>
* 노지 : 노지귤 뜻은 한자로 이슬 로 , 땅 지를 의미하며비바람을 그대로 맞으며 키운 귤로 당도가 높으며 제주도 대부분의 귤
* 타이벡 감귤 : 노지에서 키우는 감귤나무 아래에 타이벡이라는 특수한 천을 깔아서 키우는 방식
결과 분석
위 그래프를 통해 분석해보면 시중에 판매되고 있는 귤 중 판매량이 높은 귤은 제주도에서 많이 나며 특히 서귀포시에서 많이 생성되는 것을 유추할 수 있었다 . 그리고 노지와 타이벡 감귤의 비율이 많이 차지하는 것을 볼 수 있었다 . 그리고 식탐대첩이라는 회사에서 판매하는 귤이 가장 많은 판매량을 올리는 것을 볼 수 있다 .
그리고 마지막으로 귤은 제주도 서귀포시에서 자란 타이벡 감귤을 사는 것을 고려해봐야겠다.
댓글