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

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

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

반응형

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

투자를 어떻게 해야 하는가?  (9) 2024.12.06
산다는 건 다 그런거 아니겠니?  (1) 2024.11.10
좀 쉬고 싶은데  (1) 2024.10.05
피곤한데 잠이 안오네  (0) 2024.09.28
난 어떻게 살아야 할까?  (0) 2024.09.26

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

반응형

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

산다는 건 다 그런거 아니겠니?  (1) 2024.11.10
퇴물이 된 느낌.  (1) 2024.10.10
피곤한데 잠이 안오네  (0) 2024.09.28
난 어떻게 살아야 할까?  (0) 2024.09.26
둘째 재수학원 마지막 학원비 납부 완료  (3) 2024.09.23

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

반응형

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

퇴물이 된 느낌.  (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 재사용 시작합니다.  (1) 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 재사용 시작합니다.  (1) 2024.09.06
난 ENTJ  (3) 2024.09.03

고객이 앱에서 페이지 방문 패턴을 시각화하는 방법을 한국어로 설명드릴게요.

### 1. **데이터 수집 및 준비**
   - **데이터 로깅**: 사용자의 페이지 방문, 타임스탬프, 사용자 ID, 세션 ID, 페이지 체류 시간 등과 같은 중요한 상호작용 데이터를 기록해야 합니다.
   - **데이터 정리**: 각 세션을 사용자가 방문한 페이지 순서와 타임스탬프로 정리하여 사용자 경로를 명확히 파악할 수 있도록 합니다.

### 2. **주요 시각화 기법**

   #### a. **Sankey 다이어그램 (흐름 차트)**
   - **목적**: 고객이 앱에서 각 페이지 간 어떻게 이동하는지를 보여줍니다. 첫 번째로 방문한 페이지와 이후에 어떻게 이동했는지, 이탈하는 지점을 확인할 수 있습니다.
   - **도구**: D3.js, Plotly (Python), Power BI 등에서 Sankey 다이어그램을 만들 수 있습니다.
   - **예시**: 사용자가 첫 페이지에서 두 번째 페이지로 얼마나 이동했는지, 특정 페이지에서 많이 이탈하는지 등을 보여줍니다.

   #### b. **히트맵 (Heatmap)**
   - **목적**: 특정 페이지 내에서 사용자가 가장 많이 상호작용하는 부분을 색상으로 시각화합니다. 예를 들어, 버튼 클릭이나 스크롤 등 특정 요소의 사용 빈도를 볼 수 있습니다.
   - **도구**: Google Analytics, Hotjar 같은 도구를 사용하거나, Matplotlib와 Seaborn 같은 라이브러리로 직접 히트맵을 만들 수 있습니다.
   - **예시**: 사용자들이 특정 페이지에서 가장 많이 클릭하는 영역을 시각화하여 중요한 행동을 분석할 수 있습니다.

   #### c. **순차 패턴 분석 (Sequential Pattern Analysis)**
   - **목적**: 사용자가 앱에서 페이지를 방문하는 순서를 분석하고, 자주 발생하는 패턴을 찾아냅니다. 이를 통해 사용자가 주로 어떤 경로로 앱을 사용하는지 파악할 수 있습니다.
   - **도구**: Markov Chain 모델이나 Python의 `mlxtend` 라이브러리를 사용해 분석할 수 있습니다.
   - **예시**: 사용자가 홈 페이지 → 제품 페이지 → 결제 페이지로 이동하는 빈도를 분석할 수 있습니다.

### 3. **실행 방법**
   - 데이터를 적절히 정리한 후, 위에 언급된 시각화 도구와 기법을 사용하여 고객의 앱 내 페이지 방문 패턴을 시각화할 수 있습니다. 
   - 이러한 시각화는 고객의 이동 경로, 이탈 지점, 주요 상호작용 포인트를 명확히 보여주어 UX 개선이나 마케팅 전략에 중요한 인사이트를 제공합니다.

이해가 쉽게 되었나요? 추가로 궁금한 부분이 있으면 알려주세요!

순차 패턴 분석(Sequential Pattern Analysis)은 사용자가 특정 순서대로 어떤 페이지를 방문하는지 분석하는 데 유용합니다. 파이썬에서는 `mlxtend` 라이브러리를 사용하여 간단한 연관 규칙 기반의 순차 패턴 분석을 수행할 수 있습니다. 여기서는 **Markov Chain 모델**을 기반으로 하는 순차 패턴 분석의 예제를 살펴보겠습니다.

### 1. **설치**
먼저 필요한 라이브러리를 설치해야 합니다:

```bash
pip install mlxtend
```

### 2. **데이터 준비**
사용자 세션 데이터를 리스트로 정리해봅니다. 각 사용자가 페이지를 방문한 순서에 따라 데이터를 정리해야 합니다.

#### 예시 데이터 (사용자 ID별 페이지 방문 순서):
```python
# 예제: 사용자별 페이지 방문 기록
sessions = [
    ['home', 'product', 'cart', 'checkout'],  # 세션 1
    ['home', 'search', 'product', 'checkout'],  # 세션 2
    ['home', 'product', 'checkout'],  # 세션 3
    ['home', 'search', 'product'],  # 세션 4
    ['product', 'cart', 'checkout'],  # 세션 5
    ['home', 'cart', 'checkout'],  # 세션 6
]
```

### 3. **순차 패턴 분석: Markov Chain**
Markov Chain 모델은 사용자가 현재 상태에서 다음 상태로 이동할 확률을 계산하는 데 적합합니다. 여기서는 각 페이지에서 다른 페이지로 이동할 확률을 계산하는 예제를 살펴봅니다.

#### 단계별로 수행되는 과정:

```python
import pandas as pd
from collections import defaultdict

# 데이터: 사용자 방문 기록
sessions = [
    ['home', 'product', 'cart', 'checkout'],
    ['home', 'search', 'product', 'checkout'],
    ['home', 'product', 'checkout'],
    ['home', 'search', 'product'],
    ['product', 'cart', 'checkout'],
    ['home', 'cart', 'checkout'],
]

# 페이지 전환 횟수 계산
transitions = defaultdict(lambda: defaultdict(int))

for session in sessions:
    for i in range(len(session) - 1):
        current_page = session[i]
        next_page = session[i + 1]
        transitions[current_page][next_page] += 1

# 전환 확률 계산
transition_probabilities = defaultdict(dict)

for current_page, next_pages in transitions.items():
    total_visits = sum(next_pages.values())
    for next_page, count in next_pages.items():
        transition_probabilities[current_page][next_page] = count / total_visits

# 결과 출력
df = pd.DataFrame(transition_probabilities).fillna(0)
print(df)
```

### 4. **결과 분석**
이 코드는 각 페이지에서 다른 페이지로 이동할 확률을 계산합니다. 예를 들어, 사용자가 'home'에서 'product'로 이동할 확률과 'home'에서 'search'로 이동할 확률을 보여줍니다.

#### 예시 출력:

```
           cart  checkout  product  search
cart        0.0      1.00     0.00    0.00
checkout    0.0      0.00     0.00    0.00
home        0.2      0.00     0.60    0.20
product     0.5      0.50     0.00    0.00
search      0.0      0.00     1.00    0.00
```

#### 해석:
- `home` 페이지에서 `product`로 이동할 확률은 60%, `search`로 이동할 확률은 20%입니다.
- `product`에서 `checkout`으로 이동할 확률은 50%, `cart`로 이동할 확률은 50%입니다.

### 5. **시각화 (선택 사항)**
Markov Chain 모델을 시각화하기 위해 네트워크 그래프를 그릴 수 있습니다.

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

# 그래프 생성
G = nx.DiGraph()

# 엣지 추가 (페이지 간 확률 기반)
for current_page, next_pages in transition_probabilities.items():
    for next_page, prob in next_pages.items():
        G.add_edge(current_page, next_page, weight=prob)

# 시각화
pos = nx.spring_layout(G)
edges = G.edges(data=True)
weights = [edge[2]['weight'] for edge in edges]

nx.draw(G, pos, with_labels=True, node_size=3000, node_color='skyblue', font_size=10, width=weights)
plt.show()
```

이 코드를 실행하면 페이지 간 이동 확률을 시각화한 네트워크 그래프가 표시됩니다. 각 페이지는 노드로 표현되고, 이동할 확률은 엣지의 두께로 표시됩니다.

### 결론
위 코드를 통해 사용자가 앱 내에서 어떻게 페이지를 이동하는지, 어떤 페이지 간 이동이 자주 발생하는지 파악할 수 있습니다. 이를 통해 이탈 지점을 분석하거나, 주요 페이지 경로를 최적화할 수 있습니다.

 

 

 

반응형

'Python, PySpark' 카테고리의 다른 글

networkx - sql과 함께  (0) 2024.10.24
Python networkx  (1) 2024.10.10
PCA와 PLS 차이점(챗지피티 설명)  (0) 2024.09.21
파이토치 CNN 분석  (2) 2024.08.28
Jupyterlab에서 텍스트 파일 미리보기(encoding='euc-kr')  (0) 2024.07.15

+ Recent posts