고객의 `page_id` 이동 정보를 분석하고, 세션 내에서 페이지 간의 연결을 시각화하는 작업을 Python의 `networkx`를 사용해 구현할 수 있습니다. 아래는 이를 위한 예제 코드입니다.

### 예제 코드

```python
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt

# 샘플 데이터프레임 생성
data = {
    'session_id': [1, 1, 1, 2, 2, 3, 3, 3],
    'customer_id': [101, 101, 101, 102, 102, 103, 103, 103],
    'page_id': ['home', 'product', 'cart', 'home', 'checkout', 'home', 'product', 'cart']
}

df = pd.DataFrame(data)

# 페이지 이동 정보를 담은 그래프 생성 함수
def build_page_transition_graph(df):
    # 세션별로 그룹화하여 페이지 이동 순서를 파악
    G = nx.DiGraph()  # 방향 그래프를 사용하여 페이지 이동을 나타냄
    
    for session, group in df.groupby('session_id'):
        pages = group['page_id'].tolist()
        # 각 세션 내 페이지 이동을 간선으로 추가
        for i in range(len(pages) - 1):
            G.add_edge(pages[i], pages[i+1])
    
    return G

# 그래프 생성
G = build_page_transition_graph(df)

# 페이지 이동의 연결 강도 계산 (간선의 가중치 추가)
for (u, v) in G.edges():
    if G.has_edge(u, v):
        if 'weight' in G[u][v]:
            G[u][v]['weight'] += 1
        else:
            G[u][v]['weight'] = 1

# 그래프 시각화 함수
def plot_graph(G):
    pos = nx.spring_layout(G)  # 그래프의 레이아웃 설정
    weights = [G[u][v]['weight'] for u, v in G.edges()]  # 간선의 가중치
    
    plt.figure(figsize=(10, 7))
    nx.draw_networkx_nodes(G, pos, node_color='skyblue', node_size=2000)
    nx.draw_networkx_edges(G, pos, width=weights, edge_color='gray', arrows=True)
    nx.draw_networkx_labels(G, pos, font_size=12, font_color='black')

    plt.title('Page Transition Graph')
    plt.show()

# 그래프 시각화
plot_graph(G)

# 연결이 많이 된 page_id 추출
most_connected_pages = sorted(G.degree, key=lambda x: x[1], reverse=True)
print("Most connected pages:", most_connected_pages)
```

### 코드 설명
1. **데이터 생성**: `session_id`, `customer_id`, `page_id`로 구성된 데이터프레임을 만듭니다.
2. **`build_page_transition_graph` 함수**: 각 세션 내에서 페이지 이동 정보를 추출하여 방향성 그래프(DiGraph)를 만듭니다.
   - 각 세션의 페이지 이동이 간선으로 추가됩니다.
3. **간선 가중치 계산**: 페이지 이동이 얼마나 자주 발생했는지, 간선의 가중치로 설정합니다.
4. **`plot_graph` 함수**: `networkx`와 `matplotlib`을 사용해 페이지 이동 네트워크를 시각화합니다.
5. **가장 많이 연결된 페이지 추출**: 페이지별 연결 강도를 기준으로 정렬해 가장 많이 연결된 페이지를 출력합니다.

### 결과:
- 이 코드는 각 세션에서 페이지 간의 이동을 시각적으로 보여주며, 페이지 이동 횟수에 따른 간선의 굵기가 조정됩니다.
- 또한, 가장 연결이 많이 된 페이지도 출력됩니다.

반응형

도메인 지식보다는 챗지피티로 대변되는 생성형 AI로 인햐서 ML도 퇴물이 된다는 생각이 들었다. 대부분 딥러닝과 LLM이 대세가 되었는데 아직 이 분야는 내게 개념상의 이해이지 빠르게 코딩하고 이해해서 모델을 개발할만한 역량은 갖고 있지 않다. 전통적인 통계나 분류 모델을 주로 만들어온 사람들의 자리가 빠르게 사라지는 느낌이 들었다.

업무상 서울대 공대 회의 다녀오고 오후에는 채용면접 실무 담당자로 참석하느라 바빴고 이제 정말 새로운 시대가 왔구나 생각이 든다. 2017년부터 이러한 변화가 있었는데 나는 이걸 따라갈 플랫폼을 도입하고 조직을 꾸려나가는 일을 하느라 바빴는데 그러느라 중요한 알고리즘과 기술동향을 따라가지 못한 것이 이렇게 큰 충격을 줄줄은 몰랐다.

이전 회사가 그렇게 빨리 사업철수를 할줄은 몰랐다. 물론 남아 있는 선택을 하거나 비슷한 분석가 업무를 한 사람들도 있지만, 바깥 세상이 이렇게 AI로 미쳐 돌아갈 줄은 몰랐다는 것도 있겠지.

반응형

'내 이야기' 카테고리의 다른 글

좀 쉬고 싶은데  (1) 2024.10.05
피곤한데 잠이 안오네  (0) 2024.09.28
난 어떻게 살아야 할까?  (0) 2024.09.26
둘째 재수학원 마지막 학원비 납부 완료  (3) 2024.09.23
번아웃이 올려나  (2) 2024.09.13

 공부해야 할 것들은 많고 틈틈이 따라가기에도 바쁜 형편이다. 저녁에는 검도 도장 가서 운동하고, 밤에는 책보고 낮에는 회사에서 일하고 살고 있다. 전에 회사 다닐때에도 공부를 안한 것은 아니었는데, 지금처럼 방향을 잡고 줄기차게 한방향으로 공부한 적은 없구나.

반응형

'내 이야기' 카테고리의 다른 글

퇴물이 된 느낌.  (1) 2024.10.10
피곤한데 잠이 안오네  (0) 2024.09.28
난 어떻게 살아야 할까?  (0) 2024.09.26
둘째 재수학원 마지막 학원비 납부 완료  (3) 2024.09.23
번아웃이 올려나  (2) 2024.09.13

 얼마전에 키보드를 키크론 저소음 적축 리시버를 새로 장만했다. 재작녀에 구매할 때 잘못 사서 리시버가 없어서 유선으로만 사용했는데 나름 키감이 좋아서 이번에는 저소음 적축으로 구매했는데 생각보다 색감이 달라서 적응중이다. 그래도 소음이 아주 적고 무겁지만 그래도 오랫동안 키보드를 두드리고 있어도 어깨가 아프지 않고 기분이 좋아진다는 것이 가장 좋은 점이다. 이전 버전도 저소음 적축이라고 해서 샀는데 키감도 소리도 전혀 다르다. 왜 그런가 고민하다가, 그 시간에 그냥 일이나 하고 책이나 좀더 보자 생각하면서 지내고 있다.

반응형

'내 이야기' 카테고리의 다른 글

퇴물이 된 느낌.  (1) 2024.10.10
좀 쉬고 싶은데  (1) 2024.10.05
난 어떻게 살아야 할까?  (0) 2024.09.26
둘째 재수학원 마지막 학원비 납부 완료  (3) 2024.09.23
번아웃이 올려나  (2) 2024.09.13

 예전 회사 다닐 때에는 의무감도 있었고 주변에서 지켜보는 사람들이 많아서 어느 정도 노력을 하면서 살았고 한 번도 포기하지 않았다. 그러나 이 회사로 옮기고 나서는 가끔은 포기하고 싶은 생각을 해본다. 아니, 포기보다는 내가 이 직장에 맞는 것인지 아니면 내가 일하는게 정말 가치가 있는 것인지에 대한 고민을 하고 있다. 예전에는 주어진 일을 좀더 잘 해보려고, 재미있는 일도 만들고 사람들과 함께 해보려고 생각했는데 요즘에는 이래저래 고민이 많다.

 

 난 어떻게 살아야 할까? 이직하고 항상 고민했던 내용이다. 첫 2년은 최선을 다하고 노력하는 삶을 살아왔지만 점점 지쳐가는 것은 사실이다. 뭔가 새롭고 멋진 무언가를 해야 하는데 내가 과연 그것을 할 수 있는 사람인지 과연 월급값은 하는지 고민을 하고 있다.

반응형

'내 이야기' 카테고리의 다른 글

좀 쉬고 싶은데  (1) 2024.10.05
피곤한데 잠이 안오네  (0) 2024.09.28
둘째 재수학원 마지막 학원비 납부 완료  (3) 2024.09.23
번아웃이 올려나  (2) 2024.09.13
맥북에어 M1 재사용 시작합니다.  (0) 2024.09.06

 카드로 결제했으니깐, 당장 다음 카드 결제할 때 조금 힘들기는 하겠지만, 뭔가 전환점을 돌았다는 느낌이 든다. 큰애는 워낙에 말도 많고 탈도 많은 녀석이었지만 둘째는 공부하는데 힘들어 하기는 했지만 얌전히 학원과 집을 오가면서 열심히 하고 있다. 큰애는 정말 바닥인 성적을 재수하면서 중상위권으로 올리면서 나름 성공적인 성적으로 재수 생활을 마무리했다. 큰애 고3때 회사 사업철수로 회사 그만두고 다른 회사 면접 보느라 정신이 없었고, 막상 내가 재취업에 성공해서 이직하고 나서는 큰애가 재수생활을 시작했다.

 

 지금 돌아보면 인생중 가장 힘들고 돈이 많이 들었던 4년의 시간이 거의 끝나간다. 2021년부터 2024년까지 4년째 수험생 뒷바라지를 하는 아내와 자사고+학원비를 내느라 등골이 휘는 내모습이었다. 그러고 보니 그렇게 힘들었던 기간동안 아내와 크게 싸우지 않고 조용조용 마무리를 했구나 생각이 들었다. 정말 고민 많이 했고 돈도 많이 썼지만 그나마 이제 2명까지 마무리가 된다는 생각에 조금은 마음을 놓을 수 있다. 무엇보다 2천만원에 육박하는 마이너스를 유지하고 있었는데, 반기 성과급을 받아도 획기적으로 대출이 줄지는 않는다는 생각이 든다.

 

 매달 꽤 많은 금액을 연금도 붓고 투자도 하지만 재수하는데 들어가는 돈이 만만치 않기 때문에, 연초에 대대적으로 ETF 정리하고 줄여놨던 마통이 2천만원 가까이 올라왔다. 아내도 간호조무사 학원 다니면서 돈이 꽤 들어갔고 혼자 벌어서 5명을 부양하다보니 어쩔 수 없는 상황이었다. 덕분에 차를 바꾼다고 노래를 불렀지만 아직도 바꾸지를 못하고 있다. 큰애는 군대 들어갔고 아마 둘째가 군대를 갈 때쯤이면 큰애가 전역할 것 같다. 지금 보니까 그때가 되면 셋째도 재수 안하면 대학생일 것 같다. 계약직으로 다니는 회사에서는 대학교 학자금을 지원해주기 때문에 아이들 졸업할 때까지는 다녀야 할텐데 모르겠다.

 

 회사에서 자리를 잡으려면 매일매일 조금씩 머신러닝, 딥러닝 관련해서 공부를 해야 하는데 그게 쉽지가 않다. 앞으로도 지치지 말고 열심히 살아야겠다.

반응형

'내 이야기' 카테고리의 다른 글

피곤한데 잠이 안오네  (0) 2024.09.28
난 어떻게 살아야 할까?  (0) 2024.09.26
번아웃이 올려나  (2) 2024.09.13
맥북에어 M1 재사용 시작합니다.  (0) 2024.09.06
난 ENTJ  (3) 2024.09.03

+ Recent posts