Warm up
- 로지스틱 회귀(Logistic regression) : 답이 이항적인 것. 0 or 1.
- 이진 로지스틱 회귀: 여기서 범주형 응답에 대해 가능한 결과는 두 가지뿐입니다. 위의 예에서와 같이 학생은 합격하거나 불합격합니다.
- 다항 로지스틱 회귀: 여기에는 응답 변수에 순서가 없는 3개 이상의 변수가 포함될 수 있습니다. 예를 들어 레스토랑에서 식사하는 사람들이 특정 종류의 음식(채식, 고기 또는 완전채식)을 선호하는지 예측하는 것이 있습니다.
- 순서 로지스틱 회귀: 다항 회귀와 마찬가지로 3개 이상의 변수가 있을 수 있습니다. 그러나 측정에는 순서가 있습니다. 예를 들어 1에서 5까지의 척도로 호텔을 평가하는 경우를 들 수 있습니다.
- (출처) : https://www.tibco.com/ko/reference-center/what-is-logistic-regression
- 독립변수는 범주형 or 연속형
- 종속변수 값(즉, 확률)이 0.5 보다 크면 그 사건이 일어나고, 작으면 안 일어남.
- R2 못 씀.(제곱할 게 없음)
- 어떤 사건이 발생할지에 대한 직접 예측이 아니라, 그 사건이 발생할 확률
- 트레인 데이터(75%)랑 테스트 데이터(25%)랑 나눈 후, 그걸 반복해서 테스트 데이터를 4번 다 돌리고 그 중 가장 잘 맞는 모델을 선택해 주는 것이 Four-Fold Cross Validation.
- 트레인 데이터와 테스트 데이터의 용도?
- train data : 모델을 fit 하는 데 사용.
- test data : train data로 만들어진 모델을 일반화 됐는지 확인 위해 마지막에 한 번 사용.
- validate data : 예측모델을 선택하기 위해 사용.
- 검증 데이터는 모의고사, 테스트 데이터는 수능(마지막으로 한 번만 사용)
- 시계열데이터는 랜덤하게 추출하면 안되고, 시계열데이터를 정렬해서
- 과거 - 학습데이터
- 최근 - 검증데이터
- 미래 - 테스트데이터
- 테스트 데이터로 예측한 후 모델을 수정해 또 테스트 데이터로 예측하는 행동은 왜 피해야 하나?
- 테스트 데이터가 이미 학습된 상태여서 (답을 알고 시험을 보는 것과 똑같음)
Session
- 로지스틱 함수
- 회귀모델이란 : 독립 변수를 통해 종속변수를 예측(특정수치, continuous 연속형 데이터를 예측)
- 분류모델이란 : 독립 변수를 통해 종속변수를 예측 => 특정 클래스에 속할 확률을 반환 (카테고리형, 이산형 데이터를 예측)
- 회귀모델 평가지표 : MSE, MAE, RMSE, R2
- 분류모델 평가지표 : accuracy(정확도)
- 분류문제에 회귀 모델을 사용하면 결과값을 해석하기 어려움.
- 로지스틱 회귀는 목적은 분류지만 매커니즘이 회귀 모델
- 로지스틱 계수 해석
Quiz Coding
- 분류문제의 기준모델
# mode(): Return the highest frequency value in a Series.
major = y_train.mode()[0]
# 타겟 샘플 수 만큼 0이 담긴 리스트를 만듭니다. 기준모델로 예측
y_pred = [major] * len(y_train)
- 한 가지 column에 대해서만 onehot-encoder 할 때
encoder = OneHotEncoder(cols='gender', use_cat_names = True)
- train, validation, test data 나눠주기
from sklearn.model_selection import train_test_split
target = 'cardio'
X = df.drop(columns=target)
y = df[target]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=2)
- encoder랑 scaler된 걸 모델에 넣기
from category_encoders import OneHotEncoder
#인코딩
encoder = OneHotEncoder(use_cat_names = True)
X_train_encoded = encoder.fit_transform(X_train)
X_val_encoded = encoder.transform(X_val)
#표준화
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train_imputed)
X_val_scaled = scaler.transform(X_val_imputed)
#모델 fit
logistic = LogisticRegression(max_iter=1000)
logistic.fit(X_train_scaled, y_train)
도움될 만한 사이트
분류모델 (Classification)의 성능 평가
Classification & Clustering 모델 평가 조대협 (http://bcho.tistory.com) 클러스터링과 분류 모델에 대한 성능 평가 방법은 데이타에 라벨이 있는가 없는가에 따라서 방법이 나뉘어 진다. 사실 클러스터링은
bcho.tistory.com
[머신러닝] 파이썬 사이킷런(sklearn) 기초
파이썬(sklearn) 사이킷런(sklearn) 기초
losskatsu.github.io
Logistic Regression(1) [내가 공부한 머신러닝 #11.]
이전시간까지는 오질나게 Linear 모델로 Regression만 했었죠!?!?! 일반적인 Linear Regression에 L2...
blog.naver.com
소감
생각보다 재밌는 거 몬데....
릿지모델은 어려웠는데 오히려 이걸 하고 나니 릿지가 이해가 된다는....!
이번주부터 스터디 시작했당!(인프런 권민철 교수님꺼)
놀지 말고 꾸준히 뭐라도 머리에 넣어야게땅...
그래도 머리에 넣으면 처리라도 하는데 그 넣는 거라도 안 하면 그냥 뇌공장 폐업 시키는 나란 사람.....
내일 스챌 얼른 풀고 싶다앙!
'[코드스테이츠]AI' 카테고리의 다른 글
[S2-Week2]Decision Trees (0) | 2022.05.06 |
---|---|
[AI 부트캠프]5주차 총 복습 (0) | 2022.05.02 |
[S2-Week1]Ridge Regression (0) | 2022.05.02 |
[Section1 Project]디자이너를 꿈꾸는 게 빠르지 않을까 (0) | 2022.04.26 |
[AI 부트캠프]3주차 총 복습 (0) | 2022.04.26 |
댓글