sklearn 4

[Python] logistic regression

로지스틱 회귀는 이진분류에서 사용되는 모델 중 흔히 쓰이는 모델이라고 보면 된다. 이론적인 부분을 공부하고 싶다면 여기를 눌러서 들어가면 볼 수 있다. 나는 임의로 데이터를 생성하여 분석을 진행했기 때문에 모델의 성능이 좋게 나오지는 않았다. 공식 데이터를 가지고 분석을 수행하면 보다 좋은 결과를 도출할 수 있을 것이다. def sigmoid(z): return 1/(1+np.exp(-z)) def f(x, w, b): return np.dot(x, w) + b def df(x, w, b): return x, 1 def binary_cross_entropy(z, t): return -(t*np.log(z) + (1-t)*np.log(1-z)).mean() 분석을 진행하기 앞서 로지스틱의 수식(sigmoi..

Python/Scikit-learn 2022.01.17

[Python] Scikit-learn에서 cross validation 사용하기

교차검증법에는 다양한 방법이 존재한다. 일반적으로는 n개의 집단으로 나누어 교차검증을 하지만 LOOCV(Leave-One-Out Cross-Validation)의 경우에는 분할의 수를 데이터의 수 만큼 나누어 평가를 하게 된다. 만약 데이터가 100개라면 데이터를 100개로 나누고 99개는 학습, 나머지 하나로 평가를 하는 형태로 진행된다. LOOCV의 경우 데이터의 수가 적을 때 극한으로 성능을 끌어올리기 위해서 주로 사용된다. 사이킷-런(scikit-learn)에서는 교차검증에 대한 패키지를 제공해주고 있다. sklearn 2.0 버전 이하인 경우에는 아래와 같은 방식으로 호출을한다. from sklearn import cross_validation 하지만 그 이후 버전에서는 아래와 같이 cross_..

Python/Scikit-learn 2022.01.14

PCA (Principal Components Analysis)

PCA(Principal Components Analysis) 란? 대표적인 차원 축소(dimension reduce) 방법 중 하나다. 본인이 가진 데이터를 최대한 보존하면서 compact 한 자료를 만드는 것이 목적이다. 전진 선택법, 후진제거법, 유전 알고리즘 등 변수제거를 하는 방식이 아니라 차원을 축소하는 것이다. 원래 데이터의 분산을 최대한 보존할 수 있는 기저를 찾는 것이다. 각 점 $x^{(i)} \in \mathbb{R}^n$에 대해 그에 대응되는 code vector $c^{(i)} \in \mathbb{R}^l$을 구한다음 만약 $ n \ge l$이라면 원래보다 더 적은 메모리로 code point에 저장할 수 있을 것이다. $ Var(x)_{x\in\mathbb{R^3}} = max..

Machine Learning 2021.06.23

confusion_matrix

1. confusion_matrix (오분류표) TN : 원래 값이 0인 값을 0으로 제대로 측정한 값 True Negative FP : 원래 값은 0이지만 1로 잘못 예측한 값 False Positive FN : 원래 값은 1이지만 0으로 잘못 예측한 값 False Negative TP : 원래 값이 1인 값을 1로 제대로 측정한 값 True Positive python 에서 confusion matrix 를 사용하기 위해 sklearn을 사용하였다. from sklearn.metrics import confusion_matrix confusion matrix 는 Accuracy, Precision, Recall(Sensitivity), Specificity, f1-score 등이 활용될 수 있다. A..

반응형