일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- Chat GPT
- 전처리
- Python
- SQLD
- 최종 프로젝트
- If
- 클러스터링
- 서브쿼리
- 프로젝트
- 팀프로젝트
- 크롤링
- 히트맵
- jd
- 프롬프트 엔지니어링
- da
- 군집화
- lambda
- 기초프로젝트
- 데이터 분석
- 태블로
- 머신러닝
- streamlit
- GA4
- pandas
- cross join
- data analyst
- 시각화
- 기초통계
- 데이터분석
- Today
- Total
세조목
머신러닝 기초 복습(로지스틱 회귀)(24.05.03) 본문
머신러닝
예측 | |
숫자{(평균으로)회귀} | 범주/카테고리(분류) |
선형 회귀 | 로지스틱 회귀 선형 회귀를 차용해서 만든거라서 '회귀'가 붙음 |
다중공선성 제거 방법
1. pair plot, 상관관계로 상관관계 확인 후 하나의 독립변수 제거
2. PCA(차원축소)
로지스틱 회귀
로지스틱 회귀 : 확률 예측 時 사용됨
그림에서 확인할 수 있는대로 확률을 예측할 때는 선형회귀를 적용하는 것이 적절하지 않음
그래서 0과 1에 수렴하는 Logistic Regression이 나왔음
오즈비 = p / 1-p
※ 오즈비의 경우 확률이 증가할수록 급격히 발산하기 때문에 사용이 적절하지 않음
오즈비 + 로그 → 로짓(Logit) = log(p / 1-p)
※ 로그를 씌워주면 회귀모델로 사용하기에 적절하게 됨
로지스틱 회귀의 임계값 → 0.5(0.5 넘으면 '그럴 것이다'라고 봄)
선형회귀에서는 y에 y가 들어갔지만
로지스틱회귀에서는 y에 로짓이 들어감
why? 어떠한 일이 일어날 '확률'을 구하는 것이기 때문에
※ 참고
→ 이진 분류 & 다중 분류(n개의 확률)
분류 평가 지표
정확도
예측이 맞는지 여부 : T/F
양성 여부 : Positive / Negative
모든 환자를 음성(암 환자 x)으로 판정하는 모델을 만들었는데
실제로는 양성인 경우가 5건 있을 수 있음
이 경우 정확도는 95%이지만 5%에 해당하는 환자들한테는 이 모델의 결과가 치명적일 수 있음
그렇기 때문에
'정확도'로는 모델이 제대로 작동하고 있는지 확인할 수 없음
F1-Score
1에 가까울수록 좋음
정확도와 f1 score를 함께 보자(정확도는 높은데 f1 score는 낮을 수 있으니까)
빨간색 부분에 데이터들이 분포하기를 기대했으나 전처리를 진행하지 않았기 때문에
위와 같이 확인 됨
기타
Pivot table aggfunc = size
pd.pivot_table(titanic_df, index='Sex', columns = 'Survived', aggfunc='size')
aggfunc에 'size'를 넣으면 성별 생존여부 수를 counting할 수 있음
sns.countplot
sns.countplot(data=titanic_df, x='Sex', hue='Survived')
barplot이 아닌 countplot을 사용하면 성별로 Survived여부를 counting할 수 있음
barplot으로 하면 아래와 같이 시각화 됨
'데이터 분석 공부 > 머신러닝' 카테고리의 다른 글
머신러닝 심화 복습(결측치, 인코딩&스케일링)(24.05.07) (0) | 2024.05.07 |
---|---|
머신러닝 심화 복습(데이터 구조, EDA 시각화, 기술 통계, 이상치)(24.05.06) (0) | 2024.05.06 |
머신러닝 기초 복습(선형 회귀)(24.05.02) (1) | 2024.05.02 |
머신러닝 - 클러스터링(계층적 군집화) (0) | 2024.04.02 |
이커머스 머신러닝 강의 복습(Ch.3 - KNN) (2) | 2024.02.28 |