일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- WAU
- warehouser
- 그로스마케터
- engagement
- ABTest
- SQL
- categorical
- 통계
- 코테
- pvalue
- 데이터분석
- dataanalysis
- dataanalyst
- INSERTINTO
- 그룹
- onehot
- 전처리
- Python
- row추가
- 데이터분석가
- data
- 데이터
- 이전행
- 표본
- DAU
- sql로데이터
- GTM
- 리텐션
- 특정컬럼
- 데이터가공
- Today
- Total
Meiren
[ML] LogisticRegression(로지스틱 회귀) 본문
로지스틱 회귀란?
회귀를 사용하여 데이털가 어떤 범주에 속할 확률을 0에서 1사이의 값으로 예측하고,
그 확률에 따라 가능성이 높은 범주에 속하는 것으로 분류
회귀로 연속적인 결과를 시그모이드 함수로 표준화시켜서 특정값을 기준으로 나누어 분류한다
다중회귀분석 + 시그모이드 함수 = 최종 값
- 시그모이드 함수 : 음의 무한대 ~ 양의 무한대까지의 실수값 -> 0~ 1의 실수값으로 1:1 대응
- 로지스틱 회귀로 이진 분류 - 데이터를 이진 분류 문제로 바꾸어서 분류 실습
- 로지스틱 회귀로 다중 분류 - 원래 데이터 그대로 분류 실습
linear regression(선형) vs logistic regression
linear regression
- 주어진 데이터에 대해 0 ~ 100사이의 값(y)를 예측
- gradient decent > cost를 최소화하는 w를 찾기 위한 알고리즘
logistic regression
- 0 ~ 1사이의 값 도출
- Binary Classification (이진분류)
- 두 개의 선택지 중 정답을 고르는 문제
Cost function
- linear : gradent descent 알고리즘 > 어디서 시작하든 최소점 1개
- logistic : gradient descent 알고리즘 > 시작하는 곳에 따라 최소점 다름, 선형회쉬 cost 함수 사용 불가
Logistic Regression Modeling
학습 : cost값이 가장 작은 수를 갖게 하는 W 찾는 것
- 로지스틱 회귀 분석은 이진 분류를 수행하는 데 사용된다.
즉, 데이터 샘플을 양성(1) 또는 음성(0) 클래스 둘 중 어디에 속하는지 예측한다. - 각 속성(feature)들의 계수 log-odds를 구한 후,
Sigmoid 함수를 적용하여 실제로 데이터가 해당 클래스에 속할 확률을 0과 1사이의 값으로 나타낸다. - 손실함수(Loss Function)는 머신러닝 모델이 얼마나 잘 예측하는지 확인하는 방법이다.
로지스틱 회귀의 손실함수는 Log Loss이다. - 데이터가 클래스에 속할지 말지 결정할 확률 컷오프를 Threshold(임계값)이라 한다.
기본 값은 0.5이지만 데이터의 특성이나 상황에 따라 조정할 수 있다. - 파이썬 라이브러리 Scikit-learn을 통해 모델을 생성하고 각 속성(feature)들의 계수를 구할 수 있다.
이 때 각 계수(coefficients)들은 데이터를 분류함에 있어 해당 속성이 얼마나 중요한지 해석하는 데에 사용할 수 있다.
parameter?
- solver
- olver 옵셔널 파라미터는 해당 모델을 어떤 방법을 사용해서 풀지에 대해서 정할 수 있게 해줍니다.
- 로지스틱 회귀 모델을 학습시키는데 saga라는 방법을 사용해서 학습해줘
- random state
- 실행할 떄 마다 값이 달라지니, 임의 랜덤값으로 고정함
Model Evaluation
2022.11.29 - [머신러닝(machine learning)] - [ML/Evaluation] Confusion Matrix (모델 성능 평가 지표, 오차행렬)
[ML/Evaluation] Confusion Matrix (모델 성능 평가 지표, 오차행렬)
pre linear model > R-squre, MSE 분류모델의 성능 평가? 정확도(Accuracy) 정밀도(Precision) 재현율(Recall) F1 Score Confusion Matrix (오차행렬) traing을 통한 prdiction 성능 측정을 위해, 예측값과 실제값을 비교하는
le-meiren.tistory.com
- predicted = tf.cast(나온 값 > 기준값, dtype=tf.float32) : 기준값 이상이면 1, 이하면 0으로 변환
- accuracy = tf.reduce_mean(tf.cast(tf.equal(예측 리스트, 정답 리스트), dtype=tf.float32))
: 정답 리스트와 예측한 리스트 비교해 정확도 반환해줌.
accuracy
acc = accuracy_score(y, y_pred)
print('accuracy =', acc)
# accuracy = 0.9733333333333334
confusion matrix
confusion_mtrx = confusion_matrix(y_true=y, y_pred=y_pred)
confusion_mtrx
'머신러닝(machine learning)' 카테고리의 다른 글
[ML/preprocessing] Data Scaling (데이터 스케일링) (1) | 2022.11.29 |
---|---|
[ML/Evaluation] Confusion Matrix (모델 성능 평가 지표, 오차행렬) (0) | 2022.11.29 |
[ML/전처리] Imbalanced Data Sampling (0) | 2022.11.29 |
[ML/전처리] Data Sampling (2) | 2022.11.29 |
[ML/전처리] encoding - label vs onehot (0) | 2022.11.29 |