분류 전체보기 75

[머신러닝 코세라 강의] (2주차) "Cost function 의 벡터 표현" Machine Learning (by Andrew Ng)

2주차 테스트를 풀고, 프로그래밍 과제도 완료하였습니다. 프로그래밍 과제는 매트랩이나 옥타브로 하는데, 저는 매트랩으로 수행하였습니다. 홈페이지에서 토큰을 생성해주는데, 매트랩에서 코드를 시행하고 "submit" 을 창에 입력하면 이메일과 토큰을 입력하라고 합니다. 생각보다 체계적이어서 신선했습니다. 프로그래밍 과제는 cost function 과 gradient descent 를 함수 코드에 직접 생성하는 것인데, 수식 이해에 도움이 됩니다. 과제를 풀다가 추가할 수식/프로그램 코드가 있어서 내용을 추가합니다. Cost function cost function 수식입니다. 이전 링크에서 gradient scent 수식의 매트릭스 형태는 작성하였는데, cost function 은 직접적으로 다루지 않은 것..

머신 러닝 2022.05.29

[머신러닝 코세라 강의] (2주차) "Gradient Descent 벡터 표현" Machine Learning (by Andrew Ng)

Andrew Ng 교수님의 Coursera 머신 러닝 수업 중 Octave 를 사용하는 튜토리얼 내용을 정리중이다. 오늘은 다른 프로그래밍 언어에서도 참고할만한 vectorization 개념과 Octave 코드에 대해서 다루어보도록 하겠다. 파이썬 코드는 다음 포스팅에 마련해두어야겠다. Octave 관련 내용 목차: (1) Basic Operations (2) Moving Data Around (3) Computing Data (4) Plotting Data (5) Control Statements: for, while, if statement [Octave 관련 이전 포스팅, (1-5) 바로가기 링크] (6) Vectorization (이번 포스트) (6) Vectorization (numerical)..

머신 러닝 2022.05.29

[머신러닝 코세라 강의] (2주차) "Cost Function & Gradient Descent" Machine Learning (by Andrew Ng)

2주차 Machine Learning (by Andrew Ng) 교수님의 Coursera 강의의 중요 내용을 요약하고, 관련 알고리즘을 직접 파이썬으로 생성해보았습니다. 관련 ipython 코드는 구글 colab 링크에 담아두었습니다. 가설: $h_{\theta} (x) = \theta_0 + \theta_1 x$ 에서 $\theta_0, \theta_1$ 을 선택합니다. 이 때, cost function 인 $J(\theta_0, \theta_1) = \frac{1}{m} \sum_{i=1}^m \Big( h_\theta (x_i )- y_i \Big)^2$ 을 최소화하는 $\theta_0, \theta_1$ 을 찾습니다. $$\min_{\theta_0, \theta_1} \frac{1}{m} \sum..

머신 러닝 2022.05.26

[책 A/B 테스트] (Ch04) "실험 플랫폼과 문화" Trustworthy Online Controlled Experiments

Ch04 Experimentation Platform and Culture 요약 회사의 성장에 따라서 실험의 크기도 달라집니다. 초기에는 1년에 10번 미만의 실험을 하지만, 회사가 성장할 수록 더 많은 실험을 진행할 수 있습니다. 회사 내부에서 실험 플랫폼을 제작할 수도 있으나 따로 외부의 툴을 빌려올 수도 있습니다. 여러 실험들이 동시에 진행될 때 발생하는 문제를 최소화하는 다양한 방법들이 존재합니다. 회사에서는 실험의 결과를 구성원들이 쉽게 결과할 수 있도록 시각화된 결과물을 제공할 필요가 있습니다. 어려운 개념이나 궁금했던 내용? 여러 실험들이 동시에 진행될 때 발생하는 문제들을 해결(또는 최소화)하는 내용들이 잘 이해가 되지 않습니다. 실무 MVP 만 있는 초기 스타트업(또는 사이드 프로젝트 단..

Peeking at p-values 문제 (AB 테스팅)

Dashboard 에 AB 테스팅의 결과가 실시간으로 들어온다고 해봅시다. 실험이 좋지 않은 결과를 보이거나 충분히 좋은 결과를 보일 때, 실험을 멈춰도 괜찮을까요? 실험의 진행 시간이 늘어남에 따라서 비용이 증가하기 때문에, 실무에서는 실험을 일찍 멈추고 싶은 유인이 있습니다. 하지만, 실험의 통계적 유의성을 나타내는 지표인 p-value 가 원하는 alpha 값 이하일 때, 이를 멈추면 문제가 발생합니다. 제가 참고한 논문인 Johari et al. (2017, KDD) 의 "Peeking at A/B Test" 에서 이러한 상황이 문제가 되는 경우를 시뮬레이션을 통해서 보여줍니다. 논문의 figure 2 는 이러한 문제가 발생하는 상황을 보여줍니다. 100명이 AA test 를 하고, 최대 방문자수..

[책 A/B 테스트] (Ch03) "실험 중 통계적 오류" Trustworthy Online Controlled Experiments

Ch03 Twyman’s Law and Experimentation Trustworthiness 요약 지나치게 좋은 통계적 결과는 오류에 기반할 가능성이 큽니다. 우선, 통계치를 잘못 해석할 위험이 있습니다. 예를 들어, p-value 를 부정확하게 해석하거나 통계적으로 유의한 결과만 선택하거나, 많은 테스트를 통해서 확률적으로 유의한 결과를 찾는 경우입니다. SUTVA가 성립하는가, Treatment 그룹에서 유저를 어디로 redirect 하는가, 실험과 관련된 백엔드의 성능이 변하는가에 따라서 internal validity 에 문제가 발생할 수 있습니다. 실험 과정에서 특정 그룹이 과다 샘플링 된다면, 분석을 일반화하기 어려운 external validity 문제가 발생할 수 있습니다. Treatm..

[데이터과학 코세라 강의] (1주차) 파이썬을 이용한 머신러닝

(1주차) 파이썬 라이브러리를 이용해서 머신 러닝 모델을 실행한다. 이를 통해서 결과를 예측하거나 그룹을 나누거나 추천 시스템을 만든다. regression, classification, clustering, scikit learn, scipy. + anomaly detection, sequence mining, dimension reduction (PCA), recommendation systems. 파이썬 라이브러리: numpy (계산), scipy (optimization, statistics 등), matplotlib (시각화), pandas, scikit-learn (ML) scikit-earn: clssification, regression, clustering algorithms (with ..

머신 러닝 2022.05.22

[데이터과학 코세라 강의] (4주차) 데이터 과학을 위한 파이썬

드디어 4주차이다. 4주차에서는 - Reading Files with Open - Pandas - Numpy in Python 을 공부한다. Reading Files with Open 시작하기 전에, 구글 드라이브와 구글 colab 을 연동하는 방법을 해봐야겠다. External data: Local Files, Drive, Sheets, and Cloud Storage 링크를 참고했다. from google.colab import drive drive.mount('/content/drive') 를 시행하면, Mounted at /content/drive 라고 확인이 된다. 테스트로 다음 코드를 시행해보자. with open('/content/drive/My Drive/foo.txt', 'w') as f..

머신 러닝 2022.05.21

[데이터과학 코세라 강의] (3주차-2) 데이터 과학을 위한 파이썬

3주차에서는 다음 5가지 주제를 하는데, 이번 포스팅에서는 나머지 2가지에 대해서 적어보겠다. - Conditions and Branching - Loops - Functions - Exception Handling - Objects and Classes 구글 colab ipython 링크에 3주차 내용을 수록해두었다. Exception Handling 예: 문자만 넣어야 하는데 숫자를 넣는 경우, 파일을 열고자 하는데 실패하는 경우. try: ... except IOError: ... else: ... ZeroDivisionError, NameError, IndexError Exception Handling x=2 try: y=int(input("number you want to divide by x"..

머신 러닝 2022.05.21

[데이터과학 코세라 강의] (3주차-1) 데이터 과학을 위한 파이썬

3주차에서는 다음 5가지 주제를 하는데, 이번 포스팅에서는 처음 3가지에 대해서 적어보겠다. - Conditions and Branching - Loops - Functions - Exception Handling - Objects and Classes 구글 colab ipython 링크에 3주차 내용을 수록해두었다. Conditions and Branching Conditions x=6, y=7 을 정한 후 x==y 를 입력하면 False 가 출력된다. x < y 를 입력하면 True 가 출력된다. x!=y 를 입력하면 True 가 출력된다. "Ed Sheeren"=="Justin Bieber" 는 False 를 출력하고 "Ed Sheeren" != "Justin Bieber"는 True 를 출력한다...

머신 러닝 2022.05.20