brunch

You can make anything
by writing

C.S.Lewis

by 루퍼트 Aug 01. 2016

5. 로지스틱 회귀

도서 | 데이터과학 입문 요약

데이터과학 입문의 도서를 공부하며 정리하는 글입니다.

개인적인 견해는 들어가지 않습니다.


분류는?

데이터포인트를 정해진 분류명 집합이나 해당 분류명에 속할 확률이 있는것에 mapping 하는것.


언제 분류작업을 할까?

분류기의 질문과 답변의 예

“이 광고를 누군가가 클릭할 것인가?” -> 0 또는 1

“이것은 무슨 숫자인가(이미지 인식)”  -> 0,1,2,...

“이 기사의 카테고리는 무엇인가?” -> 스포츠

이것은 스팸인가? -> 0 또는 1

이것은 두통약인가? -> 0 또는 1



분류의 결정

1. 어떤 분류기를 사용할 것인가

2. 어떤 최적화 방법을 택할 것인가

3. 어떤 손실함수를 최소화할 것인가

4. 데이터에서 어떤 특징들을 추출할 것인가

5. 어떤 척도를 사용할 것인가



분류기 사용의 제약조건

1. 실행시간

    - 분류를 통한 여러 종류의 산출물 결과가 필요하다면 산출물을 내기까지의 실행시간이 매우 오래걸린다.

    - kNN같은 알고리즘은 실행시간이 오래걸린다.

    - 반면, 선형모형은 매우 빠르고 수행 도중에 업데이트도 가능하다. 선형모형이 완성되면 계수벡터만 두고, y=x형태에 맞춘 결과만 내면 되기때문이다.


2. 데이터과학자

    - 데이터과학자가 모든 알고리즘의 전문가는 아닐수 있다.

    - 그렇기에, 알고리즘이 데이터에 적절하도록 부분수정한 결과 과적합을 만들어 버리는 경우가 있다.

    - 이에따라, 데이터과학자에 의해 특정 분류기를 사용하지 못할지도 모른다.


3. 해석가능성

    - 비즈니스를 위해 모형을 이해할 수 있어야 한다.

    - 의사결정나무는 이해하기 쉽지만, 랜덤 포리스트는 그렇지 않다.

    - 비즈니스적으로 "어떤 모형"을 설명, 이해시키기 위해서는 누구나 이해하기 쉬운 방법을 사용하는 것이 좋다.


4. 확장성

    - 확장성을 고려할때 명심해야할 것들이 있다.

    - 학습시간 : 모형을 훈련하는데 걸리는 시간은?

    - 평가시간 : 모형이 완성되고 나서 "새 사용자"를 평가하는 데 시간이 얼마나 걸리나?

    - 모형의 저장공간 : 모형은 얼마만큼의 메모리를 사용하는가?




로지스틱 회귀의 수학적 배경

로지스틱 회귀의 장점 -> 0 ~ 1 사이의 결과값이 나오기 때문에 확률값으로 해석할 수 있다.

이 0 ~ 1 사이의 한정된 값으로 변환해 주는 함수가 필요한데,  inverse-logit(역로직) 함수 가 예시가 될 수 있다.


역로직 함수


t 값이 크면 e^(-t)는 매우 작아져서 분모는 1에 수렴, 결과값은 1에 근접함

반대로 t가 커지면 분모가 커져서 결과값은 0에 수렴


c_(i) 는 클래스의 분류명 (클릭인가 아닌가) / x_(i)는 사용자 i의 특징벡터


데이터를 모형화하기 위해 (데이터, 클릭확률) 간의 관계를 표현할 일반적인 함수를 정의한 것이다.

c_(i)는 0 | 1 의 값만 취할 수 있기에 좌 우측 수식은 0, 1임에 따라 한쪽이 사라지는 식이다.


이 수식을 선형모형으로 만들기 위해 승산비(odds ratio)의 로그값을 취한다.

c_(i)가 1일때 의 승산비의 로그값 결과

이렇게 나온 수식으로 보아 확률과 선형성을 서로 바꾸어 사용할 수 있다는 점을 알아볼 수 있었다.

따라서, 사용자 i가 신발광고를 클릭할 확률의 logit 은 i의 특징들 모형(선형함수 모형)이 되었다.

이 모형을 로지스틱 회귀모형이라 함.


모수 α 는 기저율(baserate)이라 함. 사용자벡터값(x_(i))에 대해서 모를때 1일 확률이다. 그리고 이 확률은 보통 1% 대이다.

이 기저율 외 특정상황의 정보가 없다면 평균 예측은 α만으로 해야한다.

β는 logit 함수의 기울기를 나타낸다.



피드백 루프

사용자의 클릭 확률에 의거하여 광고 항목의 순위를 정하기 위해 로지스틱 회귀를 상품화 할 때를 생각해보자.

탈취제 광고 위에 헤어젤 광고를 배치하면 헤어젤을 클릭하는 사람이 많을 것인데, 이것은 헤어젤 광고를 위에 배치했기 때문인가?

헤어젤을 원하는 사람이 더 많기 때문인가?

이 문제의 한 가지 방법은 항상 광고를 본 위치나 순위를 기록해서 알고리즘의 예측변수의 하나로 포함시키는 것이다.

그렇게, 클릭확률을 광고의 위치, 높이, 브랜드 등의 특징 함수로 모형화할 수 있다.

이 모든 것을 한 두 문단으로 이 모든 내용을 설명하기는 부족하다.



A/B 검정 ( AB 테스트)

우리가 모형을 만들고 평가 척도에 대해 최적화 하지만 실제 사용시 어느 알고리즘이 수익을 최대화 시켜주는지 알기 어려움으로 A/B 테스트를 하길 권한다.

즉, 사용자 집합을 나누어 한 집합에는 한가지 버전의 알고리즘을 적용. 다른 집합에는 다른 버전의 알고리즘을 적용해 보아, 총 수익 또는 1인당 수익 등의 척도를 비교하는 것이다.



매거진의 이전글 4. 스팸필터, 나이브베이즈, 경합
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari