도서 | 데이터과학 입문 요약
데이터과학 입문의 도서를 공부하며 정리하는 글입니다.
개인적인 견해는 들어가지 않습니다.
데이터포인트를 정해진 분류명 집합이나 해당 분류명에 속할 확률이 있는것에 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)는 0 | 1 의 값만 취할 수 있기에 좌 우측 수식은 0, 1임에 따라 한쪽이 사라지는 식이다.
이 수식을 선형모형으로 만들기 위해 승산비(odds ratio)의 로그값을 취한다.
이렇게 나온 수식으로 보아 확률과 선형성을 서로 바꾸어 사용할 수 있다는 점을 알아볼 수 있었다.
따라서, 사용자 i가 신발광고를 클릭할 확률의 logit 은 i의 특징들 모형(선형함수 모형)이 되었다.
이 모형을 로지스틱 회귀모형이라 함.
모수 α 는 기저율(baserate)이라 함. 사용자벡터값(x_(i))에 대해서 모를때 1일 확률이다. 그리고 이 확률은 보통 1% 대이다.
이 기저율 외 특정상황의 정보가 없다면 평균 예측은 α만으로 해야한다.
β는 logit 함수의 기울기를 나타낸다.
사용자의 클릭 확률에 의거하여 광고 항목의 순위를 정하기 위해 로지스틱 회귀를 상품화 할 때를 생각해보자.
탈취제 광고 위에 헤어젤 광고를 배치하면 헤어젤을 클릭하는 사람이 많을 것인데, 이것은 헤어젤 광고를 위에 배치했기 때문인가?
헤어젤을 원하는 사람이 더 많기 때문인가?
이 문제의 한 가지 방법은 항상 광고를 본 위치나 순위를 기록해서 알고리즘의 예측변수의 하나로 포함시키는 것이다.
그렇게, 클릭확률을 광고의 위치, 높이, 브랜드 등의 특징 함수로 모형화할 수 있다.
이 모든 것을 한 두 문단으로 이 모든 내용을 설명하기는 부족하다.
우리가 모형을 만들고 평가 척도에 대해 최적화 하지만 실제 사용시 어느 알고리즘이 수익을 최대화 시켜주는지 알기 어려움으로 A/B 테스트를 하길 권한다.
즉, 사용자 집합을 나누어 한 집합에는 한가지 버전의 알고리즘을 적용. 다른 집합에는 다른 버전의 알고리즘을 적용해 보아, 총 수익 또는 1인당 수익 등의 척도를 비교하는 것이다.