AI/MachineLearning

로지스틱 회귀 개념, 모델링 과정

oaho 2023. 2. 23. 13:38
반응형
Logistic Regression

 

확률 문제를 선형회귀로 모델링

 

입력 : 

x = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]).reshape(-1, 1)
y = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]).reshape(-1, 1)
model = LinearRegression()
model.fit(x,y)
y_hat = x*model.coef_ + model.intercept_ # 회귀선
plt.figure(figsize=(5,5))
plt.scatter(x, y, s=80)
plt.plot(x, y_hat, color='r')
plt.xlabel('Hour')
plt.ylabel('Score')
plt.show()

 

출력:

 

=> 어떻게 해석해야할지 문제가 발생한다.

 

이와 같은 문제를 해결하기 위해서는 분류문제를 확률로 표현하는 방법을 찾아야한다.

즉 어떤 사건이 일어날 확률을 P(X)로 나타내고, 일어나지 않을 확률을 1-P(X)로 나타낸다.

또한 이러한 확률은 모두 0과 1사이의 값, 즉 0 <= P(X) <= 1로 표현할 수 있다.

 

 

=>오즈비(odds ratio) : P(X) / (1-P(X))

 

 

로짓 함수 = ln(P / 1 - P)

=> 역함수 : 로지스틱 함수

 

 

로지스틱 회귀(Logistic Regression)

: 예측 분석을 위한 회귀분석 중에서 특히 종속변수가 이분형일 때 수행할 수 있는 회귀분석 기법의 한 종류이다.

기존 함수의 역함수이기 때문에 S자 형태의 커브를 그림

 

 

로지스틱 함수 = 시그모이드(sigmoid)함수

 

  • 확률 값 p는 선형 판별식 값이 커지면 1, 작아지면 0에 가까운 값이 됨
  • 확률 값 0.5를 기준으로 이진 분류를 수행할 수 있게 됨

 

x데이터가 주어졌을 때 확률을 예측하는 로지스틱 회귀분석은 학습 데이터를 잘 설명하는 선형 판별식의 기울기와 절편을 찾는 문제 !

 

모델링

1. 모듈 불러오기

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, classification_report

 

 

2. 선언하기

 

model = LogisticRegression()

 

 

3. 학습하기

 

model.fit(x_train, y_train)

 

4. 예측하기

 

y_pred = model.predict(x_test)

 

 

5. 평가하기

 

print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

=> 결과 :

 

 

 

 

 

 

 

 

 

머신러닝 - LinearRegression(MAE, MSE, RMSE, MAPE, R2 - Score)

회귀모델 성능 평가 1) x, y 분리 target 변수 명확히 지정 target을 제외한 변수를 x 데이터프레임으로 선언 y 데이터프레임은 target변수만을 가짐 target = 'Ozone' x = data.drop(target, axis=1) y = data.loc[:, target

oaho.tistory.com

 

 

선형회귀 - 단순 회귀 / 다중 회귀

Linear Regresssion 회귀의 원래 의미는 옛날 상태로 돌아가는 것을 의미한다. 영국의 유전학자 프랜시스 골턴은 부모의 키와 아이들의 키 사이의 연관 관계를 연구하면서 부모와 자녀의 키사이에는

oaho.tistory.com

 

반응형