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
'AI > MachineLearning' 카테고리의 다른 글
Grid Search (0) | 2023.02.27 |
---|---|
의사결정트리(Decision Tree) (0) | 2023.02.24 |
K-Nearest Neighbor 개념, min-max scaling , 모델링 과정 (0) | 2023.02.23 |
선형회귀 - 단순 회귀 / 다중 회귀 (0) | 2023.02.23 |
머신러닝 - 분류모델 (Confusion Matrix, Accuracy, Precision, Recall, F1_Score) (0) | 2023.02.21 |