본문 바로가기

Study

(43)
Analytics | AARRR Funnel Funnel 분석이란? 퍼널 분석은 고객 분석을 위한 하나의 마케팅 전략이다. 고객이 유입되고 전환에 이르기까지 주요 단계를 수치로 확인하는 분석 방법이다. 역삼각형의 깔때기 모양이 아래로 갈수록 매우 좁아지는 것처럼, 유져들도 웹페이지를 보는 시간이 길어질수록 점점 흥미를 잃고 해당 서비스를 나가버린다. 여기서 유져들이 나가는 시점은 동일하지 않고 일정 부분에 몰려 있을 수도 있는데, 그렇다면 그 부분이 어디인지를 집중적으로 관찰해본다면 왜 사람들이 거기서 나가는지에 대한 실마리를 얻을 수 있다. 또한 이런 과정에서 서비스 취약 단계를 파악할 수 있기 때문에 고객 경험을 개선하는 데 유용하게 활용되는 방법이다. 보통은 이 사람들이 나가는 것의 비율을 '이탈률'이라고 부르고 이 이탈률이 높은 시점을 집중..
Python | K-NN vs. K-Means 문득 K-NN과 K-Means 모델 중, 어떤 모델이 어떨 때 쓰이는 게 좋을지가 궁금해서 쓰게 된 글. 그림과 같이 지도 학습, 비지도 학습이라는 가장 큰 차이가 있다. 지도학습이란, 정답이 있는 데이터를 활용해 기계를 학습시키는 방법 대표적으로 분류, 회귀 문제를 다룬다. 비지도학습은 지도학습과 달리 정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화하여 새로운 데이터에 대한 결과를 예측하는 방법 대표적으로 클러스터링 문제를 다룬다. KNN 란? K Neighbor Nearest이라는 뜻으로 최근접 이웃법으로 분류 문제에 사용되는 알고리즘이다. 새로운 데이터가 들어왔을 때 기존 데이터의 그룹 중 어떤 그룹에 속하는지 분류하게 되는데, 특정공간 내에서 입력과 제일 근접한 k개의 요소를 찾아, 더 많이 일..
Python | 의사결정나무의 파라미터 1. criterion entropy 랜덤 변수에 대한 정보를 계산하는 것을 '정보 엔트로피' 또는 '엔트로피'라고 함 각 사건의 확률에 대한 로그에 각 사건의 확률을 곱한 값의 합계의 음수 0.0 ~ 1.0 사이의 값 1개의 클래스만 구성되어 있으면(100%의 순도) 0, 2개의 클래스가 같은 비율로(50:50)로 섞여 있으면 1.0 gini(지니계수) 집합에 이질적인 것이 얼마나 섞였는지를 측정하는 지표 0.0 ~ 0.5 사이의 값 100% 순수한 노드로 구성되어 있으면 0, 클래스별로 균등하게 분포되어 있으면(50:50) 0.5 로그를 계산할 필요가 없어서 엔트로피보다 구현 성능이 좀 더 우수함 #주사위 던지기의 엔트로피 계산 from math import log2 #경우의 수 n = 6 #확률 ..
Python | 의사결정나무 Decision Tree 의사결정나무란? 입력값에 대한 예측값을 나무 형태로 나타내주는 모형으로, 분류와 추정을 수행하는 분석 방법이다. 의사결정나무 모형 일련의 독립변수들을 활용하여 분류를 하거나 예측을 수행하는 기법 최종 결과물이 '일련의 규칙들'로 표현됨 Decision Trees 또는 Trees라고 불림 의사결정나무의 적용 분야 의사결정나무는 분류 또는 예측을 목적으로 하는 어떤 경우에도 사용 가능 분석의 정확도보다는 분석과정의 설명이 필요한 경우에 더 유용하게 사용 의사결정나무의 2가지 기본 아이디어 1. 반복적 분할(Recursive partitioning) 목표변수 측면에서 부모 노드보다 더 순수도(purity)가 높은 자식 노드들이 되도록 데이터를 반복적으로 분할 레코드들을 두 부분으로 반복해서 잘라 세분된 영역 ..
GitHub | 여러계정 이용하기 1. ssh key 생성 홈 경로에서 .ssh 디렉토리 생성 및 이동 ssh-keygen -t rsa -C [github 이메일 계정] -f [생성될 key 파일명] 형식으로 계정 별 키를 생성 2. config 파일 생성 .ssh 디렉토리 위치에서 config.txt파일 생성 # 개인 계정 Host github.com-[계정1] HostName github.com User [계정1 이메일] IdentityFile ~/.ssh/[계정1 key 파일명] # 회사 계정 Host github.com-[계정2] HostName github.com User [계정2 이메일] IdentityFile ~/.ssh/[계정2 key 파일명] 위 텍스트처럼 입력 후 저장 3. ssh agent 등록 ssh-add -K ~..
GitHub | 원격저장소와 동기화 1. 원격저장소 지역저장소는 상대적 의미가 담긴다. local에서 작업하여 그 곳에 commit을 하는 형식인데, 이러한 지역저장소와 연결되어 동기화 되는 저장소를 바로 원격저장소라고 칭한다. 원격저장소는 인터넷을 통해 서로 다른 컴퓨터와 연결 될 수 있어서 백업과 협업에 용이하게 사용될 수 있다. git init --bare [원격저장소이름] 위 명령어로 원격저장소를 생성한다. 원격저장소는 작업용이 아닌 저장소로써의 기능만을 수행하게된다. 때문에 원격저장소의 수정이 불가능하도록 --bare 라는 명령어와 함께 생성을 하도록 한다. git [원격저장소이름] add [경로 alias] [원격저장소 경로] //지역저장소 위치에서, 원격저장소의 경로를 alias를 통해 접근할 수 있도록 저장 git [원격저장..
Python | 회귀분석 회귀분석이란 독립변수(X)와 종속변수(Y)의 관계식을 구하는 기법 종속변수들에 영향을 주는 독립변수들을 찾고, 독립변수들과 종속변수들과의 관계를 나타내는 모델을 만드는 것 데이터 수집 > 모델 적합 > 모델 평가 의 과정을 거친다. 독립변수, 즉 예측변수들을 수집하여 모델링하고 종속변수, 즉 결과변수로 평가하는 일련의 과정을 거친다. 이때, 종속변수(결과변수)는 연속형 숫자 값 추정 회귀식 변수들 간의 분포 그래프에서 흩어져 있는 잔차들을 대표하는 선 (오류 값을 가장 최소화한 선) RSS(잔차제곱의 합)을 최소화 한 직선 잔차 = 샘플의 관측값 - 예측값 회귀계수 머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것 회귀계수에 따라 회귀모델이 ..
Python | 데이터 전처리 1. 결측값 처리 너무 많은 항목이 비어 있는 변수나 너무 많은 항목이 비어 있는 레코드는 그 자체를 삭제 기타 나머지 항목에 대해서는 일반적으로 다음과 같은 값으로 대체 평균값 : 값들의 평균치 중앙값 : 값들 범위 내에 중앙에 위치한 값 최빈값 : 가장 많이 나타내지는 값 예제 결측치 확인 df.isnull() pandas 를 통해 dataFrame 형식으로 csv 파일을 읽어들인 후 해당 df의 null값을 확인한다. msno.bar(df) / msno.matrix(df) missingno를 통해 결측치를 시각화 할 수 있다. 결측치 처리 결측치 제거 - df.dropna() axis=1 열 방향 제거 / axis=0 행 방향 제거 thresh=n n개 미만 결측치 존재시 제거 결측치 대체 fill..