# 컨퓨전 매트릭스에서 True/False는 컴퓨터의 판단이 옳았냐 틀렸냐를 의미함.
Positive/Negative는 컴퓨터가 추측한 값이 1이냐 0이냐를 의미함


TP의 경우 1라고 예측했고 그 행동이 True(올바른 판단) 즉, 실제 값은 1임

TN의 경우 0라고 예측했고 그 행동이 True(올바른 판단) 즉, 실제 값은 0임

FP의 경우 1라고 예측했고 그 행동이 False(잘못된 판단) 즉, 실제 값은 0임

FN의 경우 0라고 예측했고 그 행동이 False(잘못된 판단) 즉, 실제 값은 1임


- Precision:      TP / TP+FP

     -> 즉, 컴퓨터가 1이라고 예측한 것 중 실제 값이 1인 것

    (1에 가까울수록 좋다)


- Recall:      TP / TP+FN

     -> 즉, 실제 값이 1인 것 중 컴퓨터가 1이라고 예측한 것

    (1에 가까울수록 좋다)


- Accuracy:     TP + TN / TP+TN+FP+FN

     -> 즉, 전체 경우의 수 중에서 True로 행동한 비율

    (1에 가까울수록 좋다)


- Average Precision: Precision-Recall curve에서 밑면적의 넓이를 계산한 것.
* 주의: AUC와 개념적으로 거의 동일하고, 다만 차이점은 x축과 y축이 조금 다를 뿐임.

마찬가지로 threshold를 바꿈에 따라 변하는 Precision과 Recall의 값을 그래프로 그리고, 이것의 밑넓이를 적분해서 구한것이다.

- Mean Average Precision: AP를 모든 class에 대해서 계산한다음, 그것을 전체 평균낸 것.


https://stats.stackexchange.com/questions/260430/average-precision-in-object-detection
http://darkpgmr.tistory.com/162

https://en.wikipedia.org/wiki/Information_retrieval#Mean_average_precision
https://www.kaggle.com/wiki/MeanAveragePrecision

http://enginius.tistory.com/374



신고

'연구 > Machine Learning' 카테고리의 다른 글

Precision Recall AveragePrecision  (0) 2017.05.31
Jupyter Notebook 5.0  (0) 2017.05.23
Coefficient of Determination(결정계수)  (0) 2017.05.22
Computer Vision Techniques  (0) 2017.03.15
Decision Tree 계열 알고리즘  (0) 2017.02.13
TensorFlow Extreme Performance Tuning  (0) 2017.01.20
by 곽동현 이스텔리앙 2017.05.31 20:28


# Jupyter와 IPython의 관계:
원래는 Jupyter와 IPython은 하나의 프로젝트 였음. 근데 notebook이 엄청 흥하면서 점차 프로젝트의 규모가 커졌음.

이에 Python이 아닌 다른 언어를 지원하기시작하고 더 잦은 업데이트가 필요한데 규모가 너무커서 힘들었음.

그래서 3.0버전까지는 하나의 통합된 IPython만 존재했는데, 이제부터는 쪼개서 jupyter라는 거대한 통합 플렛폼안에

IPython이 들어가는 형식으로 쪼갰음.
http://blog.jupyter.org/2015/04/15/the-big-split/


현재 최신 jupyter notebook은 5.0 버전임.
https://github.com/jupyter/notebook/releases


그리고 이제 기존에 쓰던 IPython은 그냥 내부 파이썬 커널이되었음.
따라서 이제는 jupyter notebook 이라고 불러야함!
http://jupyter-notebook.readthedocs.io/en/latest/



- 설치방법
pip install --upgrade pip

pip install --user notebook

jupyter notebook
(위 명령어에서 에러가 생기면 pip install setuptools==33.1.1 을 실행)

이렇게해서 실행하면, 바로 putty창에 있는 로컬 웹브라우저로 notebook이 실행됨.


- 실행방법
실제로 유용한 퍼블릭 웹서버로 하려면 다음으로해야함

python
from notebook.auth import passwd
passwd()
(Enter password:)
(Verify password:)

출력 예시 --> Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
(여기서 작은따옴표 안의 내용을 복사한다.)

jupyter notebook --generate-config
vim ~/.jupyter/jupyter_notebook_config.py

(그다음 vim에서 /password 을 입력하여 #c.NotebookApp.password = 이라는 부분을 찾고, 우측부분에 아까 복사해둔 내용을 붙여넣기하고 #으로 된 주석을 제거한다.)

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999

(마찬가지로 위의 3가지 항목도 위와 같이 바꿔준다. 이때 포트번호는 9999대신 다른것을 써도된다.)

그리고나서 다시 다음 명령어를 실행한다

jupyter notebook


그러면 이제 웹서버가 실행이 되었고, 해당 리눅스 서버의 ip:8888로 접속할 수 있다.

* 추가로 screen을 이용해서 백그라운드에서 notebook서버를 돌리는 것과 포트포워딩을 통한 외부망 접속등이 필요할 수가 있다.

http://jupyter-notebook.readthedocs.io/en/latest/public_server.html



신고

'연구 > Machine Learning' 카테고리의 다른 글

Precision Recall AveragePrecision  (0) 2017.05.31
Jupyter Notebook 5.0  (0) 2017.05.23
Coefficient of Determination(결정계수)  (0) 2017.05.22
Computer Vision Techniques  (0) 2017.03.15
Decision Tree 계열 알고리즘  (0) 2017.02.13
TensorFlow Extreme Performance Tuning  (0) 2017.01.20
by 곽동현 이스텔리앙 2017.05.23 20:09

# 결정계수 = Coefficient of Determination = R^2 = R squared
- Regression model의 성능을 mean value로 예측하는 모델과 상대적으로 비교하여 측정하기 위한 척도.
(RMSE나 MAE는 데이터의 scale에 따라서 값이 천차만별이기 때문에, 값만 보고 바로 판단하기가 어려움.)

( 일반적으로 0<= R^2 <= 1 , 0이면 0점, 1이면 100점)

이때 그냥 mean value를 예측하는 regression model을 쓴다면, 우측항이 1이 되므로 R^2 = 0이 된다.

또한 R square값이 1이면, "오차^2 = 0인 상황이므로" training error가 0인 것을 의미한다.

만약 R^2가 0보다 작은 음수를 내는 경우는,  편차^2보다 오차^2이 더 큰 상황이다. 즉, 이는 regression model이 그냥 mean value로 예측하는 모델보다 예측성능이 더 낮은 경우를 의미한다.


* 즉 R^2는 mean value로 예측하는 Zero-R 모델에 비해, regression model의 성능이 얼마나 더 좋은가를 나타내는 것이다.
(이때 오차는 training data에 대해서 계산할 수도 있고, validation data에 대해서도 계산할 수 있는 듯)

* 이 R^2의 단점은 데이터가 매우 단순하여 평균을 예측하는 것만으로도 오차가 충분히 작을 때 부정확한 측정을 할 수 있다는 점일 것이다. 이 경우 편차의 합이 매우 작아지고, 오차도 동시에 매우 작아지게 된다. 그러면 경우에 따라서 우측항이 아주 큰 값을 낼 수 있어 R^2가 0 또는 0 이하가 될 수 있다.
(그러나 보통 이런 데이터에는 예측모델을 만들지 않으므로, 일반적으로는 문제가 없어보인다.)



- 이 R^2값을 계산하는 또다른 정의는 다음과 같다.


이 경우 R^2의 값은 (예측값에 대한 분산/실제값에 대한 분산)이라고 볼 수 있다.

그런데 보다 직관적인 이해는 처음 위에서 정의한 개념이 보다 잘 되는 것 같다.


https://en.wikipedia.org/wiki/Coefficient_of_determination

신고

'연구 > Machine Learning' 카테고리의 다른 글

Precision Recall AveragePrecision  (0) 2017.05.31
Jupyter Notebook 5.0  (0) 2017.05.23
Coefficient of Determination(결정계수)  (0) 2017.05.22
Computer Vision Techniques  (0) 2017.03.15
Decision Tree 계열 알고리즘  (0) 2017.02.13
TensorFlow Extreme Performance Tuning  (0) 2017.01.20
by 곽동현 이스텔리앙 2017.05.22 14:29

티스토리 툴바