회귀를 통해 분류에 접근하지 않는 이유는 무엇입니까? 문제에 접근하는 것이 좋지 않다고 말했습니다.

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



답변

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

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

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

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

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

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

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

1

0

h(x)

x

h(x)

0.5

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

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

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

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

h(x)>0.5malignant

h(x)>0.2

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

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


편집하다

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

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

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


  • h(x)

    선형 회귀에 대한 는 출력을 보간하거나 외삽하여 보지 못한 의 값을 예측합니다 . 그것은 단순히 새로운 꽂고 숫자를 얻는 것과 같으며 {car size, car age} 등에 기초한 자동차 가격과 같은 예측과 같은 작업에 더 적합합니다 .

    x

    x


  • h(x)

    로지스틱 회귀 분석의 는 가 “positive”클래스에 속할 확률 을 알려줍니다 . 이것이 회귀 알고리즘이라고 불리는 이유입니다. 연속적인 양, 확률을 추정합니다. 그러나 확률에 임계 값을 설정하면 예 : 분류기를 얻을 수 있으며 대부분의 경우 로지스틱 회귀 모델의 출력으로 수행됩니다. 이것은 줄거리에 선을 두는 것과 같습니다. 분류 선 위에있는 모든 점은 한 클래스에 속하고 아래 점은 다른 클래스에 속합니다.

    x

    h(x)>0.5

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


답변

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


답변

왜 증거를 보지 않겠습니까? 많은 사람들이 선형 회귀가 분류에 적합 하지 않다고 주장하지만 여전히 효과가있을 수 있습니다. 직관을 얻기 위해 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)))


답변

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

1,10,100,...

1,2,3,...


답변