회귀를 통해 분류에 접근하지 않는 이유는 무엇입니까?


51

기계 학습에서 본 일부 자료는 회귀를 통해 분류 문제에 접근하는 것이 좋지 않다고 말했습니다. 그러나 데이터를 맞추기 위해 연속 회귀 분석을 수행하고 연속 예측을 잘라 불연속 분류를 생성하는 것이 항상 가능하다고 생각합니다. 왜 나쁜 생각입니까?


나는 회귀 항상 프로덕션 환경에서 분류보다 더 복잡하다 생각

답변:


57

"회귀"를 통한 " .. 접근 분류 문제" . "회귀"의 의미 선형 회귀를 의미한다고 가정하고이 방법을 로지스틱 회귀 모델을 적합 화하는 "분류"방식과 비교합니다.

이를 수행하기 전에 회귀 모델과 분류 모델의 차이점을 명확히하는 것이 중요합니다. 회귀 모델은 강우량 또는 햇빛 강도와 같은 연속 변수를 예측합니다. 또한 이미지에 고양이가 포함될 확률과 같은 확률을 예측할 수 있습니다. 확률 예측 회귀 모델은 결정 규칙을 적용하여 분류기의 일부로 사용할 수 있습니다. 예를 들어 확률이 50 % 이상인 경우 고양이인지 결정하십시오.

로지스틱 회귀 분석은 확률을 예측하므로 회귀 알고리즘입니다. 그러나, 이것은 일반적으로 기계 학습 문헌에서 분류 방법으로 설명되는데, 분류기를 만드는 데 사용될 수 있고 종종 사용되기 때문입니다. 결과 만 예측하고 확률을 제공하지 않는 SVM과 같은 "진정한"분류 알고리즘도 있습니다. 여기서는 이런 종류의 알고리즘에 대해 논의하지 않을 것입니다.

분류 문제에 대한 선형 대 로지스틱 회귀

Andrew Ng가 설명 하듯 이 선형 회귀를 사용하면 데이터를 통해 다항식을 맞습니다. 예를 들어 아래 예와 같이 {tumor size, tumor type} 샘플 세트를 통해 직선을 맞 춥니 다 .

여기에 이미지 설명을 입력하십시오

위의 악성 종양은 을 얻었고 비 악성 종양은 얻었고 녹색 선은 우리의 가설 입니다. 예측하기 위해 주어진 종양 크기 에 대해 가 보다 커지면 악성 종양을 예측하고 그렇지 않으면 양성을 예측한다고 말할 수 있습니다.10h(x)xh(x)0.5

이런 식으로 모든 단일 트레이닝 세트 샘플을 정확하게 예측할 수 있지만 이제 작업을 조금 변경하겠습니다.

직관적으로 특정 임계 값보다 큰 모든 종양이 악성임을 분명히 알 수 있습니다. 종양 크기가 큰 다른 샘플을 추가하고 선형 회귀 분석을 다시 실행 해 보겠습니다.

여기에 이미지 설명을 입력하십시오

이제 우리의 이 더 이상 작동하지 않습니다. 올바른 예측을 계속하려면 또는 다른 것으로 변경해야 하지만 알고리즘의 작동 방식은 아닙니다.h(x)>0.5malignanth(x)>0.2

새 샘플이 도착할 때마다 가설을 변경할 수 없습니다. 대신 훈련 세트 데이터를 통해 학습 한 다음 (우리가 배운 가설을 사용하여) 이전에는 보지 못한 데이터를 정확하게 예측해야합니다.

이것이 선형 회귀가 분류 문제에 가장 적합하지 않은 이유를 설명하기를 바랍니다. 또한 VI 를보고 싶을 수도 있습니다 . 로지스틱 회귀. 아이디어를 더 자세히 설명하는 ml-class.org의 분류 비디오 .


편집하다

chanceislogic 은 좋은 분류자가 무엇을 할 것인지 물었습니다. 이 특정 예에서는 아마도 로지스틱 회귀를 사용하여 다음과 같은 가설을 배울 수 있습니다 (단지 작성 중입니다).

여기에 이미지 설명을 입력하십시오

모두 참고 선형 회귀로지스틱 회귀는 당신에게 직선 (또는 고차 다항식)을 제공하지만, 그 선은 다른 의미를 가지고 :

  • h(x)선형 회귀에 대한 는 출력을 보간하거나 외삽하여 보지 못한 의 값을 예측합니다 . 그것은 단순히 새로운 꽂고 숫자를 얻는 것과 같으며 {car size, car age} 등에 기초한 자동차 가격과 같은 예측과 같은 작업에 더 적합합니다 .xx
  • h(x)로지스틱 회귀 분석의 는 가 "positive"클래스에 속할 확률 을 알려줍니다 . 이것이 회귀 알고리즘이라고 불리는 이유입니다. 연속적인 양, 확률을 추정합니다. 그러나 확률에 임계 값을 설정하면 예 : 분류기를 얻을 수 있으며 대부분의 경우 로지스틱 회귀 모델의 출력으로 수행됩니다. 이것은 줄거리에 선을 두는 것과 같습니다. 분류 선 위에있는 모든 점은 한 클래스에 속하고 아래 점은 다른 클래스에 속합니다.xh(x)>0.5

그래서, 결론은 분류 시나리오에서 우리가 사용하는 것입니다 완전히 다른 추론과 완전히 다른 회귀 시나리오에 비해 알고리즘을.


@andreister : 그러나 모든 특이 치가 제거되거나 잘린 경우 선형 회귀는 여전히 나쁜 생각입니까?
Tomek Tarczynski

귀하의 예는 좋지만 "좋은 분류기"가 무엇을하는지 보여주지는 않습니다. 이것을 추가 할 수 있습니까? 데이터 포인트를 추가하면 거의 모든 방법에 대한 선이 변경되어야합니다. 이것이 왜 나쁜 변경인지 설명하지 않았습니다.
확률

1
@andreister : 귀하의 예는 나쁜 데이터가 선형 회귀를 망칠 수 있음을 보여주었습니다. 그러나 "회귀"를 좋은 분류기로 만들기 위해 2 차 회귀 또는 더 복잡한 가설을 사용할 수 있습니까?
Strin

1
@ probabilityislogic-좋은 지적, 나는 대답을 업데이트했다.
andreister

2
@Strin : 더 복잡한 가설이 데이터를 과적 합할 가능성이 높습니다. (즉, 당신이 가지고있는 데이터의 기발한 점을 맞추기 위해 미래의 데이터에는 적합하지 않습니다.) 나는 맨 앞 줄의 한 남자가 교수가 우리를 붙잡고 있다는 확신을 얻은 수업을 기억합니다. 전력 시장에서 우리를 죽일 수있는 정교한 알고리즘을 우리에게주지 않으면 서 ...
Wayne

14

분류가 실제로 궁극적 인 목표 인 예를 생각할 수 없습니다. 거의 항상 실제 목표는 확률과 같은 정확한 예측을하는 것입니다. 그 정신에서 (물류) 회귀는 당신의 친구입니다.


5
효과적인 분류가 궁극적으로 인간의 개입이나 판단을하는 것이 비현실적이거나 불가능한 대부분의 자동화 된 프로세스에서 목표 인 것 같습니다 . 시끄러운 전송 된 디지털 신호를 수신 할 때 수신기는 특정 비트가 0 또는 1 대신 0.97이어야한다고 결정할 수 없습니다.
추기경

6
분류를 수행 한 분석가의 통제하에 오 탐지 비용 또는 오 탐지 비용이 거의 없다는 사실을 제외하고, 원래 분석가는 분류에 대한 "올바른"컷 포인트를 확실하게 선택할 수 없습니다. 또한 분류가 이루어지지 않고 "더 많은 데이터를 얻도록"권장되는 중간 위험의 "회색 영역"을 갖는 것이 좋습니다.
Frank Harrell

1
나는이 답변에서 주장의 반대와 정확히 일치한다고 생각하며 머신 러닝에 대한 대학 교육 전체 에서이 관점을 결코 만나지 못했습니다. 누군가가 이런 말을한다는 것은 정말 놀라운 일입니다. 실제로, 나는 사람들이 지속적으로 수량을 예측하기를 원한다고 생각하는 문제에 거의 항상 직면했지만 실제로는 그 수량의 다른 범주 형 버킷에서 멤버십을 예측하려고합니다. 실제로 연속적인 양을 예측하는 것이 문제의 근본 원인에 대해 유용한 사례를 찾기 위해 고심하고 있습니다.
ely

9
나는 당신이 당연히 많은 기계 학습 교리를 취했다고 생각합니다. 많은 부주의 한 가정을하고 있습니다. 그중 하나는 사람들이 실제로 범주 형 버킷으로 강제 선택해야한다는 것입니다. 그들은 이것을 원한다고 주장 할 수도 있지만 대부분의 상황에서 이것을 필요로하지는 않습니다. 선택을 강요 할 필요는 없습니다. 좋은 선택은 "의사 결정 없음, 더 많은 데이터 얻기"입니다. 기본 연속 수량의 예측이 일반적으로 필요합니다. 최적의 (Bayes) 의사 결정 이론을 연구하는 것이 좋습니다. 구체적인 예를 제공 할 수 있다면 더 언급하겠습니다.
Frank Harrell

11
@Frank Harrell의 댓글에 +1 예를 들어 기온, 강우, 강 수위를 예측하는 것은 날씨가 덥거나 습하거나 홍수가 될 것이라는 예측보다 훨씬 도움이됩니다. 문제가 양이나 염소라도? pr (sheep)의 추정치는 이진 "sheep"또는 "goat"보다 유익합니다.
Nick Cox

1

왜 증거를 보지 않겠습니까? 많은 사람들이 선형 회귀가 분류에 적합 하지 않다고 주장하지만 여전히 효과가있을 수 있습니다. 직관을 얻기 위해 scikit-learn의 분류 자 비교에 선형 회귀 (분류기로 사용)를 포함 시켰습니다 . 다음과 같은 일이 발생합니다.

여기에 이미지 설명을 입력하십시오

의사 결정 경계는 다른 분류 자보다 좁지 만 정확도는 동일합니다. 선형 지원 벡터 분류기와 마찬가지로 회귀 모델은 피쳐 공간에서 클래스를 분리하는 하이퍼 플레인을 제공합니다.

보시다시피, 분류 자로 선형 회귀를 사용하면 효과가 있지만 항상 예측을 교차 검증합니다.

레코드의 경우 분류기 코드는 다음과 같습니다.

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))


0

또한 이변 량 분류를 넘어선 분류 작업에 대해 이미 좋은 답변을 확장하려면 회귀를 사용하여 클래스 사이에 거리와 순서를 부과해야합니다. 즉, 우리는 단지 클래스의 라벨을 셔플 또는 할당 된 숫자 값의 규모를 변경하여 다른 결과를 얻을 수 있습니다 (예를 들어 클래스 표시 등 대 ) 분류 문제의 목적을 무효화합니다.1,10,100,...1,2,3,...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.