Open danbi5228 opened 2 years ago
~- 호기롭게 먼저 하겠다고 한 것 치곤 내용이 별로 없어서 당황~
# 꽃잎의 너비를 기반으로 Iris-Versicolor 종을 감지하는 분류기 생성
from sklearn import datasets iris = datasets.load_iris() X = iris["data"][:, 3:] # 꽃잎의 너비 y = (iris["target"]==2).astype(int) # array. Iris-Virginica면 1, 그렇지 않으면 0
from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression() log_reg.fit(X, y)
X_new = np.linspace(0, 3, 1000).reshape(-1, 1) y_proba = log_reg.predict_proba(X_new) plt.plot(X_new, y_proba[:, 1], "g-", label="Iris virginica") plt.plot(X_new, y_proba[:, 0], "b--", label="Not Iris virginica")
![image](https://user-images.githubusercontent.com/26505830/168630358-21124e89-b40b-4ba1-baff-ab60c991a17a.png)
- 양쪽의 확률이 똑같이 50%가 되는 1.6cm 근방에서 결정 경계가 만들어짐
- 다른 선형 모델 처럼 로지스틱 회귀 모델도 l1, l2 페널티를 사용하여 규제할 수 있고, 사이킷런은 l2 페널티를 기본으로 함
![image](https://user-images.githubusercontent.com/26505830/168631019-42f2269a-218e-4f05-97bd-dd909d7d304a.png)
- 동일한 데이터셋을 가지고 꽃잎 너비와 꽃잎 길이 두 개의 특성을 기반으로 훈련
- 결정 경계: 검정색 점선 (θ<sub>0</sub> + θ<sub>1</sub>x<sub>1</sub> + θ<sub>2</sub>x<sub>2</sub> = 0 을 만족하는 x의 집합) - 50% 확률 추정 지점
- 나머지 선: 특정 확률 출력. 맨 아래 0.150 보라색 선 - 15% 확률
로지스틱 회귀의 작동 방식
선형 회귀와 같이 입력 특성의 가중치 합 계산 -> 그 후 결괏값의 로지스틱을 출력
로지스틱은 시그모이드 함수 (0과 1 사이의 값을 출력)
로지스틱 회귀모델의 결과값 (확률)을 통해 예측을 쉽게 구할 수 있음 (0.5를 기준으로)
로지스틱 함수에서 t < 0이면 값이 0.5보다 작고, t >= 0이면 값이 0.5보다 크거나 같으므로 로지스틱 회귀모델의 결과값이 양수일 때 1이라고 예측하고, 음수일 때 0이라고 예측함
로지스틱 회귀의 훈련 방법
5/18 수 pm 10:30
유리: 4.6~4.6.1 선미: 4.6.2 단비: 4.6.3