Machine Learning
피어슨 상관 계수 (Pearson Correlation Coefficient)
피어슨 상관 계수 (Pearson Correlation Coefficient)
2019.10.20상관계수(correlation coefficient)란 두 변수가 어떤 상관 관계를 가지는가?를 의미하는 수치다. +1은 완벽한 양의 선형 상관 관계, 0은 선형 상관 관계 없음, -1은 완벽한 음의 선형 상관 관계를 의미한다. X와 Y 사이의 피어슨 상관 계수를 구하는 식은 다음과 같다 \\[r_{XY} = \frac{ \sum^n_i (X_i - \bar{X})(Y_i - \bar{Y}) }{ \sqrt{\sum^n_i (X_i - \bar{X})^2} \sqrt{\sum^n_i (Y_i - \bar{Y})^2} } \\] 여기서 X, Y는 vector인데 식을 조금 들여다보면 결국 다음과 같은 과정이다. 1. 각 vector의 표본평균\\(\bar{A}\\)를 구해서 A의 0이 아닌 각 원소에 빼주..
Website for public datasets
Website for public datasets
2019.09.10Recommendation datasets: http://cseweb.ucsd.edu/~jmcauley/datasets.html https://www.wikidata.org/wiki/Wikidata:Database_download/ko Machine learning datasets (including clustering): https://archive.ics.uci.edu/ml/index.php Various datasets: https://www.kaggle.com/datasets Network(graph) datasets: https://snap.stanford.edu/data/ Graph datasets: https://graphchallenge.mit.edu/data-sets Web graphs:..
민감도와 특이도 (sensitivity, specificity)
민감도와 특이도 (sensitivity, specificity)
2019.05.24sensitivity(민감도) / specificity(특이도)\\(sensitivity = \frac{True Positive}{True Positive + False Positive}\\) \\(specificity = \frac{True Negative}{True Negative + False Positive}\\) 실제 정답PositiveNegative실험 결과PositiveTrue PositiveFalse Positive (Type Ⅱ error)NegativeFalse Negative (TypeⅠerror)True Negative True Positive : Positive일거라고 예측한 것 중에서, 실제로 정답인(True) 개수.True Negative : Negative라고 예측한 것 중에..
재표본추출 방법, Resampling Methods
재표본추출 방법, Resampling Methods
2019.05.20training set에서 반복적으로 표본을 추출하고, 각 표본에 모델을 적합하여 적합한 모델들에 대해 정보를 얻는 것을 말한다. 예를 들어 각 표본 마다 적합 결과가 다를 것이므로, 적합 결과가 다른 정도를 조사할 때 사용할 수 있다. Resampling에 주로 사용되는 방법으로는 교차검증(cross-validation)과 붓스트랩(bootstrap)이 있다. cross-validation은 본질적으로는 validation error를 구하기 위해서이고, validation error를 구하는 이유는 이를 이용해 test error를 추정하는 방식으로 성능을 평가하거나 적절한 수준의 유연성을 선택하는데 사용. 즉, 모델 평가(model assessment), 모델 선택(model selection) b..
분류, Classification
분류, Classification
2019.05.07반응변수는 크게 양적 반응변수와 질적 반응변수(categorical)로 나눌 수 있다.질적 반응변수는 동물(개, 고양이, 치타)처럼 분류할 수 있는 반응변수를 말한다. (범주형, categorical) 반응변수가 질적인 경우 선형회귀는 적합하지 않다.분류 클래스 수가 3 이상인 경우 선형회귀?범주에 따라 Y값을 1, 2, 3으로 나눌 수는 있는데, 1과 2, 2와 3의 차이가 비슷한 경우에만 해볼만하다. 분류 케이스가 3 이상인 경우 질적 반응변수를 선형 회귀를 위해 양적 반응변수로 바꾸는 자연스러운 방법은 없다.그래서 후술할 LDA 분류기를 사용한다. 분류 클래스 수가 2인 경우 선형회귀?분류해야하는 케이스가 2개면 0, 1로 할 수 있으니까 가능은 하지만…이런 경우 f가 직선이라 Y값이 음수로 나오거..
선형 회귀, Linear Regression
선형 회귀, Linear Regression
2019.05.07선형 회귀란 선형대수 ( Linear Algebra )와 선형성이란 X와 Y 사이에 선형적 상관관계가 있다고 가정하고 \\(f\\)를 추정하는 것. 선형적 상관관계가 있다고 가정하기 때문에, 함수 전체를 추정하는 문제를 계수 \\(\beta\\)를 추정하는 쉬운 문제로 단순화 시킬 수 있다. \\[\hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x\\] 주어진 데이터를 통해 직선 y를 추정하는 척도로 가장 흔하게 사용되는 기법은 최소제곱. 잔차제곱합(RSS: residual sum of squares) \\[RSS = \sum (y_i - \hat{y_i})^2\\] RSS를 최소화하는 \\(\beta\\) 추정량을 최소제곱추정량(LSE)라 한다. 장단점? 모델이 간단하여 해석은 ..
편향-분산 절충, Bais-Variance Decomposition
편향-분산 절충, Bais-Variance Decomposition
2019.04.07Expected test MSE 는 크게 reducible error 와 irreducible error 로 분리할 수 있으며 reducible error 는 다시 variance 와 bias 로 분리할 수 있다. Variance 는 training set 을 변경했을 때, \\(\hat{f}\\)이 변화하는 양을 나타낸다. Variance 가 클수록 training set 의 작은 변화에도 \\(\hat{f}\\)가 크게 변한다. 일반적으로 더 복잡한 방법일수록(more flexible) 더 큰 Variance 를 가진다. 이를 생각해보면, 복잡한 방법이라는 것은 그 만큼 주어진 training data 에 가깝게 따라간다는 것을 의미한다. 따라서 그 만큼 데이터 변화에 민감할 수 밖에 없다. Bias..
GAN : Generative Adversarial Networks (생성적 적대 신경망)
GAN : Generative Adversarial Networks (생성적 적대 신경망)
2019.02.14심층 합성곱 생성적 적대 신경망 (Deep Convolutional Generative Adversarial Networks, DCGAN)Generator와 Discriminator라는 2개의 신경망을 서로 경쟁시킨다.Generator는 이미지를 생성하고, Discriminator는 이게 진짜 이미지인지, 생성한 이미지인지를 판정이런 식으로 둘을 경쟁시키는 방식으로 학습하는 모델을 GAN 이라 함.비지도 학습 참고 자료원논문 https://arxiv.org/pdf/1511.06434.pdfhttps://www.tensorflow.org/tutorials/generative/dcgan?hl=ko텐서플로우 가이드 문서에 아주 잘 나와있음개념 부터 실제 모델 생성하는 것 까지 Keras 예제도 있음.
[TensorFlow] estimator
[TensorFlow] estimator
2017.11.15https://www.tensorflow.org/api_docs/python/tf/estimator/DNNClassifier https://github.com/umbum/ML/blob/master/TF/estimator.py 고수준 API. 인자 몇개만 지정해서 넘겨주면 알아서 신경망을 구성해준다.근데 고수준이라 역시... `` DNNClassifier`` 같은 경우 모든 hidden_units가 전결합 레이어다... 유연성이 없다는게 단점. 내부적으로 웬만한 최적화가 잘 되어 있는 것 같아 직접 구현해야 하는 경우가 아니면 대체로 이걸 사용하는게 여러가지로 이점이 있을 듯.tflogs는 알아서 `` model_dir``에 저장되며 필요한 변수는 다 `` summary``로 등록되어 있어서 보기도 편하다..
[TensorFlow] Datasets API
[TensorFlow] Datasets API
2017.11.14자세한 설명은 가이드 참조. Dataset API를 사용하면 input pipelines / Threading and Queue 과정을 손쉽게 처리할 수 있다. ( 1.4부터 `` contrib``에서 코어로 옮겨졌다. ) `` dataset``은 `` element``들로 이루어져 있으며 `` element``는 `` tf.Tensor``들로 이루어져 있다.`` element1`` - image1 - label1`` element2`` - image2 - label2... Basic mechanics```python>>> sess.run(tf.random_uniform([2, 4])) array([[ 0.77109301, 0.34201586, 0.0554806 , 0.96262276], [ 0.9934..
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization 정리
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization 정리
2017.06.15A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization17.04. 논문. ANN이 아니라 SVM을 사용했다. 그래서 읽다 중단함. 읽은 곳 까지만 정리.classification에 SVM을 사용했지만 악성코드 검출에서 어떤 flow를 고려해야 하는지와 각 PRG가 어떤 식으로 나타나고, 어떤 장점과 한계를 가지고 있는지 대략적으로 파악할 수 있었다. Abstract현재 Android malware detection approaches에 사용하는 방식은 여러가지가 있다. 정확도를 위해 머신 러닝 classifier와 연결해서 사용하기도 하며, 각각의 방식은 앱의 행위에 대한 unique s..
Best Practices for Applying Deep Learning to Novel Application 정리
Best Practices for Applying Deep Learning to Novel Application 정리
2017.05.31Phase 1: Getting prepared딥러닝을 적용하는 것이 가치있는 일인지 생각해본다.state-of-the-art의 퍼포먼스가 충분히 높다면 굳이 성능을 향상시키기 위해 딥러닝을 적용하는 것이 가치있는 일일지 고려해야 한다.단순히 최신 기술이고, 방법론적으로 좋아보여서 딥러닝을 사용하게 되면 어려움에 직면할 수 있다.그 다음은 성공적으로 구현했을 때 human level performance보다 잘 나오는지 예상해보아야 한다.computer resource도 고려해야 하는데 이는 AWS 등으로 해결할 수 있으므로 큰 문제는 안된다.evaluation metrics도 정의한다. 이는 loss function design으로 이어진다. Phase 2: Preparing your datatraini..