※ 클래스가 2개 분인 2진(binary) 분류를 해봅시다. 0,1 분류
1 : 관심 타겟 ( 더 적은 샘플) 0 : 관심 없는 클래스 (더 흔하고 많은 샘플)
- 암환자 분류 : 0 = 정상 1 = 암환자
- 사기꾼 검출 : 0 = 정상 1 = 사기꾼
- 생존자 검출 : 0 = 사망 1 = 생존자
import numpy as np
* 목표: 혈액형 예측하기(A, B)
- A의 특징 : 배려심 있다, 막연한 걱정
- B의 특징 : 용기, 기분파다
# 판단력, 사회성
x = [[50, 90], [80, 50]]
y = [0, 1]
x = np.array(x)
y = np.array(y)
from sklearn.linear_model import LogisticRegression # 논리 회귀 = 선형 회귀
model = LogisticRegression().fit(x,y) # 학습
model.predict(x)
→ array([0, 1])
# y = w0 * x0 + w1 * x1 + b
model.coef_, model.intercept_
→ (array([[ 0.16068743, -0.1498761 ]]), array([ 0.0004109]))
# B형이냐 ? (B형이 클래스 1 이므로)
np.sum(model.coef_ * x + model.intercept_, axis=1) > 0# 가로방향의 값을 더하다.
→ array([False, True], dtype=bool)
from sklearn.datasets import load_iris
x, y =load_iris(True)
x.shape, y.shape
→ ((150, 4), (150,))
x = x[:100]
y = y[:100]
model = LogisticRegression().fit(x,y)
model.score(x,y)
→ 1.0
# 마지막으로 0보다 크냐(후처리) 로 최종 판정을 내린다.
np.sum(model.coef_ * x + model.intercept_, axis =1) >0
→ array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype=bool)
'Deep learning > Code' 카테고리의 다른 글
Multi-class (0) | 2020.01.29 |
---|---|
분류2 classification (0) | 2020.01.28 |
2020_01_23 KNN (0) | 2020.01.23 |
object_detection_yolo_keras (2) | 2020.01.22 |
object_detection_yolo_darknet (0) | 2020.01.22 |